File tree Expand file tree Collapse file tree 2 files changed +32
-3
lines changed Expand file tree Collapse file tree 2 files changed +32
-3
lines changed Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ import 'dart:io';
88import 'package:args/args.dart' ;
99
1010import '../core.dart' ;
11+ import '../experiments.dart' ;
1112import '../sdk.dart' ;
1213
1314class TestCommand extends DartdevCommand <int > {
@@ -42,9 +43,15 @@ class TestCommand extends DartdevCommand<int> {
4243 @override
4344 FutureOr <int > run () async {
4445 final command = sdk.pub;
45- final args = argResults.arguments.toList ();
46-
47- args.insertAll (0 , ['run' , 'test' ]);
46+ final testArgs = argResults.arguments.toList ();
47+
48+ final args = [
49+ 'run' ,
50+ if (wereExperimentsSpecified)
51+ '--$experimentFlagName =${specifiedExperiments .join (',' )}' ,
52+ 'test' ,
53+ ...testArgs,
54+ ];
4855
4956 log.trace ('$command ${args .join (' ' )}' );
5057
Original file line number Diff line number Diff line change @@ -65,4 +65,26 @@ void main() {
6565 expect (result.stdout, contains ('All tests passed!' ));
6666 expect (result.stderr, isEmpty);
6767 }, skip: 'https://github.com/dart-lang/sdk/issues/40854' );
68+
69+ test ('--enable-experiment' , () {
70+ p = project (mainSrc: 'int get foo => 1;\n ' );
71+ p.file ('test/foo_test.dart' , '''
72+ import 'package:test/test.dart';
73+
74+ void main() {
75+ test('', () {
76+ int a;
77+ a = null;
78+ print('a is \$ a.');
79+ });
80+ }
81+ ''' );
82+
83+ var result = p.runSync ('pub' , ['get' , '--offline' ]);
84+ expect (result.exitCode, 0 );
85+
86+ result = p.runSync ('--enable-experiment=non-nullable' ,
87+ ['test' , '--no-color' , '--reporter' , 'expanded' ]);
88+ expect (result.exitCode, 1 );
89+ }, skip: 'https://github.com/dart-lang/sdk/issues/40854' );
6890}
You can’t perform that action at this time.
0 commit comments