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

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

Issue 2296763008: [task scheduler] Move files from build_scheduler/ to task_scheduler/ (Closed) Base URL: https://skia.googlesource.com/buildbot@master
Patch Set: Created 4 years, 3 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 | « build_scheduler/go/db/modified_tasks.go ('k') | build_scheduler/go/db/task.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 package db
2
3 import (
4 "testing"
5 "time"
6
7 assert "github.com/stretchr/testify/require"
8
9 "go.skia.org/infra/go/testutils"
10 )
11
12 func TestModifiedTasks(t *testing.T) {
13 m := ModifiedTasks{}
14
15 _, err := m.GetModifiedTasks("dummy-id")
16 assert.True(t, IsUnknownId(err))
17
18 id, err := m.StartTrackingModifiedTasks()
19 assert.NoError(t, err)
20
21 tasks, err := m.GetModifiedTasks(id)
22 assert.NoError(t, err)
23 assert.Equal(t, 0, len(tasks))
24
25 t1 := makeTask(time.Unix(0, 1470674132000000), []string{"a", "b", "c", " d"})
26 t1.Id = "1"
27
28 // Insert the task.
29 m.TrackModifiedTask(t1)
30
31 // Ensure that the task shows up in the modified list.
32 tasks, err = m.GetModifiedTasks(id)
33 assert.NoError(t, err)
34 testutils.AssertDeepEqual(t, []*Task{t1}, tasks)
35
36 // Insert two more tasks.
37 t2 := makeTask(time.Unix(0, 1470674376000000), []string{"e", "f"})
38 t2.Id = "2"
39 m.TrackModifiedTask(t2)
40 t3 := makeTask(time.Unix(0, 1470674884000000), []string{"g", "h"})
41 t3.Id = "3"
42 m.TrackModifiedTask(t3)
43
44 // Ensure that both tasks show up in the modified list.
45 tasks, err = m.GetModifiedTasks(id)
46 assert.NoError(t, err)
47 testutils.AssertDeepEqual(t, []*Task{t2, t3}, tasks)
48
49 // Check StopTrackingModifiedTasks.
50 m.StopTrackingModifiedTasks(id)
51 _, err = m.GetModifiedTasks(id)
52 assert.True(t, IsUnknownId(err))
53 }
54
55 // Test that if a Task is modified multiple times, it only appears once in the
56 // result of GetModifiedTasks.
57 func TestMultipleModifications(t *testing.T) {
58 m := ModifiedTasks{}
59
60 id, err := m.StartTrackingModifiedTasks()
61 assert.NoError(t, err)
62
63 t1 := makeTask(time.Unix(0, 1470674132000000), []string{"a", "b", "c", " d"})
64 t1.Id = "1"
65
66 // Insert the task.
67 m.TrackModifiedTask(t1)
68
69 // Make several more modifications.
70 t1.Status = TASK_STATUS_RUNNING
71 m.TrackModifiedTask(t1)
72 t1.Status = TASK_STATUS_SUCCESS
73 m.TrackModifiedTask(t1)
74
75 // Ensure that the task shows up only once in the modified list.
76 tasks, err := m.GetModifiedTasks(id)
77 assert.NoError(t, err)
78 testutils.AssertDeepEqual(t, []*Task{t1}, tasks)
79 }
80
81 func TestModifiedTasksTooManyUsers(t *testing.T) {
82 m := ModifiedTasks{}
83
84 var oneId string
85 // Max out the number of modified-tasks users; ensure that we error out.
86 for i := 0; i < MAX_MODIFIED_TASKS_USERS; i++ {
87 id, err := m.StartTrackingModifiedTasks()
88 assert.NoError(t, err)
89 oneId = id
90 }
91 _, err := m.StartTrackingModifiedTasks()
92 assert.True(t, IsTooManyUsers(err))
93
94 m.StopTrackingModifiedTasks(oneId)
95 _, err = m.StartTrackingModifiedTasks()
96 assert.NoError(t, err)
97 }
OLDNEW
« no previous file with comments | « build_scheduler/go/db/modified_tasks.go ('k') | build_scheduler/go/db/task.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698