15370: Re-enable docker tests.
[arvados.git] / lib / crunchrun / docker_test.go
index 28eb59546a69ea36ecfbabf2a7bad8dc4ebb69e3..53201b8d513766f8a2c6a1e17fd715aa65135586 100644 (file)
@@ -8,6 +8,7 @@ import (
        "os/exec"
        "time"
 
+       dockercontainer "github.com/docker/docker/api/types/container"
        . "gopkg.in/check.v1"
 )
 
@@ -29,3 +30,35 @@ func (s *dockerSuite) SetUpSuite(c *C) {
                c.Assert(err, IsNil)
        }
 }
+
+var _ = Suite(&dockerStubSuite{})
+
+// dockerStubSuite tests don't really connect to the docker service,
+// so we can run them even if docker is not installed.
+type dockerStubSuite struct{}
+
+func (s *dockerStubSuite) TestDockerContainerConfig(c *C) {
+       e, err := newDockerExecutor("zzzzz-zzzzz-zzzzzzzzzzzzzzz", c.Logf, time.Second/2)
+       c.Assert(err, IsNil)
+       cfg, hostCfg := e.config(containerSpec{
+               VCPUs:           4,
+               RAM:             123123123,
+               WorkingDir:      "/WorkingDir",
+               Env:             map[string]string{"FOO": "bar"},
+               BindMounts:      map[string]bindmount{"/mnt": {HostPath: "/hostpath", ReadOnly: true}},
+               EnableNetwork:   false,
+               CUDADeviceCount: 3,
+       })
+       c.Check(cfg.WorkingDir, Equals, "/WorkingDir")
+       c.Check(cfg.Env, DeepEquals, []string{"FOO=bar"})
+       c.Check(hostCfg.NetworkMode, Equals, dockercontainer.NetworkMode("none"))
+       c.Check(hostCfg.Resources.NanoCPUs, Equals, int64(4000000000))
+       c.Check(hostCfg.Resources.Memory, Equals, int64(123123123))
+       c.Check(hostCfg.Resources.MemorySwap, Equals, int64(123123123))
+       c.Check(hostCfg.Resources.KernelMemory, Equals, int64(123123123))
+       c.Check(hostCfg.Resources.DeviceRequests, DeepEquals, []dockercontainer.DeviceRequest{{
+               Driver:       "nvidia",
+               Count:        3,
+               Capabilities: [][]string{{"gpu", "nvidia", "compute", "utility"}},
+       }})
+}