summaryrefslogtreecommitdiffhomepage
path: root/runsc/test
diff options
context:
space:
mode:
authorFabricio Voznika <fvoznika@google.com>2018-11-07 21:30:11 -0800
committerShentubot <shentubot@google.com>2018-11-07 21:30:59 -0800
commitd12a0dd6b8afaca9fbb5fe60fb84a3ae0502261a (patch)
tree6512e9420c38e6f8cc50c474d66ff267d402fbf9 /runsc/test
parent13b48f2e6a186321084fa8159e8cc2659ed221a2 (diff)
Fix test --race violation
SetupContainerInRoot was setting Config.RootDir unnecessarily and causing a --race violation in TestMultiContainerDestroyStarting. PiperOrigin-RevId: 220580073 Change-Id: Ie0b28c19846106c7458a92681b708ae70f87d25a
Diffstat (limited to 'runsc/test')
-rw-r--r--runsc/test/testutil/testutil.go20
1 files changed, 13 insertions, 7 deletions
diff --git a/runsc/test/testutil/testutil.go b/runsc/test/testutil/testutil.go
index 59dc55887..3490bd11e 100644
--- a/runsc/test/testutil/testutil.go
+++ b/runsc/test/testutil/testutil.go
@@ -104,7 +104,8 @@ func FindFile(path string) (string, error) {
return matches[0], nil
}
-// TestConfig return the default configuration to use in tests.
+// TestConfig returns the default configuration to use in tests. Note that
+// 'RootDir' must be set by caller if required.
func TestConfig() *boot.Config {
return &boot.Config{
Debug: true,
@@ -117,6 +118,13 @@ func TestConfig() *boot.Config {
}
}
+// TestConfigWithRoot returns the default configuration to use in tests.
+func TestConfigWithRoot(rootDir string) *boot.Config {
+ conf := TestConfig()
+ conf.RootDir = rootDir
+ return conf
+}
+
// NewSpecWithArgs creates a simple spec with the given args suitable for use
// in tests.
func NewSpecWithArgs(args ...string) *specs.Spec {
@@ -162,13 +170,13 @@ func SetupContainer(spec *specs.Spec, conf *boot.Config) (rootDir, bundleDir str
if err != nil {
return "", "", err
}
- bundleDir, err = SetupContainerInRoot(rootDir, spec, conf)
+ conf.RootDir = rootDir
+ bundleDir, err = SetupBundleDir(spec)
return rootDir, bundleDir, err
}
-// SetupContainerInRoot creates a bundle for the container, generates a test
-// config, and writes the spec to config.json in the bundle dir.
-func SetupContainerInRoot(rootDir string, spec *specs.Spec, conf *boot.Config) (bundleDir string, err error) {
+// SetupBundleDir creates a bundle dir and writes the spec to config.json.
+func SetupBundleDir(spec *specs.Spec) (bundleDir string, err error) {
bundleDir, err = ioutil.TempDir(TmpDir(), "bundle")
if err != nil {
return "", fmt.Errorf("error creating bundle dir: %v", err)
@@ -177,8 +185,6 @@ func SetupContainerInRoot(rootDir string, spec *specs.Spec, conf *boot.Config) (
if err = writeSpec(bundleDir, spec); err != nil {
return "", fmt.Errorf("error writing spec: %v", err)
}
-
- conf.RootDir = rootDir
return bundleDir, nil
}