Merge branch 'master' into 7252-go-sdk-errors
[arvados.git] / sdk / go / manifest / manifest_test.go
index 53d4a15af60a7dd0bb03ece18f16ecb7e1a3a9bf..43c3bd34862343a9eec30870346896d5fd84c15b 100644 (file)
@@ -85,10 +85,15 @@ func TestParseBlockLocatorSimple(t *testing.T) {
        if err != nil {
                t.Fatalf("Unexpected error parsing block locator: %v", err)
        }
+       d, err := blockdigest.FromString("365f83f5f808896ec834c8b595288735")
+       if err != nil {
+               t.Fatalf("Unexpected error during FromString for block locator: %v", err)
+       }
        expectBlockLocator(t, blockdigest.BlockLocator{b.Digest, b.Size, b.Hints},
-               blockdigest.BlockLocator{Digest: blockdigest.AssertFromString("365f83f5f808896ec834c8b595288735"),
-                       Size:  2310,
-                       Hints: []string{"K@qr1hi", "Af0c9a66381f3b028677411926f0be1c6282fe67c@542b5ddf"}})
+               blockdigest.BlockLocator{Digest: d,
+                       Size: 2310,
+                       Hints: []string{"K@qr1hi",
+                               "Af0c9a66381f3b028677411926f0be1c6282fe67c@542b5ddf"}})
 }
 
 func TestStreamIterShortManifestWithBlankStreams(t *testing.T) {
@@ -122,10 +127,13 @@ func TestBlockIterLongManifest(t *testing.T) {
        blockChannel := manifest.BlockIterWithDuplicates()
 
        firstBlock := <-blockChannel
-
+       d, err := blockdigest.FromString("b746e3d2104645f2f64cd3cc69dd895d")
+       if err != nil {
+               t.Fatalf("Unexpected error during FromString for block: %v", err)
+       }
        expectBlockLocator(t,
                firstBlock,
-               blockdigest.BlockLocator{Digest: blockdigest.AssertFromString("b746e3d2104645f2f64cd3cc69dd895d"),
+               blockdigest.BlockLocator{Digest: d,
                        Size:  15693477,
                        Hints: []string{"E2866e643690156651c03d876e638e674dcd79475@5441920c"}})
        blocksRead := 1
@@ -135,9 +143,13 @@ func TestBlockIterLongManifest(t *testing.T) {
        }
        expectEqual(t, blocksRead, 853)
 
+       d, err = blockdigest.FromString("f9ce82f59e5908d2d70e18df9679b469")
+       if err != nil {
+               t.Fatalf("Unexpected error during FromString for block: %v", err)
+       }
        expectBlockLocator(t,
                lastBlock,
-               blockdigest.BlockLocator{Digest: blockdigest.AssertFromString("f9ce82f59e5908d2d70e18df9679b469"),
+               blockdigest.BlockLocator{Digest: d,
                        Size:  31367794,
                        Hints: []string{"E53f903684239bcc114f7bf8ff9bd6089f33058db@5441920c"}})
 }
@@ -202,12 +214,16 @@ func TestBlockIterWithBadManifest(t *testing.T) {
                {"badstream acbd18db4cc2f85cedef654fccc4a4d8+3 0:1:file1.txt", "Invalid stream name: badstream"},
                {"/badstream acbd18db4cc2f85cedef654fccc4a4d8+3 0:1:file1.txt", "Invalid stream name: /badstream"},
                {". acbd18db4cc2f85cedef654fccc4a4d8+3 file1.txt", "Invalid file token: file1.txt"},
-               {". acbd18db4cc2f85cedef654fccc4a4+3 0:1:file1.txt", "Invalid file token: acbd18db4cc2f85cedef654fccc4a4.*"},
-               {". acbd18db4cc2f85cedef654fccc4a4d8 0:1:file1.txt", "Invalid file token: acbd18db4cc2f85cedef654fccc4a4d8"},
+               {". acbd18db4cc2f85cedef654fccc4a4+3 0:1:file1.txt", "No block locators found"},
+               {". acbd18db4cc2f85cedef654fccc4a4d8 0:1:file1.txt", "No block locators found"},
                {". acbd18db4cc2f85cedef654fccc4a4d8+3 0:1:file1.txt file2.txt 1:2:file3.txt", "Invalid file token: file2.txt"},
                {". acbd18db4cc2f85cedef654fccc4a4d8+3 0:1:file1.txt. bcde18db4cc2f85cedef654fccc4a4d8+3 1:2:file3.txt", "Invalid file token: bcde18db4cc2f85cedef654fccc4a4d8.*"},
                {". acbd18db4cc2f85cedef654fccc4a4d8+3 0:1:file1.txt\n. acbd18db4cc2f85cedef654fccc4a4d8+3 ::file2.txt\n", "Invalid file token: ::file2.txt"},
-               {". acbd18db4cc2f85cedef654fccc4a4d8+3 bcde18db4cc2f85cedef654fccc4a4d8+3\n", "Invalid file token: bcde18db4cc2f85cedef654fccc4a4d8.*"},
+               {". acbd18db4cc2f85cedef654fccc4a4d8+3 bcde18db4cc2f85cedef654fccc4a4d8+3\n", "No file tokens found"},
+               {". acbd18db4cc2f85cedef654fccc4a4d8+3 ", "Invalid file token"},
+               {". acbd18db4cc2f85cedef654fccc4a4d8+3", "No file tokens found"},
+               {". 0:1:file1.txt\n", "No block locators found"},
+               {".\n", "No block locators found"},
        }
 
        for _, testCase := range testCases {
@@ -220,12 +236,12 @@ func TestBlockIterWithBadManifest(t *testing.T) {
 
                // completed reading from blockChannel; now check for errors
                if manifest.Err == nil {
-                       t.Errorf("Expected error")
+                       t.Fatalf("Expected error")
                }
 
                matched, _ := regexp.MatchString(testCase[1], manifest.Err.Error())
                if !matched {
-                       t.Errorf("Expected error not found. Expected: %v; Found: %v", testCase[1], manifest.Err.Error())
+                       t.Fatalf("Expected error not found. Expected: %v; Found: %v", testCase[1], manifest.Err.Error())
                }
        }
 }