]> Cypherpunks repositories - gostls13.git/commitdiff
os: rewrite LookupEnv's test
authorRob Pike <r@golang.org>
Wed, 6 May 2015 15:26:51 +0000 (08:26 -0700)
committerRob Pike <r@golang.org>
Wed, 6 May 2015 16:02:32 +0000 (16:02 +0000)
GOROOT is not dependably set.

When I first wrote this test, I thought it was a waste of time
because the function can't fail if the other environment functions
work, but I didn't want to add functionality without testing it.
Of course, the test broke, and I learned something: GOROOT is not
set on iOS or, to put it more broadly, the world continues to
surprise me with its complexity and horror, such as a version of
cat with syntax coloring.

In that vein, I built this test around smallpox.

Change-Id: Ifa6c218a927399d05c47954fdcaea1015e558fb6
Reviewed-on: https://go-review.googlesource.com/9791
Reviewed-by: Russ Cox <rsc@golang.org>
src/os/env_test.go

index 622f39cfed120f0e1f5dc19b61e79b5cd8398811..222489086980e7fe672db79a6502bce21e137187 100644 (file)
@@ -96,13 +96,17 @@ func TestUnsetenv(t *testing.T) {
 }
 
 func TestLookupEnv(t *testing.T) {
-       value, ok := LookupEnv("GOROOT") // Should be set.
-       if !ok {
-               t.Errorf("GOROOT is not set")
-       }
-       const v = "Variable That Does Not Exist"
-       value, ok = LookupEnv(v) // Should not be set.
+       const smallpox = "SMALLPOX"      // No one has smallpox.
+       value, ok := LookupEnv(smallpox) // Should not exist.
        if ok || value != "" {
-               t.Errorf("%s is set: %q", v, value)
+               t.Fatalf("%s=%q", smallpox, value)
+       }
+       err := Setenv(smallpox, "virus")
+       if err != nil {
+               t.Fatalf("failed to release smallpox virus")
+       }
+       value, ok = LookupEnv(smallpox)
+       if !ok {
+               t.Errorf("smallpox release failed; world remains safe but LookupEnv is broken")
        }
 }