summaryrefslogtreecommitdiffhomepage
path: root/runsc/specutils/specutils.go
diff options
context:
space:
mode:
authorFabricio Voznika <fvoznika@google.com>2018-06-04 11:25:40 -0700
committerShentubot <shentubot@google.com>2018-06-04 11:26:30 -0700
commita0e2126be49e5eda45dcaead497129c08e08a1e5 (patch)
tree7aa14cf98fee2c38c015b7a4862212a5a02d86f1 /runsc/specutils/specutils.go
parent0929bdee3450aa6bc2393227127fe72405b82e4a (diff)
Refactor container_test in preparation for sandbox_test
Common code to setup and run sandbox is moved to testutil. Also, don't link "boot" and "gofer" commands with test binary. Instead, use runsc binary from the build. This not only make the test setup simpler, but also resolves a dependency issue with sandbox_tests not depending on container package. PiperOrigin-RevId: 199164478 Change-Id: I27226286ca3f914d4d381358270dd7d70ee8372f
Diffstat (limited to 'runsc/specutils/specutils.go')
-rw-r--r--runsc/specutils/specutils.go8
1 files changed, 6 insertions, 2 deletions
diff --git a/runsc/specutils/specutils.go b/runsc/specutils/specutils.go
index 5f455dec4..3161360b4 100644
--- a/runsc/specutils/specutils.go
+++ b/runsc/specutils/specutils.go
@@ -32,6 +32,10 @@ import (
"gvisor.googlesource.com/gvisor/pkg/sentry/kernel/auth"
)
+// ExePath must point to runsc binary, which is normally the same binary. It's
+// changed in tests that aren't linked in the same binary.
+var ExePath = "/proc/self/exe"
+
// LogSpec logs the spec in a human-friendly way.
func LogSpec(spec *specs.Spec) {
log.Debugf("Spec: %+v", spec)
@@ -197,9 +201,9 @@ func Is9PMount(m specs.Mount) bool {
// BinPath returns the real path to self, resolving symbolink links. This is done
// to make the process name appears as 'runsc', instead of 'exe'.
func BinPath() (string, error) {
- binPath, err := filepath.EvalSymlinks("/proc/self/exe")
+ binPath, err := filepath.EvalSymlinks(ExePath)
if err != nil {
- return "", fmt.Errorf(`error resolving "/proc/self/exe" symlink: %v`, err)
+ return "", fmt.Errorf(`error resolving %q symlink: %v`, ExePath, err)
}
return binPath, nil
}