diff options
Diffstat (limited to 'runsc/container/container_test.go')
-rw-r--r-- | runsc/container/container_test.go | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/runsc/container/container_test.go b/runsc/container/container_test.go index bd8655f3e..9f3d6b454 100644 --- a/runsc/container/container_test.go +++ b/runsc/container/container_test.go @@ -1526,19 +1526,30 @@ func TestGoferExits(t *testing.T) { } func TestRootNotMount(t *testing.T) { - spec := testutil.NewSpecWithArgs("/bin/true") + if testutil.RaceEnabled { + // Requires statically linked binary, since it's mapping the root to a + // random dir, libs cannot be located. + t.Skip("race makes test_app not statically linked") + } - root, err := ioutil.TempDir(testutil.TmpDir(), "root") + appSym, err := testutil.FindFile("runsc/container/test_app") + if err != nil { + t.Fatal("error finding test_app:", err) + } + app, err := filepath.EvalSymlinks(appSym) if err != nil { - t.Fatalf("failure to create tmp dir: %v", err) + t.Fatalf("error resolving %q symlink: %v", appSym, err) } + log.Infof("App path %q is a symlink to %q", appSym, app) + + root := filepath.Dir(app) + exe := "/" + filepath.Base(app) + log.Infof("Executing %q in %q", exe, root) + + spec := testutil.NewSpecWithArgs(exe, "help") spec.Root.Path = root spec.Root.Readonly = true - spec.Mounts = []specs.Mount{ - {Destination: "/bin", Source: "/bin", Type: "bind", Options: []string{"ro"}}, - {Destination: "/lib", Source: "/lib", Type: "bind", Options: []string{"ro"}}, - {Destination: "/lib64", Source: "/lib64", Type: "bind", Options: []string{"ro"}}, - } + spec.Mounts = nil conf := testutil.TestConfig() if err := run(spec, conf); err != nil { |