3
3
// found in the LICENSE file.
4
4
5
5
import 'dart:convert' as convert;
6
+ import 'dart:ffi' as ffi;
6
7
import 'dart:io' as io;
7
8
8
9
import 'package:engine_build_configs/src/build_config.dart' ;
@@ -39,6 +40,7 @@ void main() {
39
40
// dryRun should not try to spawn any processes.
40
41
processManager: _fakeProcessManager (),
41
42
),
43
+ abi: ffi.Abi .linuxX64,
42
44
engineSrcDir: engine.srcDir,
43
45
task: generator,
44
46
dryRun: true ,
@@ -65,6 +67,7 @@ void main() {
65
67
// dryRun should not try to spawn any processes.
66
68
processManager: _fakeProcessManager (),
67
69
),
70
+ abi: ffi.Abi .linuxX64,
68
71
engineSrcDir: engine.srcDir,
69
72
test: test,
70
73
dryRun: true ,
@@ -93,6 +96,7 @@ void main() {
93
96
// dryRun should not try to spawn any processes.
94
97
processManager: _fakeProcessManager (),
95
98
),
99
+ abi: ffi.Abi .linuxX64,
96
100
engineSrcDir: engine.srcDir,
97
101
build: targetBuild,
98
102
dryRun: true ,
@@ -154,6 +158,7 @@ void main() {
154
158
// dryRun should not try to spawn any processes.
155
159
processManager: _fakeProcessManager (),
156
160
),
161
+ abi: ffi.Abi .linuxX64,
157
162
engineSrcDir: engine.srcDir,
158
163
build: targetBuild,
159
164
extraGnArgs: < String > ['--extra-gn-arg' ],
@@ -193,6 +198,7 @@ void main() {
193
198
// dryRun should not try to spawn any processes.
194
199
processManager: _fakeProcessManager (),
195
200
),
201
+ abi: ffi.Abi .linuxX64,
196
202
engineSrcDir: engine.srcDir,
197
203
build: targetBuild,
198
204
extraGnArgs: < String > ['--goma' ],
@@ -218,10 +224,9 @@ void main() {
218
224
final GlobalBuildRunner buildRunner = GlobalBuildRunner (
219
225
platform: FakePlatform (operatingSystem: Platform .linux),
220
226
processRunner: ProcessRunner (
221
- processManager: _fakeProcessManager (
222
- unameResult: io.ProcessResult (1 , 0 , 'arm64' , '' ),
223
- ),
227
+ processManager: _fakeProcessManager (),
224
228
),
229
+ abi: ffi.Abi .linuxX64,
225
230
engineSrcDir: engine.srcDir,
226
231
build: targetBuild,
227
232
extraGnArgs: < String > ['--rbe' ],
@@ -263,6 +268,7 @@ void main() {
263
268
// dryRun should not try to spawn any processes.
264
269
processManager: _fakeProcessManager (),
265
270
),
271
+ abi: ffi.Abi .linuxX64,
266
272
engineSrcDir: engine.srcDir,
267
273
build: targetBuild,
268
274
runGn: false ,
@@ -297,6 +303,7 @@ void main() {
297
303
// dryRun should not try to spawn any processes.
298
304
processManager: _fakeProcessManager (),
299
305
),
306
+ abi: ffi.Abi .linuxX64,
300
307
engineSrcDir: engine.srcDir,
301
308
build: targetBuild,
302
309
runNinja: false ,
@@ -338,6 +345,7 @@ void main() {
338
345
// dryRun should not try to spawn any processes.
339
346
processManager: _fakeProcessManager (),
340
347
),
348
+ abi: ffi.Abi .linuxX64,
341
349
engineSrcDir: engine.srcDir,
342
350
build: targetBuild,
343
351
runGenerators: false ,
@@ -381,6 +389,7 @@ void main() {
381
389
// dryRun should not try to spawn any processes.
382
390
processManager: _fakeProcessManager (),
383
391
),
392
+ abi: ffi.Abi .linuxX64,
384
393
engineSrcDir: engine.srcDir,
385
394
build: targetBuild,
386
395
runTests: false ,
@@ -409,10 +418,9 @@ void main() {
409
418
final GlobalBuildRunner buildRunner = GlobalBuildRunner (
410
419
platform: FakePlatform (operatingSystem: Platform .linux),
411
420
processRunner: ProcessRunner (
412
- processManager: _fakeProcessManager (
413
- unameResult: io.ProcessResult (1 , 0 , 'arm64' , '' ),
414
- ),
421
+ processManager: _fakeProcessManager (),
415
422
),
423
+ abi: ffi.Abi .linuxX64,
416
424
engineSrcDir: engine.srcDir,
417
425
build: targetBuild,
418
426
extraGnArgs: < String > ['--no-lto' , '--no-goma' , '--rbe' ],
@@ -448,6 +456,7 @@ void main() {
448
456
// dryRun should not try to spawn any processes.
449
457
processManager: _fakeProcessManager (),
450
458
),
459
+ abi: ffi.Abi .linuxX64,
451
460
engineSrcDir: engine.srcDir,
452
461
build: targetBuild,
453
462
dryRun: true ,
@@ -469,6 +478,7 @@ void main() {
469
478
gnResult: io.ProcessResult (1 , 1 , '' , '' ),
470
479
),
471
480
),
481
+ abi: ffi.Abi .linuxX64,
472
482
engineSrcDir: engine.srcDir,
473
483
build: targetBuild,
474
484
);
@@ -495,6 +505,7 @@ void main() {
495
505
ninjaResult: io.ProcessResult (1 , 1 , '' , '' ),
496
506
),
497
507
),
508
+ abi: ffi.Abi .linuxX64,
498
509
engineSrcDir: engine.srcDir,
499
510
build: targetBuild,
500
511
);
@@ -518,10 +529,10 @@ void main() {
518
529
platform: FakePlatform (operatingSystem: Platform .linux),
519
530
processRunner: ProcessRunner (
520
531
processManager: _fakeProcessManager (
521
- unameResult: io.ProcessResult (1 , 0 , 'arm64' , '' ),
522
532
bootstrapResult: io.ProcessResult (1 , 1 , '' , '' ),
523
533
),
524
534
),
535
+ abi: ffi.Abi .linuxX64,
525
536
engineSrcDir: engine.srcDir,
526
537
build: targetBuild,
527
538
extraGnArgs: < String > ['--rbe' ],
@@ -547,7 +558,6 @@ void main() {
547
558
platform: FakePlatform (operatingSystem: Platform .linux),
548
559
processRunner: ProcessRunner (
549
560
processManager: _fakeProcessManager (
550
- unameResult: io.ProcessResult (1 , 0 , 'arm64' , '' ),
551
561
canRun: (Object ? exe, {String ? workingDirectory}) {
552
562
if (exe is String ? && exe != null && exe.endsWith ('bootstrap' )) {
553
563
return false ;
@@ -556,6 +566,7 @@ void main() {
556
566
},
557
567
),
558
568
),
569
+ abi: ffi.Abi .linuxX64,
559
570
engineSrcDir: engine.srcDir,
560
571
build: targetBuild,
561
572
extraGnArgs: < String > ['--rbe' ],
@@ -568,10 +579,31 @@ void main() {
568
579
569
580
expect (events[2 ] is RunnerError , isTrue);
570
581
});
582
+
583
+ test ('GlobalBuildRunner throws a StateError on an unsupported host cpu' , () async {
584
+ final GlobalBuild targetBuild = buildConfig.builds[0 ];
585
+ final GlobalBuildRunner buildRunner = GlobalBuildRunner (
586
+ platform: FakePlatform (operatingSystem: Platform .linux),
587
+ processRunner: ProcessRunner (
588
+ processManager: _fakeProcessManager (),
589
+ ),
590
+ abi: ffi.Abi .linuxRiscv32,
591
+ engineSrcDir: engine.srcDir,
592
+ build: targetBuild,
593
+ extraGnArgs: < String > ['--rbe' ],
594
+ );
595
+
596
+ bool caughtError = false ;
597
+ try {
598
+ await buildRunner.run ((RunnerEvent event) {});
599
+ } on StateError catch (_) {
600
+ caughtError = true ;
601
+ }
602
+ expect (caughtError, isTrue);
603
+ });
571
604
}
572
605
573
606
FakeProcessManager _fakeProcessManager ({
574
- io.ProcessResult ? unameResult,
575
607
io.ProcessResult ? bootstrapResult,
576
608
io.ProcessResult ? gnResult,
577
609
io.ProcessResult ? ninjaResult,
@@ -587,7 +619,6 @@ FakeProcessManager _fakeProcessManager({
587
619
return FakeProcessManager (
588
620
canRun: canRun ?? (Object ? exe, {String ? workingDirectory}) => true ,
589
621
onRun: (List <String > cmd) => switch (cmd) {
590
- ['uname' , ...] => unameResult ?? success,
591
622
_ => failUnknown ? io.ProcessResult (1 , 1 , '' , '' ) : success,
592
623
},
593
624
onStart: (List <String > cmd) => switch (cmd) {
0 commit comments