X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/5fd885a3037f1bc98344c17a68fcdeff75ab974b..dc16046dbfdca4a9c0d94971730d220b27e80620:/lib/recovercollection/cmd_test.go?ds=sidebyside diff --git a/lib/recovercollection/cmd_test.go b/lib/recovercollection/cmd_test.go index a6bf19de2d..f891e55677 100644 --- a/lib/recovercollection/cmd_test.go +++ b/lib/recovercollection/cmd_test.go @@ -27,7 +27,6 @@ var _ = check.Suite(&Suite{}) type Suite struct{} func (*Suite) SetUpSuite(c *check.C) { - arvadostest.StartAPI() arvadostest.StartKeep(2, true) } @@ -36,7 +35,7 @@ func (*Suite) TestUnrecoverableBlock(c *check.C) { mfile := tmp + "/manifest" ioutil.WriteFile(mfile, []byte(". aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+410 0:410:Gone\n"), 0777) var stdout, stderr bytes.Buffer - exitcode := Command.RunCommand("undelete.test", []string{"-log-level=debug", mfile}, &bytes.Buffer{}, &stdout, &stderr) + exitcode := Command.RunCommand("recovercollection.test", []string{"-log-level=debug", mfile}, &bytes.Buffer{}, &stdout, &stderr) c.Check(exitcode, check.Equals, 1) c.Check(stdout.String(), check.Equals, "") c.Log(stderr.String()) @@ -90,10 +89,11 @@ func (*Suite) TestUntrashAndTouchBlock(c *check.C) { c.Assert(err, check.IsNil) t := time.Now().Add(-time.Hour * 24 * 365) err = os.Chtimes(trashfile, t, t) + c.Assert(err, check.IsNil) } var stdout, stderr bytes.Buffer - exitcode := Command.RunCommand("undelete.test", []string{"-log-level=debug", mfile}, &bytes.Buffer{}, &stdout, &stderr) + exitcode := Command.RunCommand("recovercollection.test", []string{"-log-level=debug", mfile}, &bytes.Buffer{}, &stdout, &stderr) c.Check(exitcode, check.Equals, 0) c.Check(stdout.String(), check.Matches, `zzzzz-4zz18-.{15}\n`) c.Log(stderr.String()) @@ -115,3 +115,22 @@ func (*Suite) TestUntrashAndTouchBlock(c *check.C) { } c.Check(found, check.Equals, true) } + +func (*Suite) TestUnusableManifestSourceArg(c *check.C) { + for _, trial := range []struct { + srcArg string + errRegexp string + }{ + {"zzzzz-4zz18-aaaaaaaaaaaaaaa", `(?ms).*msg="log entry not found".*`}, + {"zzzzz-57u5n-aaaaaaaaaaaaaaa", `(?ms).*msg="log entry not found.*`}, + {"zzzzz-57u5n-containerlog006", `(?ms).*msg="log entry properties\.old_attributes\.manifest_text missing or empty".*`}, + {"zzzzz-j7d0g-aaaaaaaaaaaaaaa", `(?ms).*msg="looks like a UUID but not a log or collection UUID.*`}, + } { + var stdout, stderr bytes.Buffer + exitcode := Command.RunCommand("recovercollection.test", []string{"-log-level=debug", trial.srcArg}, &bytes.Buffer{}, &stdout, &stderr) + c.Check(exitcode, check.Equals, 1) + c.Check(stdout.String(), check.Equals, "") + c.Log(stderr.String()) + c.Check(stderr.String(), check.Matches, trial.errRegexp) + } +}