@@ -182,46 +182,120 @@ class DevelopmentCocoonService implements CocoonService {
182182 required String repo,
183183 required String sha,
184184 }) async {
185- // Extract a number from the SHA if it's a mock SHA to provide varied data.
186- // Format: ..._#_mock_sha
187- final parts = sha.split ('_' );
188- final num = (sha.endsWith ('_mock_sha' ) && parts.length > 2 )
189- ? parts[parts.length - 3 ]
190- : '1' ;
191- final prNum = int .tryParse (num ) ?? 123 ;
192-
193- return CocoonResponse .data (
194- PresubmitGuardResponse (
195- prNum: prNum,
196- checkRunId: 456 ,
197- author: _authors[prNum % _authors.length],
198- guardStatus: switch (num ) {
199- '1' => GuardStatus .succeeded,
200- '2' => GuardStatus .failed,
201- _ => GuardStatus .inProgress,
202- },
203- stages: [
204- PresubmitGuardStage (
205- name: 'Engine' ,
206- createdAt: now.millisecondsSinceEpoch,
207- builds: {
208- 'Mac mac_host_engine $num ' : TaskStatus .failed,
209- 'Mac mac_ios_engine $num ' : TaskStatus .waitingForBackfill,
210- 'Linux linux_android_aot_engine $num ' : TaskStatus .succeeded,
211- },
212- ),
213- PresubmitGuardStage (
214- name: 'Framework' ,
215- createdAt: now.millisecondsSinceEpoch,
216- builds: {
217- 'Linux framework_tests $num ' : TaskStatus .inProgress,
218- 'Mac framework_tests $num ' : TaskStatus .cancelled,
219- 'Linux android framework_tests $num ' : TaskStatus .skipped,
220- 'Windows framework_tests $num ' : TaskStatus .infraFailure,
221- },
222- ),
223- ],
224- ),
185+ if (sha == 'cafe5_1_mock_sha' ) {
186+ return CocoonResponse .data (
187+ PresubmitGuardResponse (
188+ prNum: 123 ,
189+ checkRunId: 456 ,
190+ author: _authors[0 ],
191+ guardStatus: GuardStatus .inProgress,
192+ stages: [
193+ PresubmitGuardStage (
194+ name: 'Engine' ,
195+ createdAt: now.millisecondsSinceEpoch,
196+ builds: {
197+ 'Mac mac_host_engine' : TaskStatus .infraFailure,
198+ 'Mac mac_ios_engine' : TaskStatus .cancelled,
199+ 'Linux linux_android_aot_engine' : TaskStatus .infraFailure,
200+ },
201+ ),
202+ ],
203+ ),
204+ );
205+ } else if (sha == 'face5_2_mock_sha' ) {
206+ return CocoonResponse .data (
207+ PresubmitGuardResponse (
208+ prNum: 123 ,
209+ checkRunId: 789 ,
210+ author: _authors[1 ],
211+ guardStatus: GuardStatus .failed,
212+ stages: [
213+ PresubmitGuardStage (
214+ name: 'Engine' ,
215+ createdAt: now.millisecondsSinceEpoch,
216+ builds: {
217+ 'Mac mac_host_engine' : TaskStatus .succeeded,
218+ 'Mac mac_ios_engine' : TaskStatus .cancelled,
219+ 'Linux linux_android_aot_engine' : TaskStatus .succeeded,
220+ },
221+ ),
222+ PresubmitGuardStage (
223+ name: 'Framework' ,
224+ createdAt: now.millisecondsSinceEpoch,
225+ builds: {
226+ 'Linux framework_tests' : TaskStatus .succeeded,
227+ 'Mac framework_tests' : TaskStatus .failed,
228+ 'Linux android framework_tests' : TaskStatus .skipped,
229+ 'Windows framework_tests' : TaskStatus .failed,
230+ },
231+ ),
232+ ],
233+ ),
234+ );
235+ } else if (sha == 'decaf_3_mock_sha' ) {
236+ return CocoonResponse .data (
237+ PresubmitGuardResponse (
238+ prNum: 123 ,
239+ checkRunId: 1011 ,
240+ author: _authors[2 ],
241+ guardStatus: GuardStatus .failed,
242+ stages: [
243+ PresubmitGuardStage (
244+ name: 'Engine' ,
245+ createdAt: now.millisecondsSinceEpoch,
246+ builds: {
247+ 'Mac mac_host_engine' : TaskStatus .succeeded,
248+ 'Mac mac_ios_engine' : TaskStatus .cancelled,
249+ 'Linux linux_android_aot_engine' : TaskStatus .succeeded,
250+ },
251+ ),
252+ PresubmitGuardStage (
253+ name: 'Framework' ,
254+ createdAt: now.millisecondsSinceEpoch,
255+ builds: {
256+ 'Linux framework_tests' : TaskStatus .succeeded,
257+ 'Mac framework_tests' : TaskStatus .waitingForBackfill,
258+ 'Linux android framework_tests' : TaskStatus .skipped,
259+ 'Windows framework_tests' : TaskStatus .inProgress,
260+ },
261+ ),
262+ ],
263+ ),
264+ );
265+ } else if (sha == 'deafcab_mock_sha' ) {
266+ return CocoonResponse .data (
267+ PresubmitGuardResponse (
268+ prNum: 123 ,
269+ checkRunId: 369 ,
270+ author: _authors[3 ],
271+ guardStatus: GuardStatus .succeeded,
272+ stages: [
273+ PresubmitGuardStage (
274+ name: 'Engine' ,
275+ createdAt: now.millisecondsSinceEpoch,
276+ builds: {
277+ 'Mac mac_host_engine' : TaskStatus .succeeded,
278+ 'Mac mac_ios_engine' : TaskStatus .cancelled,
279+ 'Linux linux_android_aot_engine' : TaskStatus .succeeded,
280+ },
281+ ),
282+ PresubmitGuardStage (
283+ name: 'Framework' ,
284+ createdAt: now.millisecondsSinceEpoch,
285+ builds: {
286+ 'Linux framework_tests' : TaskStatus .succeeded,
287+ 'Mac framework_tests' : TaskStatus .succeeded,
288+ 'Linux android framework_tests' : TaskStatus .skipped,
289+ 'Windows framework_tests' : TaskStatus .succeeded,
290+ },
291+ ),
292+ ],
293+ ),
294+ );
295+ }
296+ return CocoonResponse .error (
297+ 'No presubmit guard data for sha $sha ' ,
298+ statusCode: 404 ,
225299 );
226300 }
227301
@@ -237,14 +311,21 @@ class DevelopmentCocoonService implements CocoonService {
237311 buildName: buildName,
238312 creationTime: now.millisecondsSinceEpoch - 10000 ,
239313 status: 'Succeeded' ,
314+ buildNumber: 12345 ,
240315 summary:
241- '[INFO] Starting task $buildName ...\n [SUCCESS] Dependencies installed.\n [INFO] Running build script...\n [SUCCESS] All tests passed (452/452)' ,
316+ '''
317+ [INFO] Starting task $buildName ...
318+ [SUCCESS] Dependencies installed.
319+ [INFO] Running build script...
320+ [SUCCESS] All tests passed (452/452)
321+ ''' ,
242322 ),
243323 PresubmitCheckResponse (
244324 attemptNumber: 2 ,
245325 buildName: buildName,
246326 creationTime: now.millisecondsSinceEpoch,
247327 status: 'Failed' ,
328+ buildNumber: 67890 ,
248329 summary:
249330 '[INFO] Starting task $buildName ...\n [ERROR] Test failed: Unit Tests' ,
250331 ),
@@ -259,19 +340,24 @@ class DevelopmentCocoonService implements CocoonService {
259340 }) async {
260341 return CocoonResponse .data ([
261342 PresubmitGuardSummary (
262- commitSha: 'decaf_1_mock_sha ' ,
343+ commitSha: 'decaf_3_mock_sha ' ,
263344 creationTime: now.millisecondsSinceEpoch,
264- guardStatus: GuardStatus .succeeded ,
345+ guardStatus: GuardStatus .inProgress ,
265346 ),
266347 PresubmitGuardSummary (
267348 commitSha: 'face5_2_mock_sha' ,
268349 creationTime: now.millisecondsSinceEpoch - 100000 ,
269350 guardStatus: GuardStatus .failed,
270351 ),
271352 PresubmitGuardSummary (
272- commitSha: 'cafe5_3_mock_sha ' ,
353+ commitSha: 'cafe5_1_mock_sha ' ,
273354 creationTime: now.millisecondsSinceEpoch - 200000 ,
274- guardStatus: GuardStatus .inProgress,
355+ guardStatus: GuardStatus .failed,
356+ ),
357+ PresubmitGuardSummary (
358+ commitSha: 'deafcab_mock_sha' ,
359+ creationTime: now.millisecondsSinceEpoch - 300000 ,
360+ guardStatus: GuardStatus .succeeded,
275361 ),
276362 ]);
277363 }
0 commit comments