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

Side by Side Diff: build_scheduler/go/db/cache_test.go

Issue 2226583003: Add build scheduler DB interface, dumb in-memory impl, cache (Closed) Base URL: https://skia.googlesource.com/buildbot@master
Patch Set: Fix import Created 4 years, 4 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
OLDNEW
(Empty)
1 package db
2
3 import (
4 "testing"
5 "time"
6
7 assert "github.com/stretchr/testify/require"
8 "go.skia.org/infra/go/testutils"
9 )
10
11 func testGetBuildsForCommits(t *testing.T, c *BuildCache, b *Build) {
dogben 2016/08/08 19:22:38 Is there any reason to test GetBuildsForCommits fo
borenet 2016/08/08 19:51:18 If ingestion is done correctly, we should never ha
dogben 2016/08/08 20:16:07 Sorry, I meant two builds for the same commit but
borenet 2016/08/09 11:22:55 Oh! Done.
12 for _, commit := range b.Commits {
13 builds, err := c.GetBuildsForCommits([]string{commit})
14 assert.NoError(t, err)
15 testutils.AssertDeepEqual(t, map[string]map[string]*Build{
16 commit: map[string]*Build{
17 b.Id: b,
18 },
19 }, builds)
20 }
21 }
22
23 func TestDBCache(t *testing.T) {
24 db := NewInMemoryDB()
25 defer testutils.AssertCloses(t, db)
26
27 // Pre-load a build into the DB.
28 startTime := time.Now().Add(-30 * time.Minute) // Arbitrary starting poi nt.
29 b1 := makeBuild("build1", startTime, []string{"a", "b", "c", "d"})
30 assert.NoError(t, db.PutBuild(b1))
31
32 // Create the cache. Ensure that the existing build is present.
33 c, err := NewBuildCache(db, time.Hour)
34 assert.NoError(t, err)
35 testGetBuildsForCommits(t, c, b1)
36
37 // Bisect the first build.
38 b2 := makeBuild("build2", startTime.Add(time.Minute), []string{"c", "d"} )
39 b1.Commits = []string{"a", "b"}
40 assert.NoError(t, db.PutBuilds([]*Build{b2, b1}))
41 assert.NoError(t, c.Update())
42
43 // Ensure that b2 (and not b1) shows up for commits "c" and "d".
44 testGetBuildsForCommits(t, c, b1)
45 testGetBuildsForCommits(t, c, b2)
46 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698