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 |