aboutsummaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2022-11-25 16:22:46 +0000
committerArne Juul <arnej@yahooinc.com>2022-11-25 16:24:40 +0000
commitc27a54b10f402e383b33d8018f014296f7835ad8 (patch)
treebe4fbc017861b43f9e9cc57c87722dbda092633c /client
parent6a38a4ef70c4513e44774ef1a5d524b9f8cb22af (diff)
simplify slightly; extend unit test
Diffstat (limited to 'client')
-rw-r--r--client/go/prog/spec_env.go6
-rw-r--r--client/go/prog/spec_test.go24
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"))
+}