| OLD | NEW |
| 1 package filediffstore | 1 package filediffstore |
| 2 | 2 |
| 3 import ( | 3 import ( |
| 4 "fmt" | 4 "fmt" |
| 5 "os" | 5 "os" |
| 6 "os/exec" | 6 "os/exec" |
| 7 "path/filepath" | 7 "path/filepath" |
| 8 "runtime" | 8 "runtime" |
| 9 "testing" | 9 "testing" |
| 10 "time" | 10 "time" |
| 11 | 11 |
| 12 assert "github.com/stretchr/testify/require" | 12 assert "github.com/stretchr/testify/require" |
| 13 "go.skia.org/infra/go/fileutil" |
| 13 "go.skia.org/infra/go/testutils" | 14 "go.skia.org/infra/go/testutils" |
| 14 "go.skia.org/infra/golden/go/diff" | 15 "go.skia.org/infra/golden/go/diff" |
| 15 ) | 16 ) |
| 16 | 17 |
| 17 const ( | 18 const ( |
| 18 TESTDATA_DIR = "testdata" | 19 TESTDATA_DIR = "testdata" |
| 19 MASSIVE_TESTDATA_DIR = "concur-testata" | 20 MASSIVE_TESTDATA_DIR = "concur-testata" |
| 20 TEST_DIGEST1 = "11069776588985027208" | 21 TEST_DIGEST1 = "11069776588985027208" |
| 21 TEST_DIGEST2 = "5024150605949408692" | 22 TEST_DIGEST2 = "5024150605949408692" |
| 22 TEST_DIGEST3 = "10552995703607727960" | 23 TEST_DIGEST3 = "10552995703607727960" |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 assert.Equal(t, relExpectedDiffMetrics1_2, diffMetrics) | 161 assert.Equal(t, relExpectedDiffMetrics1_2, diffMetrics) |
| 161 } | 162 } |
| 162 | 163 |
| 163 func assertFileExists(filePath string, t *testing.T) { | 164 func assertFileExists(filePath string, t *testing.T) { |
| 164 if _, err := os.Stat(filePath); err != nil { | 165 if _, err := os.Stat(filePath); err != nil { |
| 165 _, _, line, _ := runtime.Caller(1) | 166 _, _, line, _ := runtime.Caller(1) |
| 166 t.Fatalf("File %s does not exist: Called from line: %d", filePat
h, line) | 167 t.Fatalf("File %s does not exist: Called from line: %d", filePat
h, line) |
| 167 } | 168 } |
| 168 } | 169 } |
| 169 | 170 |
| 171 func assertFileNotExists(filePath string, t *testing.T) { |
| 172 _, err := os.Stat(filePath) |
| 173 assert.NotNil(t, err) |
| 174 assert.True(t, os.IsNotExist(err)) |
| 175 } |
| 176 |
| 170 func TestAbsPath(t *testing.T) { | 177 func TestAbsPath(t *testing.T) { |
| 171 fds := getTestFileDiffStore(t, TESTDATA_DIR, true) | 178 fds := getTestFileDiffStore(t, TESTDATA_DIR, true) |
| 172 | 179 |
| 173 digestToPaths := fds.AbsPath([]string{TEST_DIGEST1, TEST_DIGEST2}) | 180 digestToPaths := fds.AbsPath([]string{TEST_DIGEST1, TEST_DIGEST2}) |
| 174 assert.Equal(t, 2, len(digestToPaths)) | 181 assert.Equal(t, 2, len(digestToPaths)) |
| 175 assert.Equal(t, filepath.Join(fds.localImgDir, fmt.Sprintf("%s.%s", TEST
_DIGEST1, IMG_EXTENSION)), digestToPaths[TEST_DIGEST1]) | 182 assert.Equal(t, filepath.Join(fds.localImgDir, fmt.Sprintf("%s.%s", TEST
_DIGEST1, IMG_EXTENSION)), digestToPaths[TEST_DIGEST1]) |
| 176 assert.Equal(t, filepath.Join(fds.localImgDir, fmt.Sprintf("%s.%s", TEST
_DIGEST2, IMG_EXTENSION)), digestToPaths[TEST_DIGEST2]) | 183 assert.Equal(t, filepath.Join(fds.localImgDir, fmt.Sprintf("%s.%s", TEST
_DIGEST2, IMG_EXTENSION)), digestToPaths[TEST_DIGEST2]) |
| 177 | 184 |
| 178 digestToPaths = fds.AbsPath([]string{}) | 185 digestToPaths = fds.AbsPath([]string{}) |
| 179 assert.Equal(t, 0, len(digestToPaths)) | 186 assert.Equal(t, 0, len(digestToPaths)) |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 347 assert.Equal(t, expectedDiffMetrics1_2, diffMetricsMap1[TEST_DIGEST2]) | 354 assert.Equal(t, expectedDiffMetrics1_2, diffMetricsMap1[TEST_DIGEST2]) |
| 348 assert.Equal(t, int64(0), downloadSuccessCount.Count()) | 355 assert.Equal(t, int64(0), downloadSuccessCount.Count()) |
| 349 assert.Equal(t, int64(0), downloadFailureCount.Count()) | 356 assert.Equal(t, int64(0), downloadFailureCount.Count()) |
| 350 | 357 |
| 351 // Use same instance to call AbsPath. | 358 // Use same instance to call AbsPath. |
| 352 digestToPaths := fds.AbsPath([]string{TEST_DIGEST1, TEST_DIGEST2}) | 359 digestToPaths := fds.AbsPath([]string{TEST_DIGEST1, TEST_DIGEST2}) |
| 353 assert.Equal(t, 2, len(digestToPaths)) | 360 assert.Equal(t, 2, len(digestToPaths)) |
| 354 assert.Equal(t, filepath.Join(fds.localImgDir, fmt.Sprintf("%s.%s", TEST
_DIGEST1, IMG_EXTENSION)), digestToPaths[TEST_DIGEST1]) | 361 assert.Equal(t, filepath.Join(fds.localImgDir, fmt.Sprintf("%s.%s", TEST
_DIGEST1, IMG_EXTENSION)), digestToPaths[TEST_DIGEST1]) |
| 355 assert.Equal(t, filepath.Join(fds.localImgDir, fmt.Sprintf("%s.%s", TEST
_DIGEST2, IMG_EXTENSION)), digestToPaths[TEST_DIGEST2]) | 362 assert.Equal(t, filepath.Join(fds.localImgDir, fmt.Sprintf("%s.%s", TEST
_DIGEST2, IMG_EXTENSION)), digestToPaths[TEST_DIGEST2]) |
| 356 } | 363 } |
| 364 |
| 365 func TestPurgeDigests(t *testing.T) { |
| 366 fds := getTestFileDiffStore(t, TESTDATA_DIR, true) |
| 367 _, err := fds.Get(TEST_DIGEST1, []string{TEST_DIGEST2, TEST_DIGEST3}) |
| 368 assert.Nil(t, err) |
| 369 _, err = fds.Get(TEST_DIGEST2, []string{TEST_DIGEST1, TEST_DIGEST3}) |
| 370 assert.Nil(t, err) |
| 371 |
| 372 d_12 := getDiffBasename(TEST_DIGEST1, TEST_DIGEST2) |
| 373 d_13 := getDiffBasename(TEST_DIGEST1, TEST_DIGEST3) |
| 374 d_23 := getDiffBasename(TEST_DIGEST2, TEST_DIGEST3) |
| 375 assertFileExists(fds.getDiffMetricPath(d_12), t) |
| 376 assertFileExists(fds.getDiffMetricPath(d_13), t) |
| 377 assertFileExists(fds.getDiffMetricPath(d_23), t) |
| 378 |
| 379 assert.Nil(t, fds.PurgeDigests([]string{TEST_DIGEST1}, false)) |
| 380 // Removed from image cache |
| 381 assertFileNotExists(fileutil.TwoLevelRadixPath(fds.localImgDir, fds.getI
mageBaseName(TEST_DIGEST1)), t) |
| 382 assertFileExists(fileutil.TwoLevelRadixPath(fds.localImgDir, fds.getImag
eBaseName(TEST_DIGEST2)), t) |
| 383 assertFileExists(fileutil.TwoLevelRadixPath(fds.localImgDir, fds.getImag
eBaseName(TEST_DIGEST3)), t) |
| 384 |
| 385 // Removed from diffMetrics caches |
| 386 assertFileNotExists(fds.getDiffMetricPath(d_12), t) |
| 387 assertFileNotExists(fds.getDiffMetricPath(d_13), t) |
| 388 assertFileExists(fds.getDiffMetricPath(d_23), t) |
| 389 _, ok := fds.diffCache.Get(d_12) |
| 390 assert.False(t, ok) |
| 391 _, ok = fds.diffCache.Get(d_13) |
| 392 assert.False(t, ok) |
| 393 _, ok = fds.diffCache.Get(d_23) |
| 394 assert.True(t, ok) |
| 395 |
| 396 // Removed from cache |
| 397 _, ok = fds.imageCache.Get(TEST_DIGEST1) |
| 398 assert.False(t, ok) |
| 399 _, ok = fds.imageCache.Get(TEST_DIGEST2) |
| 400 assert.True(t, ok) |
| 401 _, ok = fds.imageCache.Get(TEST_DIGEST3) |
| 402 assert.True(t, ok) |
| 403 } |
| OLD | NEW |