X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/5bc5b8c150860a22d7a66b14aedddf30e270c7b6..bd175fc5207cfa7bf30ca62e2ef830192059ba68:/lib/crunchrun/crunchrun_test.go diff --git a/lib/crunchrun/crunchrun_test.go b/lib/crunchrun/crunchrun_test.go index e8c7660d1a..08f3a938dd 100644 --- a/lib/crunchrun/crunchrun_test.go +++ b/lib/crunchrun/crunchrun_test.go @@ -74,7 +74,7 @@ type KeepTestClient struct { var hwManifest = ". 82ab40c24fc8df01798e57ba66795bb1+841216+Aa124ac75e5168396c73c0a18eda641a4f41791c0@569fa8c3 0:841216:9c31ee32b3d15268a0754e8edc74d4f815ee014b693bc5109058e431dd5caea7.tar\n" var hwPDH = "a45557269dcb65a6b78f9ac061c0850b+120" -var hwImageId = "9c31ee32b3d15268a0754e8edc74d4f815ee014b693bc5109058e431dd5caea7" +var hwImageID = "9c31ee32b3d15268a0754e8edc74d4f815ee014b693bc5109058e431dd5caea7" var otherManifest = ". 68a84f561b1d1708c6baff5e019a9ab3+46+Ae5d0af96944a3690becb1decdf60cc1c937f556d@5693216f 0:46:md5sum.txt\n" var otherPDH = "a3e8f74c6f101eae01fa08bfb4e49b3a+54" @@ -157,9 +157,8 @@ func (t *TestDockerClient) ContainerStart(ctx context.Context, container string, if container == "abcde" { // t.fn gets executed in ContainerWait return nil - } else { - return errors.New("Invalid container id") } + return errors.New("Invalid container id") } func (t *TestDockerClient) ContainerRemove(ctx context.Context, container string, options dockertypes.ContainerRemoveOptions) error { @@ -196,9 +195,8 @@ func (t *TestDockerClient) ImageInspectWithRaw(ctx context.Context, image string if t.imageLoaded == image { return dockertypes.ImageInspect{}, nil, nil - } else { - return dockertypes.ImageInspect{}, nil, errors.New("") } + return dockertypes.ImageInspect{}, nil, errors.New("") } func (t *TestDockerClient) ImageLoad(ctx context.Context, input io.Reader, quiet bool) (dockertypes.ImageLoadResponse, error) { @@ -208,10 +206,9 @@ func (t *TestDockerClient) ImageLoad(ctx context.Context, input io.Reader, quiet _, err := io.Copy(ioutil.Discard, input) if err != nil { return dockertypes.ImageLoadResponse{}, err - } else { - t.imageLoaded = hwImageId - return dockertypes.ImageLoadResponse{Body: ioutil.NopCloser(input)}, nil } + t.imageLoaded = hwImageID + return dockertypes.ImageLoadResponse{Body: ioutil.NopCloser(input)}, nil } func (*TestDockerClient) ImageRemove(ctx context.Context, image string, options dockertypes.ImageRemoveOptions) ([]dockertypes.ImageDeleteResponseItem, error) { @@ -260,9 +257,8 @@ func (client *ArvTestClient) Call(method, resourceType, uuid, action string, par case method == "GET" && resourceType == "containers" && action == "secret_mounts": if client.secretMounts != nil { return json.Unmarshal(client.secretMounts, output) - } else { - return json.Unmarshal([]byte(`{"secret_mounts":{}}`), output) } + return json.Unmarshal([]byte(`{"secret_mounts":{}}`), output) default: return fmt.Errorf("Not found") } @@ -429,7 +425,7 @@ func (fw FileWrapper) Sync() error { } func (client *KeepTestClient) ManifestFileReader(m manifest.Manifest, filename string) (arvados.File, error) { - if filename == hwImageId+".tar" { + if filename == hwImageID+".tar" { rdr := ioutil.NopCloser(&bytes.Buffer{}) client.Called = true return FileWrapper{rdr, 1321984}, nil @@ -443,7 +439,7 @@ func (client *KeepTestClient) ManifestFileReader(m manifest.Manifest, filename s func (s *TestSuite) TestLoadImage(c *C) { cr, err := NewContainerRunner(s.client, &ArvTestClient{}, - &KeepTestClient{}, s.docker, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") + &KeepTestClient{}, adapter(s.docker), "zzzzz-zzzzz-zzzzzzzzzzzzzzz") c.Assert(err, IsNil) kc := &KeepTestClient{} @@ -451,39 +447,39 @@ func (s *TestSuite) TestLoadImage(c *C) { cr.ContainerArvClient = &ArvTestClient{} cr.ContainerKeepClient = kc - _, err = cr.Docker.ImageRemove(nil, hwImageId, dockertypes.ImageRemoveOptions{}) + _, err = cr.ContainerExecRunner.ImageRemove(nil, hwImageID, ImageRemoveOptions{}) c.Check(err, IsNil) - _, _, err = cr.Docker.ImageInspectWithRaw(nil, hwImageId) + _, _, err = cr.ContainerExecRunner.ImageInspectWithRaw(nil, hwImageID) c.Check(err, NotNil) cr.Container.ContainerImage = hwPDH // (1) Test loading image from keep c.Check(kc.Called, Equals, false) - c.Check(cr.ContainerConfig.Image, Equals, "") + c.Check(cr.ContainerExecRunner.GetImage(), Equals, "") err = cr.LoadImage() c.Check(err, IsNil) defer func() { - cr.Docker.ImageRemove(nil, hwImageId, dockertypes.ImageRemoveOptions{}) + cr.ContainerExecRunner.ImageRemove(nil, hwImageID, ImageRemoveOptions{}) }() c.Check(kc.Called, Equals, true) - c.Check(cr.ContainerConfig.Image, Equals, hwImageId) + c.Check(cr.ContainerExecRunner.GetImage(), Equals, hwImageID) - _, _, err = cr.Docker.ImageInspectWithRaw(nil, hwImageId) + _, _, err = cr.ContainerExecRunner.ImageInspectWithRaw(nil, hwImageID) c.Check(err, IsNil) // (2) Test using image that's already loaded kc.Called = false - cr.ContainerConfig.Image = "" + cr.ContainerExecRunner.SetImage("") err = cr.LoadImage() c.Check(err, IsNil) c.Check(kc.Called, Equals, false) - c.Check(cr.ContainerConfig.Image, Equals, hwImageId) + c.Check(cr.ContainerExecRunner.GetImage(), Equals, hwImageID) } @@ -578,7 +574,7 @@ func (s *TestSuite) TestLoadImageArvError(c *C) { func (s *TestSuite) TestLoadImageKeepError(c *C) { // (2) Keep error kc := &KeepErrorTestClient{} - cr, err := NewContainerRunner(s.client, &ArvTestClient{}, kc, s.docker, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") + cr, err := NewContainerRunner(s.client, &ArvTestClient{}, kc, adapter(s.docker), "zzzzz-zzzzz-zzzzzzzzzzzzzzz") c.Assert(err, IsNil) cr.ContainerArvClient = &ArvTestClient{} @@ -608,7 +604,7 @@ func (s *TestSuite) TestLoadImageCollectionError(c *C) { func (s *TestSuite) TestLoadImageKeepReadError(c *C) { // (4) Collection doesn't contain image kc := &KeepReadErrorTestClient{} - cr, err := NewContainerRunner(s.client, &ArvTestClient{}, kc, s.docker, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") + cr, err := NewContainerRunner(s.client, &ArvTestClient{}, kc, adapter(s.docker), "zzzzz-zzzzz-zzzzzzzzzzzzzzz") c.Assert(err, IsNil) cr.Container.ContainerImage = hwPDH cr.ContainerArvClient = &ArvTestClient{} @@ -657,7 +653,7 @@ func (s *TestSuite) TestRunContainer(c *C) { } kc := &KeepTestClient{} defer kc.Close() - cr, err := NewContainerRunner(s.client, &ArvTestClient{}, kc, s.docker, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") + cr, err := NewContainerRunner(s.client, &ArvTestClient{}, kc, adapter(s.docker), "zzzzz-zzzzz-zzzzzzzzzzzzzzz") c.Assert(err, IsNil) cr.ContainerArvClient = &ArvTestClient{} @@ -775,13 +771,13 @@ func (s *TestSuite) fullRunHelper(c *C, record string, extraMounts []string, exi s.docker.exitCode = exitCode s.docker.fn = fn - s.docker.ImageRemove(nil, hwImageId, dockertypes.ImageRemoveOptions{}) + s.docker.ImageRemove(nil, hwImageID, dockertypes.ImageRemoveOptions{}) api = &ArvTestClient{Container: rec} s.docker.api = api kc := &KeepTestClient{} defer kc.Close() - cr, err = NewContainerRunner(s.client, api, kc, s.docker, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") + cr, err = NewContainerRunner(s.client, api, kc, adapter(s.docker), "zzzzz-zzzzz-zzzzzzzzzzzzzzz") c.Assert(err, IsNil) s.runner = cr cr.statInterval = 100 * time.Millisecond @@ -1135,12 +1131,12 @@ func (s *TestSuite) testStopContainer(c *C, setup func(cr *ContainerRunner)) { t.logWriter.Write(dockerLog(1, "foo\n")) t.logWriter.Close() } - s.docker.ImageRemove(nil, hwImageId, dockertypes.ImageRemoveOptions{}) + s.docker.ImageRemove(nil, hwImageID, dockertypes.ImageRemoveOptions{}) api := &ArvTestClient{Container: rec} kc := &KeepTestClient{} defer kc.Close() - cr, err := NewContainerRunner(s.client, api, kc, s.docker, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") + cr, err := NewContainerRunner(s.client, api, kc, adapter(s.docker), "zzzzz-zzzzz-zzzzzzzzzzzzzzz") c.Assert(err, IsNil) cr.RunArvMount = func([]string, string) (*exec.Cmd, error) { return nil, nil } cr.MkArvClient = func(token string) (IArvadosClient, IKeepClient, *arvados.Client, error) { @@ -1295,9 +1291,7 @@ func (s *TestSuite) TestSetupMounts(c *C) { cr.Container.Mounts = make(map[string]arvados.Mount) cr.Container.Mounts["/tmp"] = arvados.Mount{Kind: "tmp"} cr.Container.OutputPath = "/tmp" - - apiflag := true - cr.Container.RuntimeConstraints.API = &apiflag + cr.Container.RuntimeConstraints.API = true err := cr.SetupMounts() c.Check(err, IsNil) @@ -1309,7 +1303,7 @@ func (s *TestSuite) TestSetupMounts(c *C) { cr.CleanupDirs() checkEmpty() - apiflag = false + cr.Container.RuntimeConstraints.API = false } { @@ -1510,7 +1504,7 @@ func (s *TestSuite) TestSetupMounts(c *C) { err := cr.SetupMounts() c.Check(err, NotNil) - c.Check(err, ErrorMatches, `Only mount points of kind 'collection', 'text' or 'json' are supported underneath the output_path.*`) + c.Check(err, ErrorMatches, `only mount points of kind 'collection', 'text' or 'json' are supported underneath the output_path.*`) os.RemoveAll(cr.ArvMountPoint) cr.CleanupDirs() checkEmpty() @@ -1527,7 +1521,7 @@ func (s *TestSuite) TestSetupMounts(c *C) { err := cr.SetupMounts() c.Check(err, NotNil) - c.Check(err, ErrorMatches, `Unsupported mount kind 'tmp' for stdin.*`) + c.Check(err, ErrorMatches, `unsupported mount kind 'tmp' for stdin.*`) os.RemoveAll(cr.ArvMountPoint) cr.CleanupDirs() checkEmpty() @@ -1622,12 +1616,12 @@ func (s *TestSuite) stdoutErrorRunHelper(c *C, record string, fn func(t *TestDoc c.Check(err, IsNil) s.docker.fn = fn - s.docker.ImageRemove(nil, hwImageId, dockertypes.ImageRemoveOptions{}) + s.docker.ImageRemove(nil, hwImageID, dockertypes.ImageRemoveOptions{}) api = &ArvTestClient{Container: rec} kc := &KeepTestClient{} defer kc.Close() - cr, err = NewContainerRunner(s.client, api, kc, s.docker, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") + cr, err = NewContainerRunner(s.client, api, kc, adapter(s.docker), "zzzzz-zzzzz-zzzzzzzzzzzzzzz") c.Assert(err, IsNil) am := &ArvMountCmdLine{} cr.RunArvMount = am.ArvMountTest @@ -1658,7 +1652,7 @@ func (s *TestSuite) TestStdoutWithWrongKindTmp(c *C) { }`, func(t *TestDockerClient) {}) c.Check(err, NotNil) - c.Check(strings.Contains(err.Error(), "Unsupported mount kind 'tmp' for stdout"), Equals, true) + c.Check(strings.Contains(err.Error(), "unsupported mount kind 'tmp' for stdout"), Equals, true) } func (s *TestSuite) TestStdoutWithWrongKindCollection(c *C) { @@ -1669,7 +1663,7 @@ func (s *TestSuite) TestStdoutWithWrongKindCollection(c *C) { }`, func(t *TestDockerClient) {}) c.Check(err, NotNil) - c.Check(strings.Contains(err.Error(), "Unsupported mount kind 'collection' for stdout"), Equals, true) + c.Check(strings.Contains(err.Error(), "unsupported mount kind 'collection' for stdout"), Equals, true) } func (s *TestSuite) TestFullRunWithAPI(c *C) {