mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Execute statically linked binary
Mounting lib and lib64 are not necessary anymore and simplifies the test. PiperOrigin-RevId: 230971195 Change-Id: Ib91a3ffcec4b322cd3687c337eedbde9641685ed
This commit is contained in:
committed by
Shentubot
parent
876b241fac
commit
c28f886c0b
@@ -65,7 +65,9 @@ go_test(
|
||||
|
||||
go_binary(
|
||||
name = "test_app",
|
||||
testonly = 1,
|
||||
srcs = ["test_app.go"],
|
||||
pure = "on",
|
||||
deps = [
|
||||
"//runsc/test/testutil",
|
||||
"@com_github_google_subcommands//:go_default_library",
|
||||
|
||||
@@ -1526,19 +1526,30 @@ func TestGoferExits(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRootNotMount(t *testing.T) {
|
||||
spec := testutil.NewSpecWithArgs("/bin/true")
|
||||
|
||||
root, err := ioutil.TempDir(testutil.TmpDir(), "root")
|
||||
if err != nil {
|
||||
t.Fatalf("failure to create tmp dir: %v", err)
|
||||
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")
|
||||
}
|
||||
|
||||
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("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 {
|
||||
|
||||
Reference in New Issue
Block a user