9005: Tidy up test suite.
authorTom Clegg <tom@curoverse.com>
Thu, 1 Jun 2017 01:49:43 +0000 (21:49 -0400)
committerTom Clegg <tom@curoverse.com>
Thu, 1 Jun 2017 01:49:43 +0000 (21:49 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curoverse.com>

tools/keep-rsync/keep-rsync_test.go

index 93f71d40120c7d260311fd4e4947bcd1870cb642..d17c4718dfbdd8cf0b0f5e5da5e3cef1217e7815 100644 (file)
@@ -4,7 +4,6 @@ import (
        "crypto/md5"
        "fmt"
        "io/ioutil"
-       "log"
        "os"
        "strings"
        "testing"
@@ -16,6 +15,10 @@ import (
        . "gopkg.in/check.v1"
 )
 
+var kcSrc, kcDst *keepclient.KeepClient
+var srcKeepServicesJSON, dstKeepServicesJSON, blobSigningKey string
+var blobSignatureTTL = time.Duration(2*7*24) * time.Hour
+
 func resetGlobals() {
        blobSigningKey = ""
        srcKeepServicesJSON = ""
@@ -29,18 +32,13 @@ func Test(t *testing.T) {
        TestingT(t)
 }
 
-// Gocheck boilerplate
 var _ = Suite(&ServerRequiredSuite{})
 var _ = Suite(&ServerNotRequiredSuite{})
 var _ = Suite(&DoMainTestSuite{})
 
-// Tests that require the Keep server running
 type ServerRequiredSuite struct{}
-type ServerNotRequiredSuite struct{}
-type DoMainTestSuite struct{}
 
 func (s *ServerRequiredSuite) SetUpSuite(c *C) {
-       // Start API server
        arvadostest.StartAPI()
 }
 
@@ -49,16 +47,6 @@ func (s *ServerRequiredSuite) TearDownSuite(c *C) {
        arvadostest.ResetEnv()
 }
 
-var initialArgs []string
-
-func (s *DoMainTestSuite) SetUpSuite(c *C) {
-       initialArgs = os.Args
-}
-
-var kcSrc, kcDst *keepclient.KeepClient
-var srcKeepServicesJSON, dstKeepServicesJSON, blobSigningKey string
-var blobSignatureTTL = time.Duration(2*7*24) * time.Hour
-
 func (s *ServerRequiredSuite) SetUpTest(c *C) {
        resetGlobals()
 }
@@ -67,14 +55,24 @@ func (s *ServerRequiredSuite) TearDownTest(c *C) {
        arvadostest.StopKeep(3)
 }
 
+func (s *ServerNotRequiredSuite) SetUpTest(c *C) {
+       resetGlobals()
+}
+
+type ServerNotRequiredSuite struct{}
+
+type DoMainTestSuite struct {
+       initialArgs []string
+}
+
 func (s *DoMainTestSuite) SetUpTest(c *C) {
-       keepclient.ClearCache()
-       args := []string{"keep-rsync"}
-       os.Args = args
+       s.initialArgs = os.Args
+       os.Args = []string{"keep-rsync"}
+       resetGlobals()
 }
 
 func (s *DoMainTestSuite) TearDownTest(c *C) {
-       os.Args = initialArgs
+       os.Args = s.initialArgs
 }
 
 var testKeepServicesJSON = "{ \"kind\":\"arvados#keepServiceList\", \"etag\":\"\", \"self_link\":\"\", \"offset\":null, \"limit\":null, \"items\":[ { \"href\":\"/keep_services/zzzzz-bi6l4-123456789012340\", \"kind\":\"arvados#keepService\", \"etag\":\"641234567890enhj7hzx432e5\", \"uuid\":\"zzzzz-bi6l4-123456789012340\", \"owner_uuid\":\"zzzzz-tpzed-123456789012345\", \"service_host\":\"keep0.zzzzz.arvadosapi.com\", \"service_port\":25107, \"service_ssl_flag\":false, \"service_type\":\"disk\", \"read_only\":false }, { \"href\":\"/keep_services/zzzzz-bi6l4-123456789012341\", \"kind\":\"arvados#keepService\", \"etag\":\"641234567890enhj7hzx432e5\", \"uuid\":\"zzzzz-bi6l4-123456789012341\", \"owner_uuid\":\"zzzzz-tpzed-123456789012345\", \"service_host\":\"keep0.zzzzz.arvadosapi.com\", \"service_port\":25108, \"service_ssl_flag\":false, \"service_type\":\"disk\", \"read_only\":false } ], \"items_available\":2 }"
@@ -106,10 +104,10 @@ func setupRsync(c *C, enforcePermissions bool, replications int) {
        // setup keepclients
        var err error
        kcSrc, _, err = setupKeepClient(srcConfig, srcKeepServicesJSON, false, 0, blobSignatureTTL)
-       c.Check(err, IsNil)
+       c.Assert(err, IsNil)
 
        kcDst, _, err = setupKeepClient(dstConfig, dstKeepServicesJSON, true, replications, 0)
-       c.Check(err, IsNil)
+       c.Assert(err, IsNil)
 
        srcRoots := map[string]string{}
        dstRoots := map[string]string{}
@@ -177,22 +175,8 @@ func (s *ServerRequiredSuite) TestRsyncInitializeWithKeepServicesJSON(c *C) {
 
        localRoots := kcSrc.LocalRoots()
        c.Check(localRoots, NotNil)
-
-       foundIt := false
-       for k := range localRoots {
-               if k == "zzzzz-bi6l4-123456789012340" {
-                       foundIt = true
-               }
-       }
-       c.Check(foundIt, Equals, true)
-
-       foundIt = false
-       for k := range localRoots {
-               if k == "zzzzz-bi6l4-123456789012341" {
-                       foundIt = true
-               }
-       }
-       c.Check(foundIt, Equals, true)
+       c.Check(localRoots["zzzzz-bi6l4-123456789012340"], Not(Equals), "")
+       c.Check(localRoots["zzzzz-bi6l4-123456789012341"], Not(Equals), "")
 }
 
 // Test keep-rsync initialization with default replications count
@@ -318,8 +302,8 @@ func (s *ServerRequiredSuite) TestErrorDuringRsync_FakeSrcKeepservers(c *C) {
        setupRsync(c, false, 1)
 
        err := performKeepRsync(kcSrc, kcDst, blobSignatureTTL, "", "")
-       log.Printf("Err = %v", err)
-       c.Check(strings.Contains(err.Error(), "no such host"), Equals, true)
+       c.Assert(err, NotNil)
+       c.Check(err.Error(), Matches, ".*no such host.*")
 }
 
 // Setup rsync using dstKeepServicesJSON with fake keepservers.
@@ -330,8 +314,8 @@ func (s *ServerRequiredSuite) TestErrorDuringRsync_FakeDstKeepservers(c *C) {
        setupRsync(c, false, 1)
 
        err := performKeepRsync(kcSrc, kcDst, blobSignatureTTL, "", "")
-       log.Printf("Err = %v", err)
-       c.Check(strings.Contains(err.Error(), "no such host"), Equals, true)
+       c.Assert(err, NotNil)
+       c.Check(err.Error(), Matches, ".*no such host.*")
 }
 
 // Test rsync with signature error during Get from src.
@@ -345,7 +329,8 @@ func (s *ServerRequiredSuite) TestErrorDuringRsync_ErrorGettingBlockFromSrc(c *C
        blobSigningKey = "thisisfakeblobsigningkey"
 
        err := performKeepRsync(kcSrc, kcDst, blobSignatureTTL, blobSigningKey, "")
-       c.Check(strings.Contains(err.Error(), "HTTP 403 \"Forbidden\""), Equals, true)
+       c.Assert(err, NotNil)
+       c.Check(err.Error(), Matches, ".*HTTP 403 \"Forbidden\".*")
 }
 
 // Test rsync with error during Put to src.
@@ -359,7 +344,8 @@ func (s *ServerRequiredSuite) TestErrorDuringRsync_ErrorPuttingBlockInDst(c *C)
        kcDst.Want_replicas = 2
 
        err := performKeepRsync(kcSrc, kcDst, blobSignatureTTL, blobSigningKey, "")
-       c.Check(strings.Contains(err.Error(), "Could not write sufficient replicas"), Equals, true)
+       c.Assert(err, NotNil)
+       c.Check(err.Error(), Matches, ".*Could not write sufficient replicas.*")
 }
 
 // Test loadConfig func
@@ -403,7 +389,8 @@ func (s *ServerNotRequiredSuite) TestLoadConfig_MissingSrcConfig(c *C) {
 // Test loadConfig func - error reading config
 func (s *ServerNotRequiredSuite) TestLoadConfig_ErrorLoadingSrcConfig(c *C) {
        _, _, err := loadConfig("no-such-config-file")
-       c.Assert(strings.Contains(err.Error(), "no such file or directory"), Equals, true)
+       c.Assert(err, NotNil)
+       c.Check(err.Error(), Matches, ".*no such file or directory.*")
 }
 
 func (s *ServerNotRequiredSuite) TestSetupKeepClient_NoBlobSignatureTTL(c *C) {
@@ -436,7 +423,7 @@ func setupConfigFile(c *C, name string) *os.File {
 
 func (s *DoMainTestSuite) Test_doMain_NoSrcConfig(c *C) {
        err := doMain()
-       c.Check(err, NotNil)
+       c.Assert(err, NotNil)
        c.Assert(err.Error(), Equals, "Error loading src configuration from file: config file not specified")
 }
 
@@ -445,7 +432,7 @@ func (s *DoMainTestSuite) Test_doMain_SrcButNoDstConfig(c *C) {
        args := []string{"-replications", "3", "-src", srcConfig.Name()}
        os.Args = append(os.Args, args...)
        err := doMain()
-       c.Check(err, NotNil)
+       c.Assert(err, NotNil)
        c.Assert(err.Error(), Equals, "Error loading dst configuration from file: config file not specified")
 }
 
@@ -453,8 +440,8 @@ func (s *DoMainTestSuite) Test_doMain_BadSrcConfig(c *C) {
        args := []string{"-src", "abcd"}
        os.Args = append(os.Args, args...)
        err := doMain()
-       c.Check(err, NotNil)
-       c.Assert(strings.HasPrefix(err.Error(), "Error loading src configuration from file: Error reading config file"), Equals, true)
+       c.Assert(err, NotNil)
+       c.Assert(err.Error(), Matches, "Error loading src configuration from file: Error reading config file.*")
 }
 
 func (s *DoMainTestSuite) Test_doMain_WithReplicationsButNoSrcConfig(c *C) {