Index: golden/go/filediffstore/filediffstore_test.go |
diff --git a/golden/go/filediffstore/filediffstore_test.go b/golden/go/filediffstore/filediffstore_test.go |
index 20fc935fb31f84a08530d54de92b060d1f200a68..4b6fa89bcf4e0229ac95e24ee07ef3a15832f1dc 100644 |
--- a/golden/go/filediffstore/filediffstore_test.go |
+++ b/golden/go/filediffstore/filediffstore_test.go |
@@ -10,6 +10,7 @@ import ( |
"time" |
assert "github.com/stretchr/testify/require" |
+ "go.skia.org/infra/go/fileutil" |
"go.skia.org/infra/go/testutils" |
"go.skia.org/infra/golden/go/diff" |
) |
@@ -167,6 +168,12 @@ func assertFileExists(filePath string, t *testing.T) { |
} |
} |
+func assertFileNotExists(filePath string, t *testing.T) { |
+ _, err := os.Stat(filePath) |
+ assert.NotNil(t, err) |
+ assert.True(t, os.IsNotExist(err)) |
+} |
+ |
func TestAbsPath(t *testing.T) { |
fds := getTestFileDiffStore(t, TESTDATA_DIR, true) |
@@ -354,3 +361,43 @@ func TestReuseSameInstance(t *testing.T) { |
assert.Equal(t, filepath.Join(fds.localImgDir, fmt.Sprintf("%s.%s", TEST_DIGEST1, IMG_EXTENSION)), digestToPaths[TEST_DIGEST1]) |
assert.Equal(t, filepath.Join(fds.localImgDir, fmt.Sprintf("%s.%s", TEST_DIGEST2, IMG_EXTENSION)), digestToPaths[TEST_DIGEST2]) |
} |
+ |
+func TestPurgeDigests(t *testing.T) { |
+ fds := getTestFileDiffStore(t, TESTDATA_DIR, true) |
+ _, err := fds.Get(TEST_DIGEST1, []string{TEST_DIGEST2, TEST_DIGEST3}) |
+ assert.Nil(t, err) |
+ _, err = fds.Get(TEST_DIGEST2, []string{TEST_DIGEST1, TEST_DIGEST3}) |
+ assert.Nil(t, err) |
+ |
+ d_12 := getDiffBasename(TEST_DIGEST1, TEST_DIGEST2) |
+ d_13 := getDiffBasename(TEST_DIGEST1, TEST_DIGEST3) |
+ d_23 := getDiffBasename(TEST_DIGEST2, TEST_DIGEST3) |
+ assertFileExists(fds.getDiffMetricPath(d_12), t) |
+ assertFileExists(fds.getDiffMetricPath(d_13), t) |
+ assertFileExists(fds.getDiffMetricPath(d_23), t) |
+ |
+ assert.Nil(t, fds.PurgeDigests([]string{TEST_DIGEST1}, false)) |
+ // Removed from image cache |
+ assertFileNotExists(fileutil.TwoLevelRadixPath(fds.localImgDir, fds.getImageBaseName(TEST_DIGEST1)), t) |
+ assertFileExists(fileutil.TwoLevelRadixPath(fds.localImgDir, fds.getImageBaseName(TEST_DIGEST2)), t) |
+ assertFileExists(fileutil.TwoLevelRadixPath(fds.localImgDir, fds.getImageBaseName(TEST_DIGEST3)), t) |
+ |
+ // Removed from diffMetrics caches |
+ assertFileNotExists(fds.getDiffMetricPath(d_12), t) |
+ assertFileNotExists(fds.getDiffMetricPath(d_13), t) |
+ assertFileExists(fds.getDiffMetricPath(d_23), t) |
+ _, ok := fds.diffCache.Get(d_12) |
+ assert.False(t, ok) |
+ _, ok = fds.diffCache.Get(d_13) |
+ assert.False(t, ok) |
+ _, ok = fds.diffCache.Get(d_23) |
+ assert.True(t, ok) |
+ |
+ // Removed from cache |
+ _, ok = fds.imageCache.Get(TEST_DIGEST1) |
+ assert.False(t, ok) |
+ _, ok = fds.imageCache.Get(TEST_DIGEST2) |
+ assert.True(t, ok) |
+ _, ok = fds.imageCache.Get(TEST_DIGEST3) |
+ assert.True(t, ok) |
+} |