Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(575)

Side by Side Diff: golden/go/filediffstore/filediffstore_test.go

Issue 1401563003: Enable clear/purge for failed digests (Closed) Base URL: https://skia.googlesource.com/buildbot@master
Patch Set: Added unit test to FileDiffStore Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « golden/go/filediffstore/filediffstore.go ('k') | golden/go/mocks/mocks.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « golden/go/filediffstore/filediffstore.go ('k') | golden/go/mocks/mocks.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698