X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/5c4d9d38dcee73a7ffb6221c80f707c3924da64f..39c17737ac69d7693684fe2f95bef0ec235a28bf:/services/crunch-run/crunchrun_test.go diff --git a/services/crunch-run/crunchrun_test.go b/services/crunch-run/crunchrun_test.go index 8ad487d771..8d8e040000 100644 --- a/services/crunch-run/crunchrun_test.go +++ b/services/crunch-run/crunchrun_test.go @@ -2067,3 +2067,49 @@ func (s *TestSuite) TestSecretTextMountPoint(c *C) { c.Check(api.CalledWith("collection.manifest_text", ". 34819d7beeabb9260a5c854bc85b3e44+10 0:10:secret.conf\n"), IsNil) c.Check(api.CalledWith("collection.manifest_text", ""), NotNil) } + +type FakeProcess struct { + cmdLine []string +} + +func (fp FakeProcess) CmdlineSlice() ([]string, error) { + return fp.cmdLine, nil +} + +func (s *TestSuite) helpCheckContainerd(c *C, lp func() ([]PsProcess, error)) error { + kc := &KeepTestClient{} + defer kc.Close() + cr, err := NewContainerRunner(s.client, &ArvTestClient{callraw: true}, kc, s.docker, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") + cr.checkContainerd = time.Duration(100 * time.Millisecond) + c.Assert(err, IsNil) + cr.ListProcesses = lp + + s.docker.fn = func(t *TestDockerClient) { + time.Sleep(1 * time.Second) + t.logWriter.Close() + } + + err = cr.CreateContainer() + c.Check(err, IsNil) + + err = cr.StartContainer() + c.Check(err, IsNil) + + err = cr.WaitFinish() + return err + +} + +func (s *TestSuite) TestCheckContainerdPresent(c *C) { + err := s.helpCheckContainerd(c, func() ([]PsProcess, error) { + return []PsProcess{FakeProcess{[]string{"docker-containerd"}}}, nil + }) + c.Check(err, IsNil) +} + +func (s *TestSuite) TestCheckContainerdMissing(c *C) { + err := s.helpCheckContainerd(c, func() ([]PsProcess, error) { + return []PsProcess{FakeProcess{[]string{"abc"}}}, nil + }) + c.Check(err, ErrorMatches, `'containerd' not found in process list.`) +}