New syncing script sometimes schedules a build request on a wrong builder
[WebKit.git] / Websites / perf.webkit.org / server-tests / resources / mock-data.js
1 require('../../tools/js/v3-models.js');
2
3 var crypto = require('crypto');
4
5 MockData = {
6     resetV3Models: function ()
7     {
8         AnalysisTask._fetchAllPromise = null;
9         AnalysisTask.clearStaticMap();
10         BuildRequest.clearStaticMap();
11         CommitLog.clearStaticMap();
12         Metric.clearStaticMap();
13         Platform.clearStaticMap();
14         Repository.clearStaticMap();
15         RootSet.clearStaticMap();
16         Test.clearStaticMap();
17         TestGroup.clearStaticMap();
18     },
19     addMockData: function (db, statusList)
20     {
21         if (!statusList)
22             statusList = ['pending', 'pending', 'pending', 'pending'];
23         return Promise.all([
24             db.insert('build_triggerables', {id: 1, name: 'build-webkit'}),
25             db.insert('build_slaves', {id: 2, name: 'sync-slave', password_hash: crypto.createHash('sha256').update('password').digest('hex')}),
26             db.insert('repositories', {id: 9, name: 'OS X'}),
27             db.insert('repositories', {id: 11, name: 'WebKit'}),
28             db.insert('commits', {id: 87832, repository: 9, revision: '10.11 15A284'}),
29             db.insert('commits', {id: 93116, repository: 11, revision: '191622', time: (new Date(1445945816878)).toISOString()}),
30             db.insert('commits', {id: 96336, repository: 11, revision: '192736', time: (new Date(1448225325650)).toISOString()}),
31             db.insert('platforms', {id: 65, name: 'some platform'}),
32             db.insert('tests', {id: 200, name: 'some test'}),
33             db.insert('test_metrics', {id: 300, test: 200, name: 'some metric'}),
34             db.insert('test_configurations', {id: 301, metric: 300, platform: 65, type: 'current'}),
35             db.insert('root_sets', {id: 401}),
36             db.insert('roots', {set: 401, commit: 87832}),
37             db.insert('roots', {set: 401, commit: 93116}),
38             db.insert('root_sets', {id: 402}),
39             db.insert('roots', {set: 402, commit: 87832}),
40             db.insert('roots', {set: 402, commit: 96336}),
41             db.insert('analysis_tasks', {id: 500, platform: 65, metric: 300, name: 'some task'}),
42             db.insert('analysis_test_groups', {id: 600, task: 500, name: 'some test group'}),
43             db.insert('build_requests', {id: 700, status: statusList[0], triggerable: 1, platform: 65, test: 200, group: 600, order: 0, root_set: 401}),
44             db.insert('build_requests', {id: 701, status: statusList[1], triggerable: 1, platform: 65, test: 200, group: 600, order: 1, root_set: 402}),
45             db.insert('build_requests', {id: 702, status: statusList[2], triggerable: 1, platform: 65, test: 200, group: 600, order: 2, root_set: 401}),
46             db.insert('build_requests', {id: 703, status: statusList[3], triggerable: 1, platform: 65, test: 200, group: 600, order: 3, root_set: 402}),
47         ]);
48     },
49     addAnotherMockTestGroup: function (db, statusList, author)
50     {
51         if (!statusList)
52             statusList = ['pending', 'pending', 'pending', 'pending'];
53         return Promise.all([
54             db.insert('analysis_test_groups', {id: 601, task: 500, name: 'another test group', author: author}),
55             db.insert('build_requests', {id: 713, status: statusList[3], triggerable: 1, platform: 65, test: 200, group: 601, order: 3, root_set: 402}),
56             db.insert('build_requests', {id: 710, status: statusList[0], triggerable: 1, platform: 65, test: 200, group: 601, order: 0, root_set: 401}),
57             db.insert('build_requests', {id: 712, status: statusList[2], triggerable: 1, platform: 65, test: 200, group: 601, order: 2, root_set: 401}),
58             db.insert('build_requests', {id: 711, status: statusList[1], triggerable: 1, platform: 65, test: 200, group: 601, order: 1, root_set: 402}),
59         ]);
60     },
61     mockTestSyncConfigWithSingleBuilder: function ()
62     {
63         return {
64             'triggerableName': 'build-webkit',
65             'lookbackCount': 2,
66             'configurations': [
67                 {
68                     'platform': 'some platform',
69                     'test': ['some test'],
70                     'builder': 'some-builder-1',
71                     'arguments': {
72                         'wk': {'root': 'WebKit'},
73                         'os': {'root': 'OS X'},
74                     },
75                     'buildRequestArgument': 'build-request-id',
76                 }
77             ]
78         }
79     },
80     mockTestSyncConfigWithTwoBuilders: function ()
81     {
82         return {
83             'triggerableName': 'build-webkit',
84             'lookbackCount': 2,
85             'configurations': [
86                 {
87                     'platform': 'some platform',
88                     'test': ['some test'],
89                     'builder': 'some-builder-1',
90                     'arguments': {
91                         'wk': {'root': 'WebKit'},
92                         'os': {'root': 'OS X'},
93                     },
94                     'buildRequestArgument': 'build-request-id',
95                 },
96                 {
97                     'platform': 'some platform',
98                     'test': ['some test'],
99                     'builder': 'some builder 2',
100                     'arguments': {
101                         'wk': {'root': 'WebKit'},
102                         'os': {'root': 'OS X'},
103                     },
104                     'buildRequestArgument': 'build-request-id',
105                 }
106             ]
107         }
108     },
109     pendingBuild(options)
110     {
111         options = options || {};
112         return {
113             'builderName': options.builder || 'some-builder-1',
114             'builds': [],
115             'properties': [
116                 ['wk', options.webkitRevision || '191622'],
117                 ['os', options.osxRevision || '10.11 15A284'],
118                 ['build-request-id', (options.buildRequestId || 702).toString(), ]
119             ],
120             'source': {
121                 'branch': '',
122                 'changes': [],
123                 'codebase': 'WebKit',
124                 'hasPatch': false,
125                 'project': '',
126                 'repository': '',
127                 'revision': ''
128             },
129         };
130     },
131     runningBuild(options)
132     {
133         options = options || {};
134         return {
135             'builderName': options.builder || 'some-builder-1',
136             'builds': [],
137             'properties': [
138                 ['wk', options.webkitRevision || '192736'],
139                 ['os', options.osxRevision || '10.11 15A284'],
140                 ['build-request-id', (options.buildRequestId || 701).toString(), ]
141             ],
142             'currentStep': {},
143             'eta': 721,
144             'number': 124,
145             'source': {
146                 'branch': '',
147                 'changes': [],
148                 'codebase': 'WebKit',
149                 'hasPatch': false,
150                 'project': '',
151                 'repository': '',
152                 'revision': ''
153             },
154         };
155     },
156     finishedBuild(options)
157     {
158         options = options || {};
159         return {
160             'builderName': options.builder || 'some-builder-1',
161             'builds': [],
162             'properties': [
163                 ['wk', options.webkitRevision || '191622'],
164                 ['os', options.osxRevision || '10.11 15A284'],
165                 ['build-request-id', (options.buildRequestId || 700).toString(), ]
166             ],
167             'currentStep': null,
168             'eta': null,
169             'number': 123,
170             'source': {
171                 'branch': '',
172                 'changes': [],
173                 'codebase': 'WebKit',
174                 'hasPatch': false,
175                 'project': '',
176                 'repository': '',
177                 'revision': ''
178             },
179             'times': [0, 1],
180         };
181     }
182 }
183
184 if (typeof module != 'undefined')
185     module.exports = MockData;