diff options
author | Arne Juul <arnej@yahooinc.com> | 2022-11-25 16:22:46 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahooinc.com> | 2022-11-25 16:24:40 +0000 |
commit | c27a54b10f402e383b33d8018f014296f7835ad8 (patch) | |
tree | be4fbc017861b43f9e9cc57c87722dbda092633c /client | |
parent | 6a38a4ef70c4513e44774ef1a5d524b9f8cb22af (diff) |
simplify slightly; extend unit test
Diffstat (limited to 'client')
-rw-r--r-- | client/go/prog/spec_env.go | 6 | ||||
-rw-r--r-- | client/go/prog/spec_test.go | 24 |
2 files changed, 28 insertions, 2 deletions
diff --git a/client/go/prog/spec_env.go b/client/go/prog/spec_env.go index b40b3f172fd..748b262b0d4 100644 --- a/client/go/prog/spec_env.go +++ b/client/go/prog/spec_env.go @@ -41,9 +41,11 @@ func (spec *Spec) EffectiveEnv() []string { trace.Trace("add to environment:", k, "=", v) envMap[k] = k + "=" + v } - envVec := make([]string, 0, len(envMap)) + envVec := make([]string, len(envMap)) + idx := 0 for _, val := range envMap { - envVec = append(envVec, val) + envVec[idx] = val + idx++ } return envVec } diff --git a/client/go/prog/spec_test.go b/client/go/prog/spec_test.go index a4002051a86..0e5d3fb50ba 100644 --- a/client/go/prog/spec_test.go +++ b/client/go/prog/spec_test.go @@ -37,3 +37,27 @@ func TestProgSpec(t *testing.T) { s = spec.valueFromListString("one=1 all=123") assert.Equal(t, "123", s) } + +type strVec []string + +func (v strVec) contains(w string) bool { + for _, val := range v { + if w == val { + return true + } + } + return false +} + +func TestProgSpecEnv(t *testing.T) { + spec := NewSpec([]string{"/opt/vespa/bin/foobar"}) + t.Setenv("FOO", "old foo") + t.Setenv("BAR", "bar") + spec.Setenv("FOO", "foo") + assert.Equal(t, "foo", spec.Getenv("FOO")) + assert.Equal(t, "bar", spec.Getenv("BAR")) + envv := strVec(spec.EffectiveEnv()) + assert.True(t, envv.contains("FOO=foo")) + assert.True(t, envv.contains("BAR=bar")) + assert.False(t, envv.contains("FOO=old foo")) +} |