| package exec |
| |
| import ( |
| "testing" |
| ) |
| |
| func TestEnv(t *testing.T) { |
| env := make([]string, 0) |
| env = Setenv(env, "NAME", "VALUE1") |
| if expected, got := 1, len(env); expected != got { |
| t.Fatalf("Unexpected length of environment variable slice: expected %d, got %d", expected, got) |
| } |
| if expected, got := "NAME=VALUE1", env[0]; expected != got { |
| t.Fatalf("Unexpected element in the environment variable slice: expected %d, got %d", expected, got) |
| } |
| env = Setenv(env, "NAME", "VALUE2") |
| if expected, got := 1, len(env); expected != got { |
| t.Fatalf("Unexpected length of environment variable slice: expected %d, got %d", expected, got) |
| } |
| if expected, got := "NAME=VALUE2", env[0]; expected != got { |
| t.Fatalf("Unexpected element in the environment variable slice: expected %d, got %d", expected, got) |
| } |
| value, err := Getenv(env, "NAME") |
| if err != nil { |
| t.Fatalf("Unexpected error when looking up environment variable value: %v", err) |
| } |
| if expected, got := "VALUE2", value; expected != got { |
| t.Fatalf("Unexpected value of an environment variable: expected %d, got %d", expected, got) |
| } |
| value, err = Getenv(env, "NONAME") |
| if err == nil { |
| t.Fatalf("Expected error when looking up environment variable value, got none", value) |
| } |
| } |
| |
| func TestMerge(t *testing.T) { |
| env := []string{"ANIMAL=GOPHER", "METAL=CHROMIUM"} |
| env = Mergeenv(env, []string{"CAR=VEYRON", "METAL=VANADIUM"}) |
| if want, got := 3, len(env); want != got { |
| t.Fatalf("Expected %d env vars, got %d instead", want, got) |
| } |
| for n, want := range map[string]string{ |
| "ANIMAL": "GOPHER", |
| "CAR": "VEYRON", |
| "METAL": "VANADIUM", |
| } { |
| if got, err := Getenv(env, n); err != nil { |
| t.Fatalf("Expected a value when looking up %q, got none", n) |
| } else if got != want { |
| t.Fatalf("Unexpected value of environment variable %q: expected %q, got %q", n, want, got) |
| } |
| } |
| } |