X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/12da8133a90777f2faca72ee2cbba11cc71480e8..34227825eec21d3a393d4467b7ed768b52ac32b1:/services/keepstore/volume_unix_test.go diff --git a/services/keepstore/volume_unix_test.go b/services/keepstore/volume_unix_test.go index d6b1c807f8..924637f58e 100644 --- a/services/keepstore/volume_unix_test.go +++ b/services/keepstore/volume_unix_test.go @@ -85,12 +85,28 @@ 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() - v.Put(TEST_HASH, TEST_BLOCK) + v.Put(TestHash, TestBlock) - buf, err := v.Get(TEST_HASH_2) + buf, err := v.Get(TestHash2) switch { case os.IsNotExist(err): break @@ -105,16 +121,16 @@ func TestPut(t *testing.T) { v := NewTestableUnixVolume(t, false, false) defer v.Teardown() - err := v.Put(TEST_HASH, TEST_BLOCK) + err := v.Put(TestHash, TestBlock) if err != nil { t.Error(err) } - p := fmt.Sprintf("%s/%s/%s", v.root, TEST_HASH[:3], TEST_HASH) + p := fmt.Sprintf("%s/%s/%s", v.root, TestHash[:3], TestHash) if buf, err := ioutil.ReadFile(p); err != nil { t.Error(err) - } else if bytes.Compare(buf, TEST_BLOCK) != 0 { + } else if bytes.Compare(buf, TestBlock) != 0 { t.Errorf("Write should have stored %s, did store %s", - string(TEST_BLOCK), string(buf)) + string(TestBlock), string(buf)) } } @@ -123,7 +139,7 @@ func TestPutBadVolume(t *testing.T) { defer v.Teardown() os.Chmod(v.root, 000) - err := v.Put(TEST_HASH, TEST_BLOCK) + err := v.Put(TestHash, TestBlock) if err == nil { t.Error("Write should have failed") } @@ -133,24 +149,24 @@ func TestUnixVolumeReadonly(t *testing.T) { v := NewTestableUnixVolume(t, false, true) defer v.Teardown() - v.PutRaw(TEST_HASH, TEST_BLOCK) + v.PutRaw(TestHash, TestBlock) - _, err := v.Get(TEST_HASH) + _, err := v.Get(TestHash) if err != nil { t.Errorf("got err %v, expected nil", err) } - err = v.Put(TEST_HASH, TEST_BLOCK) + err = v.Put(TestHash, TestBlock) if err != MethodDisabledError { t.Errorf("got err %v, expected MethodDisabledError", err) } - err = v.Touch(TEST_HASH) + err = v.Touch(TestHash) if err != MethodDisabledError { t.Errorf("got err %v, expected MethodDisabledError", err) } - err = v.Delete(TEST_HASH) + err = v.Delete(TestHash) if err != MethodDisabledError { t.Errorf("got err %v, expected MethodDisabledError", err) } @@ -200,9 +216,9 @@ func TestUnixVolumeGetFuncWorkerError(t *testing.T) { v := NewTestableUnixVolume(t, false, false) defer v.Teardown() - v.Put(TEST_HASH, TEST_BLOCK) + v.Put(TestHash, TestBlock) mockErr := errors.New("Mock error") - err := v.getFunc(v.blockPath(TEST_HASH), func(rdr io.Reader) error { + err := v.getFunc(v.blockPath(TestHash), func(rdr io.Reader) error { return mockErr }) if err != mockErr { @@ -215,7 +231,7 @@ func TestUnixVolumeGetFuncFileError(t *testing.T) { defer v.Teardown() funcCalled := false - err := v.getFunc(v.blockPath(TEST_HASH), func(rdr io.Reader) error { + err := v.getFunc(v.blockPath(TestHash), func(rdr io.Reader) error { funcCalled = true return nil }) @@ -231,13 +247,13 @@ func TestUnixVolumeGetFuncWorkerWaitsOnMutex(t *testing.T) { v := NewTestableUnixVolume(t, false, false) defer v.Teardown() - v.Put(TEST_HASH, TEST_BLOCK) + v.Put(TestHash, TestBlock) mtx := NewMockMutex() v.locker = mtx funcCalled := make(chan struct{}) - go v.getFunc(v.blockPath(TEST_HASH), func(rdr io.Reader) error { + go v.getFunc(v.blockPath(TestHash), func(rdr io.Reader) error { funcCalled <- struct{}{} return nil }) @@ -266,26 +282,26 @@ func TestUnixVolumeCompare(t *testing.T) { v := NewTestableUnixVolume(t, false, false) defer v.Teardown() - v.Put(TEST_HASH, TEST_BLOCK) - err := v.Compare(TEST_HASH, TEST_BLOCK) + v.Put(TestHash, TestBlock) + err := v.Compare(TestHash, TestBlock) if err != nil { t.Errorf("Got err %q, expected nil", err) } - err = v.Compare(TEST_HASH, []byte("baddata")) + err = v.Compare(TestHash, []byte("baddata")) if err != CollisionError { t.Errorf("Got err %q, expected %q", err, CollisionError) } - v.Put(TEST_HASH, []byte("baddata")) - err = v.Compare(TEST_HASH, TEST_BLOCK) + v.Put(TestHash, []byte("baddata")) + err = v.Compare(TestHash, TestBlock) if err != DiskHashError { t.Errorf("Got err %q, expected %q", err, DiskHashError) } - p := fmt.Sprintf("%s/%s/%s", v.root, TEST_HASH[:3], TEST_HASH) + p := fmt.Sprintf("%s/%s/%s", v.root, TestHash[:3], TestHash) os.Chmod(p, 000) - err = v.Compare(TEST_HASH, TEST_BLOCK) + err = v.Compare(TestHash, TestBlock) if err == nil || strings.Index(err.Error(), "permission denied") < 0 { t.Errorf("Got err %q, expected %q", err, "permission denied") }