X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0561bd0c3c07257fd58ded6c7cfa5feeae97af57..62810af07121274e38a85dcb9c1d7cf5512815d2:/tools/keep-block-check/keep-block-check_test.go diff --git a/tools/keep-block-check/keep-block-check_test.go b/tools/keep-block-check/keep-block-check_test.go index a2000baefd..5bd7136eaa 100644 --- a/tools/keep-block-check/keep-block-check_test.go +++ b/tools/keep-block-check/keep-block-check_test.go @@ -16,9 +16,9 @@ import ( "testing" "time" - "git.curoverse.com/arvados.git/sdk/go/arvadosclient" - "git.curoverse.com/arvados.git/sdk/go/arvadostest" - "git.curoverse.com/arvados.git/sdk/go/keepclient" + "git.arvados.org/arvados.git/sdk/go/arvadosclient" + "git.arvados.org/arvados.git/sdk/go/arvadostest" + "git.arvados.org/arvados.git/sdk/go/keepclient" . "gopkg.in/check.v1" ) @@ -43,16 +43,12 @@ var TestHash2 = "aaaac516f788aec4f30932ffb6395c39" var blobSignatureTTL = time.Duration(2*7*24) * time.Hour -func (s *ServerRequiredSuite) SetUpSuite(c *C) { - arvadostest.StartAPI() -} - func (s *ServerRequiredSuite) TearDownSuite(c *C) { - arvadostest.StopAPI() arvadostest.ResetEnv() } func (s *ServerRequiredSuite) SetUpTest(c *C) { + logBuffer.Reset() logOutput := io.MultiWriter(&logBuffer) log.SetOutput(logOutput) } @@ -60,7 +56,7 @@ func (s *ServerRequiredSuite) SetUpTest(c *C) { func (s *ServerRequiredSuite) TearDownTest(c *C) { arvadostest.StopKeep(2) log.SetOutput(os.Stdout) - log.Printf("%v", logBuffer.String()) + c.Log(logBuffer.String()) } func (s *DoMainTestSuite) SetUpSuite(c *C) { @@ -123,7 +119,6 @@ func setupConfigFile(c *C, fileName string) string { fileContent += "ARVADOS_API_TOKEN=" + arvadostest.DataManagerToken + "\n" fileContent += "\n" fileContent += "ARVADOS_API_HOST_INSECURE=" + os.Getenv("ARVADOS_API_HOST_INSECURE") + "\n" - fileContent += " ARVADOS_EXTERNAL_CLIENT = false \n" fileContent += " NotANameValuePairAndShouldGetIgnored \n" fileContent += "ARVADOS_BLOB_SIGNING_KEY=abcdefg\n" @@ -194,7 +189,7 @@ func (s *ServerRequiredSuite) TestBlockCheck_NoSuchBlock(c *C) { allLocators = append(allLocators, TestHash2) err := performKeepBlockCheck(kc, blobSignatureTTL, "", allLocators, true) c.Check(err, NotNil) - c.Assert(err.Error(), Equals, "Block verification failed for 2 out of 7 blocks with matching prefix.") + c.Assert(err.Error(), Equals, "Block verification failed for 2 out of 7 blocks with matching prefix") checkErrorLog(c, []string{TestHash, TestHash2}, "Error verifying block", "Block not found") } @@ -210,7 +205,7 @@ func (s *ServerRequiredSuite) TestBlockCheck_NoSuchBlock_WithMatchingPrefix(c *C err = performKeepBlockCheck(kc, blobSignatureTTL, "", locators, true) c.Check(err, NotNil) // Of the 7 blocks in allLocators, only two match the prefix and hence only those are checked - c.Assert(err.Error(), Equals, "Block verification failed for 2 out of 2 blocks with matching prefix.") + c.Assert(err.Error(), Equals, "Block verification failed for 2 out of 2 blocks with matching prefix") checkErrorLog(c, []string{TestHash, TestHash2}, "Error verifying block", "Block not found") } @@ -231,8 +226,10 @@ func (s *ServerRequiredSuite) TestBlockCheck_BadSignature(c *C) { setupKeepBlockCheck(c, true, "") setupTestData(c) err := performKeepBlockCheck(kc, blobSignatureTTL, "badblobsigningkey", []string{TestHash, TestHash2}, false) - c.Assert(err.Error(), Equals, "Block verification failed for 2 out of 2 blocks with matching prefix.") - checkErrorLog(c, []string{TestHash, TestHash2}, "Error verifying block", "HTTP 403") + c.Assert(err.Error(), Equals, "Block verification failed for 2 out of 2 blocks with matching prefix") + // older versions of keepstore return 403 Forbidden for + // invalid signatures, newer versions return 400 Bad Request. + checkErrorLog(c, []string{TestHash, TestHash2}, "Error verifying block", "HTTP 40[03]") // verbose logging not requested c.Assert(strings.Contains(logBuffer.String(), "Verifying block 1 of 2"), Equals, false) } @@ -267,7 +264,7 @@ var testKeepServicesJSON = `{ func (s *ServerRequiredSuite) TestErrorDuringKeepBlockCheck_FakeKeepservers(c *C) { setupKeepBlockCheck(c, false, testKeepServicesJSON) err := performKeepBlockCheck(kc, blobSignatureTTL, "", []string{TestHash, TestHash2}, true) - c.Assert(err.Error(), Equals, "Block verification failed for 2 out of 2 blocks with matching prefix.") + c.Assert(err.Error(), Equals, "Block verification failed for 2 out of 2 blocks with matching prefix") checkErrorLog(c, []string{TestHash, TestHash2}, "Error verifying block", "") } @@ -296,22 +293,23 @@ func (s *ServerRequiredSuite) TestLoadConfig(c *C) { c.Assert(config.APIHost, Equals, os.Getenv("ARVADOS_API_HOST")) c.Assert(config.APIToken, Equals, arvadostest.DataManagerToken) c.Assert(config.APIHostInsecure, Equals, arvadosclient.StringBool(os.Getenv("ARVADOS_API_HOST_INSECURE"))) - c.Assert(config.ExternalClient, Equals, false) c.Assert(blobSigningKey, Equals, "abcdefg") } func (s *DoMainTestSuite) Test_doMain_WithNoConfig(c *C) { args := []string{"-prefix", "a"} - err := doMain(args) - c.Check(err, NotNil) - c.Assert(strings.Contains(err.Error(), "config file not specified"), Equals, true) + var stderr bytes.Buffer + code := doMain(args, &stderr) + c.Check(code, Equals, 1) + c.Check(stderr.String(), Matches, ".*config file not specified\n") } func (s *DoMainTestSuite) Test_doMain_WithNoSuchConfigFile(c *C) { args := []string{"-config", "no-such-file"} - err := doMain(args) - c.Check(err, NotNil) - c.Assert(strings.Contains(err.Error(), "no such file or directory"), Equals, true) + var stderr bytes.Buffer + code := doMain(args, &stderr) + c.Check(code, Equals, 1) + c.Check(stderr.String(), Matches, ".*no such file or directory\n") } func (s *DoMainTestSuite) Test_doMain_WithNoBlockHashFile(c *C) { @@ -323,8 +321,10 @@ func (s *DoMainTestSuite) Test_doMain_WithNoBlockHashFile(c *C) { defer arvadostest.StopKeep(2) args := []string{"-config", config} - err := doMain(args) - c.Assert(strings.Contains(err.Error(), "block-hash-file not specified"), Equals, true) + var stderr bytes.Buffer + code := doMain(args, &stderr) + c.Check(code, Equals, 1) + c.Check(stderr.String(), Matches, ".*block-hash-file not specified\n") } func (s *DoMainTestSuite) Test_doMain_WithNoSuchBlockHashFile(c *C) { @@ -335,8 +335,10 @@ func (s *DoMainTestSuite) Test_doMain_WithNoSuchBlockHashFile(c *C) { defer arvadostest.StopKeep(2) args := []string{"-config", config, "-block-hash-file", "no-such-file"} - err := doMain(args) - c.Assert(strings.Contains(err.Error(), "no such file or directory"), Equals, true) + var stderr bytes.Buffer + code := doMain(args, &stderr) + c.Check(code, Equals, 1) + c.Check(stderr.String(), Matches, ".*no such file or directory\n") } func (s *DoMainTestSuite) Test_doMain(c *C) { @@ -351,9 +353,10 @@ func (s *DoMainTestSuite) Test_doMain(c *C) { defer os.Remove(locatorFile) args := []string{"-config", config, "-block-hash-file", locatorFile, "-v"} - err := doMain(args) - c.Check(err, NotNil) - c.Assert(err.Error(), Equals, "Block verification failed for 2 out of 2 blocks with matching prefix.") + var stderr bytes.Buffer + code := doMain(args, &stderr) + c.Check(code, Equals, 1) + c.Assert(stderr.String(), Matches, "Block verification failed for 2 out of 2 blocks with matching prefix\n") checkErrorLog(c, []string{TestHash, TestHash2}, "Error verifying block", "Block not found") c.Assert(strings.Contains(logBuffer.String(), "Verifying block 1 of 2"), Equals, true) }