| // 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) | |
| } | |
| } |