X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/64c516079154f73da3f2a33a957fa8ae8eb23749..f7954ab0a45cbc302aa07fa60697363895395dde:/lib/crunchrun/singularity_test.go diff --git a/lib/crunchrun/singularity_test.go b/lib/crunchrun/singularity_test.go index a1263da321..bad2abef33 100644 --- a/lib/crunchrun/singularity_test.go +++ b/lib/crunchrun/singularity_test.go @@ -27,3 +27,26 @@ func (s *singularitySuite) SetUpSuite(c *C) { c.Assert(err, IsNil) } } + +var _ = Suite(&singularityStubSuite{}) + +// singularityStubSuite tests don't really invoke singularity, so we +// can run them even if singularity is not installed. +type singularityStubSuite struct{} + +func (s *singularityStubSuite) TestSingularityExecArgs(c *C) { + e, err := newSingularityExecutor(c.Logf) + c.Assert(err, IsNil) + err = e.Create(containerSpec{ + WorkingDir: "/WorkingDir", + Env: map[string]string{"FOO": "bar"}, + BindMounts: map[string]bindmount{"/mnt": {HostPath: "/hostpath", ReadOnly: true}}, + EnableNetwork: false, + CUDADeviceCount: 3, + }) + c.Check(err, IsNil) + e.imageFilename = "/fake/image.sif" + cmd := e.execCmd("./singularity") + c.Check(cmd.Args, DeepEquals, []string{"./singularity", "exec", "--containall", "--cleanenv", "--pwd", "/WorkingDir", "--net", "--network=none", "--nv", "--bind", "/hostpath:/mnt:ro", "/fake/image.sif"}) + c.Check(cmd.Env, DeepEquals, []string{"SINGULARITYENV_FOO=bar", "SINGULARITY_NO_EVAL=1"}) +}