Skip to content

Commit 68bcf1b

Browse files
devoncarewcommit-bot@chromium.org
authored andcommitted
[dartdev] add --enable-experiment support to 'dart test'
Bug: #42339 Change-Id: Ic50493b1e9af5ae626358bee1c0c145f58bb7c2c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153323 Auto-Submit: Devon Carew <[email protected]> Commit-Queue: Jaime Wren <[email protected]> Reviewed-by: Jaime Wren <[email protected]>
1 parent 34ad5a5 commit 68bcf1b

File tree

2 files changed

+32
-3
lines changed

2 files changed

+32
-3
lines changed

pkg/dartdev/lib/src/commands/test.dart

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'dart:io';
88
import 'package:args/args.dart';
99

1010
import '../core.dart';
11+
import '../experiments.dart';
1112
import '../sdk.dart';
1213

1314
class 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

pkg/dartdev/test/commands/test_test.dart

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

0 commit comments

Comments
 (0)