Merge branch 'master' into 7200-keepproxy-index-api
[arvados.git] / services / keepstore / volume_unix_test.go
index 35cf457d8f2edc5288dd61eba7b2f7e99fe33c9a..924637f58e5004f1cec307266c87c0b53ae81d03 100644 (file)
@@ -85,6 +85,22 @@ func TestUnixVolumeWithGenericTestsSerialized(t *testing.T) {
        })
 }
 
+// serialize = false; readonly = false
+func TestUnixVolumeHandlersWithGenericVolumeTests(t *testing.T) {
+       DoHandlersWithGenericVolumeTests(t, func(t *testing.T) (*RRVolumeManager, []TestableVolume) {
+               vols := make([]Volume, 2)
+               testableUnixVols := make([]TestableVolume, 2)
+
+               for i := range vols {
+                       v := NewTestableUnixVolume(t, false, false)
+                       vols[i] = v
+                       testableUnixVols[i] = v
+               }
+
+               return MakeRRVolumeManager(vols), testableUnixVols
+       })
+}
+
 func TestGetNotFound(t *testing.T) {
        v := NewTestableUnixVolume(t, false, false)
        defer v.Teardown()
@@ -291,65 +307,6 @@ func TestUnixVolumeCompare(t *testing.T) {
        }
 }
 
-// Put an EmptyBlock and get and compare for EmptyHash
-// With #7329 unresolved, Compare falls in infinite loop
-func TestGetAndCompareEmptyBlock(t *testing.T) {
-       v := NewTestableUnixVolume(t, false, false)
-       defer v.Teardown()
-
-       v.Put(EmptyHash, EmptyBlock)
-
-       buf, err := v.Get(EmptyHash)
-       if err != nil {
-               t.Errorf("Error during Get for %q: %s", EmptyHash, err)
-       }
-
-       err = v.Compare(EmptyHash, buf)
-       if err != nil {
-               t.Errorf("Error during Compare for %q: %s", EmptyHash, err)
-       }
-}
-
-// Put baddata for EmptyHash. Get will succeed, but Compare will raise DiskHashError
-func TestGetAndCompareEmptyHashWithDiskHashError(t *testing.T) {
-       v := NewTestableUnixVolume(t, false, false)
-       defer v.Teardown()
-
-       v.PutRaw(EmptyHash, []byte("baddata"))
-
-       _, err := v.Get(EmptyHash)
-       if err != nil {
-               t.Errorf("Unexpected error after PutRaw EmptyHash with baddata")
-       }
-
-       err = v.Compare(EmptyHash, EmptyBlock)
-       if err != DiskHashError {
-               t.Errorf("Expected DiskHashError when comparing EmptyHash with bad data. Got %s", err)
-       }
-}
-
-// Get non existing empty block; should fail with file not found error.
-func TestGetEmptyBlockNonExisting(t *testing.T) {
-       v := NewTestableUnixVolume(t, false, false)
-       defer v.Teardown()
-
-       buf, err := v.Get(EmptyHash)
-       if err == nil {
-               t.Errorf("Get non existing empty hash should have failed, instead got %q", buf)
-       }
-}
-
-// Compare non existing empty hash should fail with file not found error.
-func TestCompareEmptyHashNonExisting(t *testing.T) {
-       v := NewTestableUnixVolume(t, false, false)
-       defer v.Teardown()
-
-       err := v.Compare(EmptyHash, EmptyBlock)
-       if err == nil {
-               t.Errorf("Expected error no such file. But got no error.")
-       }
-}
-
 // TODO(twp): show that the underlying Read/Write operations executed
 // serially and not concurrently. The easiest way to do this is
 // probably to activate verbose or debug logging, capture log output