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()) |
-} |