X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/e59b78c774872e33b9c69acc196989a0f565bdf4..516685e09227ab64c2d4f7fd04d4b60a75fc5d0f:/services/crunch-run/crunchrun_test.go diff --git a/services/crunch-run/crunchrun_test.go b/services/crunch-run/crunchrun_test.go index eb4f220e22..0df048cc8b 100644 --- a/services/crunch-run/crunchrun_test.go +++ b/services/crunch-run/crunchrun_test.go @@ -375,6 +375,10 @@ call: return nil } +func (client *KeepTestClient) LocalLocator(locator string) (string, error) { + return locator, nil +} + func (client *KeepTestClient) PutB(buf []byte) (string, int, error) { client.Content = buf return fmt.Sprintf("%x+%d", md5.Sum(buf), len(buf)), len(buf), nil @@ -443,6 +447,10 @@ func (s *TestSuite) TestLoadImage(c *C) { cr, err := NewContainerRunner(s.client, &ArvTestClient{}, kc, s.docker, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") c.Assert(err, IsNil) + cr.MkArvClient = func(token string) (IArvadosClient, IKeepClient, error) { + return &ArvTestClient{}, kc, nil + } + _, err = cr.Docker.ImageRemove(nil, hwImageId, dockertypes.ImageRemoveOptions{}) c.Check(err, IsNil) @@ -488,6 +496,9 @@ func (ArvErrorTestClient) Create(resourceType string, } func (ArvErrorTestClient) Call(method, resourceType, uuid, action string, parameters arvadosclient.Dict, output interface{}) error { + if method == "GET" && resourceType == "containers" && action == "auth" { + return nil + } return errors.New("ArvError") } @@ -520,6 +531,10 @@ func (*KeepErrorTestClient) PutB(buf []byte) (string, int, error) { return "", 0, errors.New("KeepError") } +func (*KeepErrorTestClient) LocalLocator(string) (string, error) { + return "", errors.New("KeepError") +} + type KeepReadErrorTestClient struct { KeepTestClient } @@ -548,9 +563,13 @@ func (s *TestSuite) TestLoadImageArvError(c *C) { // (1) Arvados error kc := &KeepTestClient{} defer kc.Close() - cr, err := NewContainerRunner(s.client, ArvErrorTestClient{}, kc, nil, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") + cr, err := NewContainerRunner(s.client, &ArvErrorTestClient{}, kc, nil, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") c.Assert(err, IsNil) + cr.Container.ContainerImage = hwPDH + cr.MkArvClient = func(token string) (IArvadosClient, IKeepClient, error) { + return &ArvErrorTestClient{}, &KeepTestClient{}, nil + } err = cr.LoadImage() c.Check(err.Error(), Equals, "While getting container image collection: ArvError") @@ -558,9 +577,13 @@ func (s *TestSuite) TestLoadImageArvError(c *C) { func (s *TestSuite) TestLoadImageKeepError(c *C) { // (2) Keep error - cr, err := NewContainerRunner(s.client, &ArvTestClient{}, &KeepErrorTestClient{}, s.docker, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") + kc := &KeepErrorTestClient{} + cr, err := NewContainerRunner(s.client, &ArvTestClient{}, kc, s.docker, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") c.Assert(err, IsNil) cr.Container.ContainerImage = hwPDH + cr.MkArvClient = func(token string) (IArvadosClient, IKeepClient, error) { + return &ArvTestClient{}, kc, nil + } err = cr.LoadImage() c.Assert(err, NotNil) @@ -569,9 +592,13 @@ func (s *TestSuite) TestLoadImageKeepError(c *C) { func (s *TestSuite) TestLoadImageCollectionError(c *C) { // (3) Collection doesn't contain image - cr, err := NewContainerRunner(s.client, &ArvTestClient{}, &KeepReadErrorTestClient{}, nil, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") + kc := &KeepReadErrorTestClient{} + cr, err := NewContainerRunner(s.client, &ArvTestClient{}, kc, nil, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") c.Assert(err, IsNil) cr.Container.ContainerImage = otherPDH + cr.MkArvClient = func(token string) (IArvadosClient, IKeepClient, error) { + return &ArvTestClient{}, kc, nil + } err = cr.LoadImage() c.Check(err.Error(), Equals, "First file in the container image collection does not end in .tar") @@ -579,9 +606,13 @@ func (s *TestSuite) TestLoadImageCollectionError(c *C) { func (s *TestSuite) TestLoadImageKeepReadError(c *C) { // (4) Collection doesn't contain image - cr, err := NewContainerRunner(s.client, &ArvTestClient{}, &KeepReadErrorTestClient{}, s.docker, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") + kc := &KeepReadErrorTestClient{} + cr, err := NewContainerRunner(s.client, &ArvTestClient{}, kc, s.docker, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") c.Assert(err, IsNil) cr.Container.ContainerImage = hwPDH + cr.MkArvClient = func(token string) (IArvadosClient, IKeepClient, error) { + return &ArvTestClient{}, kc, nil + } err = cr.LoadImage() c.Check(err, NotNil) @@ -629,6 +660,10 @@ func (s *TestSuite) TestRunContainer(c *C) { cr, err := NewContainerRunner(s.client, &ArvTestClient{}, kc, s.docker, "zzzzz-zzzzz-zzzzzzzzzzzzzzz") c.Assert(err, IsNil) + cr.MkArvClient = func(token string) (IArvadosClient, IKeepClient, error) { + return &ArvTestClient{}, kc, nil + } + var logs TestLogs cr.NewLogWriter = logs.NewTestLoggingWriter cr.Container.ContainerImage = hwPDH @@ -772,8 +807,8 @@ func (s *TestSuite) fullRunHelper(c *C, record string, extraMounts []string, exi } return d, err } - cr.MkArvClient = func(token string) (IArvadosClient, error) { - return &ArvTestClient{secretMounts: secretMounts}, nil + cr.MkArvClient = func(token string) (IArvadosClient, IKeepClient, error) { + return &ArvTestClient{secretMounts: secretMounts}, &KeepTestClient{}, nil } if extraMounts != nil && len(extraMounts) > 0 { @@ -1069,8 +1104,8 @@ func (s *TestSuite) testStopContainer(c *C, setup func(cr *ContainerRunner)) { cr, err := NewContainerRunner(s.client, api, kc, 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, error) { - return &ArvTestClient{}, nil + cr.MkArvClient = func(token string) (IArvadosClient, IKeepClient, error) { + return &ArvTestClient{}, &KeepTestClient{}, nil } setup(cr) @@ -1553,8 +1588,8 @@ func (s *TestSuite) stdoutErrorRunHelper(c *C, record string, fn func(t *TestDoc c.Assert(err, IsNil) am := &ArvMountCmdLine{} cr.RunArvMount = am.ArvMountTest - cr.MkArvClient = func(token string) (IArvadosClient, error) { - return &ArvTestClient{}, nil + cr.MkArvClient = func(token string) (IArvadosClient, IKeepClient, error) { + return &ArvTestClient{}, &KeepTestClient{}, nil } err = cr.Run()