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