Docker-DCO-1.1-Signed-off-by: Tibor Vass <teabee89@gmail.com> (github: tiborvass)
Tibor Vass authored on 2014/06/25 01:53:53... | ... |
@@ -945,4 +945,18 @@ func TestModeHostname(t *testing.T) { |
945 | 945 |
deleteAllContainers() |
946 | 946 |
|
947 | 947 |
logDone("run - hostname and several network modes") |
948 |
-} |
|
949 | 948 |
\ No newline at end of file |
949 |
+} |
|
950 |
+ |
|
951 |
+func TestRootWorkdir(t *testing.T) { |
|
952 |
+ s, _, err := cmd(t, "run", "--workdir", "/", "busybox", "pwd") |
|
953 |
+ if err != nil { |
|
954 |
+ t.Fatal(s, err) |
|
955 |
+ } |
|
956 |
+ if s != "/\n" { |
|
957 |
+ t.Fatalf("pwd returned '%s' (expected /\\n)", s) |
|
958 |
+ } |
|
959 |
+ |
|
960 |
+ deleteAllContainers() |
|
961 |
+ |
|
962 |
+ logDone("run - workdir /") |
|
963 |
+} |
... | ... |
@@ -27,13 +27,12 @@ func FollowSymlinkInScope(link, root string) (string, error) { |
27 | 27 |
return root, nil |
28 | 28 |
} |
29 | 29 |
|
30 |
- |
|
31 | 30 |
if !strings.HasPrefix(filepath.Dir(link), root) { |
32 | 31 |
return "", fmt.Errorf("%s is not within %s", link, root) |
33 | 32 |
} |
34 | 33 |
|
35 | 34 |
prev := "/" |
36 |
- |
|
35 |
+ |
|
37 | 36 |
for _, p := range strings.Split(link, "/") { |
38 | 37 |
prev = filepath.Join(prev, p) |
39 | 38 |
prev = filepath.Clean(prev) |