From 2506b9b11f4e20bf4895f6eb59334ea5cb7d20e8 Mon Sep 17 00:00:00 2001 From: Lantao Liu Date: Tue, 12 Jun 2018 13:54:02 -0700 Subject: runsc: do not include sub target if it is not started with '/'. PiperOrigin-RevId: 200274828 Change-Id: I956703217df08d8650a881479b7ade8f9f119912 --- runsc/boot/loader_test.go | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'runsc/boot/loader_test.go') diff --git a/runsc/boot/loader_test.go b/runsc/boot/loader_test.go index 5bc6f1646..3ce7855f6 100644 --- a/runsc/boot/loader_test.go +++ b/runsc/boot/loader_test.go @@ -15,6 +15,7 @@ package boot import ( + "io/ioutil" "os" "sync" "testing" @@ -150,6 +151,12 @@ func TestCreateMountNamespace(t *testing.T) { DisableSeccomp: true, } + testFile, err := ioutil.TempFile(os.TempDir(), "create-mount-namespace-") + if err != nil { + t.Fatalf("ioutil.TempFile() failed, err: %v", err) + } + defer os.RemoveAll(testFile.Name()) + testCases := []struct { name string // Spec that will be used to create the mount manager. Note @@ -202,7 +209,7 @@ func TestCreateMountNamespace(t *testing.T) { expectedPaths: []string{"/some/very/very/deep/path", "/proc", "/dev", "/sys"}, }, { - // Mounts are nested inside eachother. + // Mounts are nested inside each other. name: "nested mounts", spec: specs.Spec{ Root: &specs.Root{ @@ -218,6 +225,16 @@ func TestCreateMountNamespace(t *testing.T) { Destination: "/foo", Type: "tmpfs", }, + { + Destination: "/foo/qux", + Source: testFile.Name(), + Type: "bind", + }, + { + // File mounts with the same prefix. + Destination: "/foo/qux-quz", + Type: "tmpfs", + }, { Destination: "/foo/bar", Type: "tmpfs", @@ -233,7 +250,8 @@ func TestCreateMountNamespace(t *testing.T) { }, }, }, - expectedPaths: []string{"/foo", "/foo/bar", "/foo/bar/baz", "/foo/some/very/very/deep/path", "/proc", "/dev", "/sys"}, + expectedPaths: []string{"/foo", "/foo/bar", "/foo/bar/baz", "/foo/qux", + "/foo/qux-quz", "/foo/some/very/very/deep/path", "/proc", "/dev", "/sys"}, }, } -- cgit v1.2.3