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

Unified Diff: build_scheduler/go/db/db_test.go

Issue 2246933002: Add Task DB implementation using a local BoltDB. (Closed) Base URL: https://skia.googlesource.com/buildbot@taskdb-impl-track
Patch Set: Fix bad merge. 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 side-by-side diff with in-line comments
Download patch
Index: build_scheduler/go/db/db_test.go
diff --git a/build_scheduler/go/db/db_test.go b/build_scheduler/go/db/db_test.go
deleted file mode 100644
index 40e7605037b5b74a41320a1b21569150b57aed8d..0000000000000000000000000000000000000000
--- a/build_scheduler/go/db/db_test.go
+++ /dev/null
@@ -1,171 +0,0 @@
-package db
-
-import (
- "net/url"
- "testing"
- "time"
-
- assert "github.com/stretchr/testify/require"
-
- "go.skia.org/infra/go/testutils"
-)
-
-func makeTask(ts time.Time, commits []string) *Task {
- return &Task{
- Created: ts,
- Commits: commits,
- Name: "Test-Task",
- }
-}
-
-func testDB(t *testing.T, db DB) {
- defer testutils.AssertCloses(t, db)
-
- _, err := db.GetModifiedTasks("dummy-id")
- assert.True(t, IsUnknownId(err))
-
- id, err := db.StartTrackingModifiedTasks()
- assert.NoError(t, err)
-
- tasks, err := db.GetModifiedTasks(id)
- assert.NoError(t, err)
- assert.Equal(t, 0, len(tasks))
-
- t1 := makeTask(time.Unix(0, 1470674132000000), []string{"a", "b", "c", "d"})
-
- // AssignId should fill in t1.Id.
- assert.Equal(t, "", t1.Id)
- assert.NoError(t, db.AssignId(t1))
- assert.NotEqual(t, "", t1.Id)
- // Ids must be URL-safe.
- assert.Equal(t, url.QueryEscape(t1.Id), t1.Id)
-
- // Task doesn't exist in DB yet.
- noTask, err := db.GetTaskById(t1.Id)
- assert.NoError(t, err)
- assert.Nil(t, noTask)
-
- // Insert the task.
- assert.NoError(t, db.PutTask(t1))
-
- // Task can now be retrieved by Id.
- t1Again, err := db.GetTaskById(t1.Id)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, t1, t1Again)
-
- // Ensure that the task shows up in the modified list.
- tasks, err = db.GetModifiedTasks(id)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{t1}, tasks)
-
- // Ensure that the task shows up in the correct date ranges.
- timeStart := time.Time{}
- t1Before := t1.Created
- t1After := t1Before.Add(1 * time.Millisecond)
- timeEnd := time.Now()
- tasks, err = db.GetTasksFromDateRange(timeStart, t1Before)
- assert.NoError(t, err)
- assert.Equal(t, 0, len(tasks))
- tasks, err = db.GetTasksFromDateRange(t1Before, t1After)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{t1}, tasks)
- tasks, err = db.GetTasksFromDateRange(t1After, timeEnd)
- assert.NoError(t, err)
- assert.Equal(t, 0, len(tasks))
-
- // Insert two more tasks.
- t2 := makeTask(time.Unix(0, 1470674376000000), []string{"e", "f"})
- t3 := makeTask(time.Unix(0, 1470674884000000), []string{"g", "h"})
- assert.NoError(t, db.PutTasks([]*Task{t2, t3}))
-
- // Check that PutTasks assigned Ids.
- assert.NotEqual(t, "", t2.Id)
- assert.NotEqual(t, "", t3.Id)
- // Ids must be URL-safe.
- assert.Equal(t, url.QueryEscape(t2.Id), t2.Id)
- assert.Equal(t, url.QueryEscape(t3.Id), t3.Id)
-
- // Ensure that both tasks show up in the modified list.
- tasks, err = db.GetModifiedTasks(id)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{t2, t3}, tasks)
-
- // Ensure that all tasks show up in the correct time ranges, in sorted order.
- t2Before := t2.Created
- t2After := t2Before.Add(1 * time.Millisecond)
-
- t3Before := t3.Created
- t3After := t3Before.Add(1 * time.Millisecond)
-
- tasks, err = db.GetTasksFromDateRange(timeStart, t1Before)
- assert.NoError(t, err)
- assert.Equal(t, 0, len(tasks))
-
- tasks, err = db.GetTasksFromDateRange(timeStart, t1After)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{t1}, tasks)
-
- tasks, err = db.GetTasksFromDateRange(timeStart, t2Before)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{t1}, tasks)
-
- tasks, err = db.GetTasksFromDateRange(timeStart, t2After)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{t1, t2}, tasks)
-
- tasks, err = db.GetTasksFromDateRange(timeStart, t3Before)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{t1, t2}, tasks)
-
- tasks, err = db.GetTasksFromDateRange(timeStart, t3After)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{t1, t2, t3}, tasks)
-
- tasks, err = db.GetTasksFromDateRange(timeStart, timeEnd)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{t1, t2, t3}, tasks)
-
- tasks, err = db.GetTasksFromDateRange(t1Before, timeEnd)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{t1, t2, t3}, tasks)
-
- tasks, err = db.GetTasksFromDateRange(t1After, timeEnd)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{t2, t3}, tasks)
-
- tasks, err = db.GetTasksFromDateRange(t2Before, timeEnd)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{t2, t3}, tasks)
-
- tasks, err = db.GetTasksFromDateRange(t2After, timeEnd)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{t3}, tasks)
-
- tasks, err = db.GetTasksFromDateRange(t3Before, timeEnd)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{t3}, tasks)
-
- tasks, err = db.GetTasksFromDateRange(t3After, timeEnd)
- assert.NoError(t, err)
- testutils.AssertDeepEqual(t, []*Task{}, tasks)
-}
-
-func testTooManyUsers(t *testing.T, db DB) {
- defer testutils.AssertCloses(t, db)
-
- // Max out the number of modified-tasks users; ensure that we error out.
- for i := 0; i < MAX_MODIFIED_BUILDS_USERS; i++ {
- _, err := db.StartTrackingModifiedTasks()
- assert.NoError(t, err)
- }
- _, err := db.StartTrackingModifiedTasks()
- assert.True(t, IsTooManyUsers(err))
-}
-
-func TestInMemoryDB(t *testing.T) {
- testDB(t, NewInMemoryDB())
-}
-
-func TestInMemoryTooManyUsers(t *testing.T) {
- testTooManyUsers(t, NewInMemoryDB())
-}
« no previous file with comments | « no previous file | build_scheduler/go/db/local_db/local_db.go » ('j') | build_scheduler/go/db/local_db/local_db.go » ('J')

Powered by Google App Engine
This is Rietveld 408576698