blob: 5cf7a476d9020ddc09dec2da0ac79eeb93170aaa [file] [log] [blame]
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
@TestOn('vm')
library;
import 'package:test/test.dart';
import 'package:test_descriptor/test_descriptor.dart' as d;
import '../io.dart';
final _test = '''
import 'package:test/test.dart';
void main() {
test("success", () {});
}
''';
void main() {
setUpAll(() async {
await precompileTestExecutable();
await d.file('test.dart', _test).create();
});
group('--compiler', () {
test(
'uses the default compiler if none other is specified for the platform',
() async {
var test =
await runTest(['test.dart', '-p', 'chrome,vm', '-c', 'dart2js']);
expect(test.stdout, emitsThrough(contains('[Chrome, Dart2Js]')));
expect(test.stdout, emitsThrough(contains('[VM, Kernel]')));
expect(test.stdout, emitsThrough(contains('+2: All tests passed!')));
await test.shouldExit(0);
});
test('runs all supported compiler and platform combinations', () async {
var test = await runTest(
['test.dart', '-p', 'chrome,vm', '-c', 'dart2js,kernel,source']);
expect(test.stdout, emitsThrough(contains('[Chrome, Dart2Js]')));
expect(test.stdout, emitsThrough(contains('[VM, Kernel]')));
expect(test.stdout, emitsThrough(contains('[VM, Source]')));
expect(test.stdout, emitsThrough(contains('+3: All tests passed!')));
await test.shouldExit(0);
});
test('supports platform selectors', () async {
var test = await runTest(
['test.dart', '-p', 'vm', '-c', 'vm:source,browser:kernel']);
expect(test.stdout, emitsThrough(contains('[VM, Source]')));
expect(test.stdout, emitsThrough(contains('+1: All tests passed!')));
await test.shouldExit(0);
});
test(
'will only run a given test once for each compiler, even if there are '
'multiple matches', () async {
var test =
await runTest(['test.dart', '-p', 'vm', '-c', 'vm:source,source']);
expect(test.stdout, emitsThrough(contains('[VM, Source]')));
expect(test.stdout, emitsThrough(contains('+1: All tests passed!')));
await test.shouldExit(0);
});
test('fails on unknown compilers', () async {
var test = await runTest(['test.dart', '-c', 'fake']);
expect(test.stderr, emitsThrough(contains('Invalid compiler `fake`')));
await test.shouldExit(64);
});
});
}