| // Copyright 2011 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. |
| // This is really an os package test but here for convenience. |
| func testSetEnv(t *testing.T) { |
| if runtime.GOOS == "windows" { |
| // Go uses SetEnvironmentVariable on windows. Howerver, |
| // C runtime takes a *copy* at process startup of thei |
| // OS environment, and stores it in environ/envp. |
| // It is this copy that getenv/putenv manipulate. |
| const key = "CGO_OS_TEST_KEY" |
| const val = "CGO_OS_TEST_VALUE" |
| defer C.free(unsafe.Pointer(keyc)) |
| if v == (*C.char)(unsafe.Pointer(uintptr(0))) { |
| t.Fatal("getenv returned NULL") |
| t.Fatalf("getenv() = %q; want %q", vs, val) |