| // Copyright 2024 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| //go:build go1.21 |
| |
| package windows_test |
| |
| import ( |
| "fmt" |
| "slices" |
| "testing" |
| |
| "golang.org/x/sys/windows" |
| ) |
| |
| func TestEnvironUTF8(t *testing.T) { |
| testEnvVariable1Key := "__GO_X_SYS_WINDOWS_ENV_WINDOWS_TEST_VAR_BEAVER" |
| testEnvVariable1Val := "🦫" |
| t.Setenv(testEnvVariable1Key, testEnvVariable1Val) |
| |
| testEnvVariable2Key := "__GO_X_SYS_WINDOWS_ENV_WINDOWS_TEST_VAR_WHALE" |
| testEnvVariable2Val := "🐳" |
| t.Setenv(testEnvVariable2Key, testEnvVariable2Val) |
| |
| var userToken windows.Token |
| |
| env, err := userToken.Environ(true) |
| if err != nil { |
| t.Error(err) |
| } |
| |
| testEnvVariable1 := fmt.Sprintf("%s=%s", testEnvVariable1Key, testEnvVariable1Val) |
| if !slices.Contains(env, testEnvVariable1) { |
| t.Fatalf("expected to find %s in env", testEnvVariable1) |
| } |
| |
| testEnvVariable2 := fmt.Sprintf("%s=%s", testEnvVariable2Key, testEnvVariable2Val) |
| if !slices.Contains(env, testEnvVariable2) { |
| t.Fatalf("expected to find %s in env", testEnvVariable2) |
| } |
| } |