projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '10690-config-dump' refs #10690
[arvados.git]
/
services
/
keepstore
/
trash_worker_test.go
diff --git
a/services/keepstore/trash_worker_test.go
b/services/keepstore/trash_worker_test.go
index ac9406178c00ffaffc024f61ffc981479fc9d4e9..04b034a97976980c5ce66d59c361b44936dabbca 100644
(file)
--- a/
services/keepstore/trash_worker_test.go
+++ b/
services/keepstore/trash_worker_test.go
@@
-2,6
+2,7
@@
package main
import (
"container/list"
import (
"container/list"
+ "context"
"testing"
"time"
)
"testing"
"time"
)
@@
-31,7
+32,7
@@
type TrashWorkerTestData struct {
Expect no errors.
*/
func TestTrashWorkerIntegration_GetNonExistingLocator(t *testing.T) {
Expect no errors.
*/
func TestTrashWorkerIntegration_GetNonExistingLocator(t *testing.T) {
-
neverDelete = fals
e
+
theConfig.EnableDelete = tru
e
testData := TrashWorkerTestData{
Locator1: "5d41402abc4b2a76b9719d911017c592",
Block1: []byte("hello"),
testData := TrashWorkerTestData{
Locator1: "5d41402abc4b2a76b9719d911017c592",
Block1: []byte("hello"),
@@
-53,7
+54,7
@@
func TestTrashWorkerIntegration_GetNonExistingLocator(t *testing.T) {
Expect the second locator in volume 2 to be unaffected.
*/
func TestTrashWorkerIntegration_LocatorInVolume1(t *testing.T) {
Expect the second locator in volume 2 to be unaffected.
*/
func TestTrashWorkerIntegration_LocatorInVolume1(t *testing.T) {
-
neverDelete = fals
e
+
theConfig.EnableDelete = tru
e
testData := TrashWorkerTestData{
Locator1: TestHash,
Block1: TestBlock,
testData := TrashWorkerTestData{
Locator1: TestHash,
Block1: TestBlock,
@@
-75,7
+76,7
@@
func TestTrashWorkerIntegration_LocatorInVolume1(t *testing.T) {
Expect the first locator in volume 1 to be unaffected.
*/
func TestTrashWorkerIntegration_LocatorInVolume2(t *testing.T) {
Expect the first locator in volume 1 to be unaffected.
*/
func TestTrashWorkerIntegration_LocatorInVolume2(t *testing.T) {
-
neverDelete = fals
e
+
theConfig.EnableDelete = tru
e
testData := TrashWorkerTestData{
Locator1: TestHash,
Block1: TestBlock,
testData := TrashWorkerTestData{
Locator1: TestHash,
Block1: TestBlock,
@@
-97,7
+98,7
@@
func TestTrashWorkerIntegration_LocatorInVolume2(t *testing.T) {
Expect locator to be deleted from both volumes.
*/
func TestTrashWorkerIntegration_LocatorInBothVolumes(t *testing.T) {
Expect locator to be deleted from both volumes.
*/
func TestTrashWorkerIntegration_LocatorInBothVolumes(t *testing.T) {
-
neverDelete = fals
e
+
theConfig.EnableDelete = tru
e
testData := TrashWorkerTestData{
Locator1: TestHash,
Block1: TestBlock,
testData := TrashWorkerTestData{
Locator1: TestHash,
Block1: TestBlock,
@@
-119,7
+120,7
@@
func TestTrashWorkerIntegration_LocatorInBothVolumes(t *testing.T) {
Delete the second and expect the first to be still around.
*/
func TestTrashWorkerIntegration_MtimeMatchesForLocator1ButNotForLocator2(t *testing.T) {
Delete the second and expect the first to be still around.
*/
func TestTrashWorkerIntegration_MtimeMatchesForLocator1ButNotForLocator2(t *testing.T) {
-
neverDelete = fals
e
+
theConfig.EnableDelete = tru
e
testData := TrashWorkerTestData{
Locator1: TestHash,
Block1: TestBlock,
testData := TrashWorkerTestData{
Locator1: TestHash,
Block1: TestBlock,
@@
-143,7
+144,7
@@
func TestTrashWorkerIntegration_MtimeMatchesForLocator1ButNotForLocator2(t *test
Expect the other unaffected.
*/
func TestTrashWorkerIntegration_TwoDifferentLocatorsInVolume1(t *testing.T) {
Expect the other unaffected.
*/
func TestTrashWorkerIntegration_TwoDifferentLocatorsInVolume1(t *testing.T) {
-
neverDelete = fals
e
+
theConfig.EnableDelete = tru
e
testData := TrashWorkerTestData{
Locator1: TestHash,
Block1: TestBlock,
testData := TrashWorkerTestData{
Locator1: TestHash,
Block1: TestBlock,
@@
-166,7
+167,7
@@
func TestTrashWorkerIntegration_TwoDifferentLocatorsInVolume1(t *testing.T) {
will not be deleted because its Mtime is within the trash life time.
*/
func TestTrashWorkerIntegration_SameLocatorInTwoVolumesWithDefaultTrashLifeTime(t *testing.T) {
will not be deleted because its Mtime is within the trash life time.
*/
func TestTrashWorkerIntegration_SameLocatorInTwoVolumesWithDefaultTrashLifeTime(t *testing.T) {
-
neverDelete = fals
e
+
theConfig.EnableDelete = tru
e
testData := TrashWorkerTestData{
Locator1: TestHash,
Block1: TestBlock,
testData := TrashWorkerTestData{
Locator1: TestHash,
Block1: TestBlock,
@@
-188,11
+189,11
@@
func TestTrashWorkerIntegration_SameLocatorInTwoVolumesWithDefaultTrashLifeTime(
performTrashWorkerTest(testData, t)
}
performTrashWorkerTest(testData, t)
}
-/* Delete a block with matching mtime for locator in both volumes, but
neverDelete is tru
e,
+/* Delete a block with matching mtime for locator in both volumes, but
EnableDelete is fals
e,
so block won't be deleted.
*/
so block won't be deleted.
*/
-func TestTrashWorkerIntegration_
Never
Delete(t *testing.T) {
-
neverDelete = tru
e
+func TestTrashWorkerIntegration_
Disabled
Delete(t *testing.T) {
+
theConfig.EnableDelete = fals
e
testData := TrashWorkerTestData{
Locator1: TestHash,
Block1: TestBlock,
testData := TrashWorkerTestData{
Locator1: TestHash,
Block1: TestBlock,
@@
-219,24
+220,24
@@
func performTrashWorkerTest(testData TrashWorkerTestData, t *testing.T) {
// Put test content
vols := KeepVM.AllWritable()
if testData.CreateData {
// Put test content
vols := KeepVM.AllWritable()
if testData.CreateData {
- vols[0].Put(testData.Locator1, testData.Block1)
- vols[0].Put(testData.Locator1+".meta", []byte("metadata"))
+ vols[0].Put(
context.Background(),
testData.Locator1, testData.Block1)
+ vols[0].Put(
context.Background(),
testData.Locator1+".meta", []byte("metadata"))
if testData.CreateInVolume1 {
if testData.CreateInVolume1 {
- vols[0].Put(testData.Locator2, testData.Block2)
- vols[0].Put(testData.Locator2+".meta", []byte("metadata"))
+ vols[0].Put(
context.Background(),
testData.Locator2, testData.Block2)
+ vols[0].Put(
context.Background(),
testData.Locator2+".meta", []byte("metadata"))
} else {
} else {
- vols[1].Put(testData.Locator2, testData.Block2)
- vols[1].Put(testData.Locator2+".meta", []byte("metadata"))
+ vols[1].Put(
context.Background(),
testData.Locator2, testData.Block2)
+ vols[1].Put(
context.Background(),
testData.Locator2+".meta", []byte("metadata"))
}
}
}
}
- oldBlockTime := time.Now().Add(-
blobSignatureTTL
- time.Minute)
+ oldBlockTime := time.Now().Add(-
theConfig.BlobSignatureTTL.Duration()
- time.Minute)
// Create TrashRequest for the test
trashRequest := TrashRequest{
Locator: testData.DeleteLocator,
// Create TrashRequest for the test
trashRequest := TrashRequest{
Locator: testData.DeleteLocator,
- BlockMtime: oldBlockTime.Unix(),
+ BlockMtime: oldBlockTime.Unix
Nano
(),
}
// Run trash worker and put the trashRequest on trashq
}
// Run trash worker and put the trashRequest on trashq
@@
-290,26
+291,27
@@
func performTrashWorkerTest(testData TrashWorkerTestData, t *testing.T) {
expectEqualWithin(t, time.Second, 0, func() interface{} { return trashq.Status().InProgress })
// Verify Locator1 to be un/deleted as expected
expectEqualWithin(t, time.Second, 0, func() interface{} { return trashq.Status().InProgress })
// Verify Locator1 to be un/deleted as expected
- data, _ := GetBlock(testData.Locator1)
+ buf := make([]byte, BlockSize)
+ size, err := GetBlock(context.Background(), testData.Locator1, buf, nil)
if testData.ExpectLocator1 {
if testData.ExpectLocator1 {
- if
len(data) == 0
{
+ if
size == 0 || err != nil
{
t.Errorf("Expected Locator1 to be still present: %s", testData.Locator1)
}
} else {
t.Errorf("Expected Locator1 to be still present: %s", testData.Locator1)
}
} else {
- if
len(data) > 0
{
+ if
size > 0 || err == nil
{
t.Errorf("Expected Locator1 to be deleted: %s", testData.Locator1)
}
}
// Verify Locator2 to be un/deleted as expected
if testData.Locator1 != testData.Locator2 {
t.Errorf("Expected Locator1 to be deleted: %s", testData.Locator1)
}
}
// Verify Locator2 to be un/deleted as expected
if testData.Locator1 != testData.Locator2 {
-
data, _ = GetBlock(testData.Locator2
)
+
size, err = GetBlock(context.Background(), testData.Locator2, buf, nil
)
if testData.ExpectLocator2 {
if testData.ExpectLocator2 {
- if
len(data) == 0
{
+ if
size == 0 || err != nil
{
t.Errorf("Expected Locator2 to be still present: %s", testData.Locator2)
}
} else {
t.Errorf("Expected Locator2 to be still present: %s", testData.Locator2)
}
} else {
- if
len(data) > 0
{
+ if
size > 0 || err == nil
{
t.Errorf("Expected Locator2 to be deleted: %s", testData.Locator2)
}
}
t.Errorf("Expected Locator2 to be deleted: %s", testData.Locator2)
}
}
@@
-321,7
+323,8
@@
func performTrashWorkerTest(testData TrashWorkerTestData, t *testing.T) {
if testData.DifferentMtimes {
locatorFoundIn := 0
for _, volume := range KeepVM.AllReadable() {
if testData.DifferentMtimes {
locatorFoundIn := 0
for _, volume := range KeepVM.AllReadable() {
- if _, err := volume.Get(testData.Locator1); err == nil {
+ buf := make([]byte, BlockSize)
+ if _, err := volume.Get(context.Background(), testData.Locator1, buf); err == nil {
locatorFoundIn = locatorFoundIn + 1
}
}
locatorFoundIn = locatorFoundIn + 1
}
}