瀏覽代碼

engine.Env: comments and tests for Get()

Signed-off-by: Vincent Batts <vbatts@redhat.com>
Vincent Batts 11 年之前
父節點
當前提交
6e0bc06018
共有 2 個文件被更改,包括 15 次插入1 次删除
  1. 3 1
      engine/env.go
  2. 12 0
      engine/env_test.go

+ 3 - 1
engine/env.go

@@ -11,8 +11,10 @@ import (
 
 type Env []string
 
+// Get returns the last value associated with the given key. If there are no
+// values associated with the key, Get returns the empty string.
 func (env *Env) Get(key string) (value string) {
-	// FIXME: use Map()
+	// not using Map() because of the extra allocations https://github.com/docker/docker/pull/7488#issuecomment-51638315
 	for _, kv := range *env {
 		if strings.Index(kv, "=") == -1 {
 			continue

+ 12 - 0
engine/env_test.go

@@ -36,6 +36,18 @@ func TestEnvLenDup(t *testing.T) {
 	}
 }
 
+func TestEnvGetDup(t *testing.T) {
+	env := &Env{
+		"foo=bar",
+		"foo=baz",
+		"foo=bif",
+	}
+	expected := "bif"
+	if v := env.Get("foo"); v != expected {
+		t.Fatalf("expect %q, got %q", expected, v)
+	}
+}
+
 func TestNewJob(t *testing.T) {
 	job := mkJob(t, "dummy", "--level=awesome")
 	if job.Name != "dummy" {