blob: 4bb1b75969ac7ad2c2542cff21392caf142c0900 [file] [log] [blame]
// Copyright (c) 2017, 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.
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'driver_test.dart';
main() {
defineReflectiveSuite(() {
defineReflectiveTests(AnalysisDriverTest_Kernel);
});
}
/// Tests marked with this annotations fail because we either have not triaged
/// them, or know that this is an analyzer problem.
const potentialAnalyzerProblem = const Object();
/// Wrapper around the test package's `fail` function.
///
/// Unlike the test package's `fail` function, this function is not annotated
/// with @alwaysThrows, so we can call it at the top of a test method without
/// causing the rest of the method to be flagged as dead code.
void _fail(String message) {
fail(message);
}
@reflectiveTest
class AnalysisDriverTest_Kernel extends AnalysisDriverTest {
@override
bool get useCFE => true;
@override
test_asyncChangesDuringAnalysis_getErrors() async {
// TODO(brianwilkerson) Re-enable this test. It was disabled because it
// appears to be flaky (possibly OS specific).
// Unexpected exceptions:
// Path: /test/lib/test.dart
// Exception: NoSuchMethodError: The getter 'iterator' was called on null.
// Receiver: null
// Tried calling: iterator
// #0 Object.noSuchMethod (dart:core-patch/dart:core/object_patch.dart:46)
// #1 _LibraryWalker.evaluateScc (package:front_end/src/incremental/file_state.dart:581:35)
// #2 _LibraryWalker.evaluate (package:front_end/src/incremental/file_state.dart:571:5)
// #3 DependencyWalker.walk.strongConnect (package:front_end/src/dependency_walker.dart:149:13)
// #4 DependencyWalker.walk (package:front_end/src/dependency_walker.dart:168:18)
// #5 FileState.topologicalOrder (package:front_end/src/incremental/file_state.dart:147:19)
// #6 KernelDriver.getKernelSequence.<anonymous closure>.<anonymous closure> (package:front_end/src/incremental/kernel_driver.dart:282:50)
// #7 PerformanceLog.run (package:front_end/src/base/performance_logger.dart:34:15)
// #8 KernelDriver.getKernelSequence.<anonymous closure> (package:front_end/src/incremental/kernel_driver.dart:281:43)
// await super.test_asyncChangesDuringAnalysis_getErrors();
}
@override
@failingTest
@potentialAnalyzerProblem
test_const_annotation_notConstConstructor() async {
await super.test_const_annotation_notConstConstructor();
}
@failingTest
@potentialAnalyzerProblem
@override
test_const_annotation_withArgs() async {
await super.test_const_annotation_withArgs();
}
@override
@failingTest
@potentialAnalyzerProblem
test_const_annotation_withoutArgs() async {
await super.test_const_annotation_withoutArgs();
}
@override
@failingTest
@potentialAnalyzerProblem
test_const_circular_reference() async {
await super.test_const_circular_reference();
}
@override
@failingTest
@potentialAnalyzerProblem
test_const_dependency_sameUnit() async {
await super.test_const_dependency_sameUnit();
}
@failingTest
@potentialAnalyzerProblem
@override
test_const_externalConstFactory() async {
await super.test_const_externalConstFactory();
}
@override
@failingTest
test_const_implicitCreation() {
// Bad state: No data for () at 69
return super.test_const_implicitCreation();
}
@failingTest
@FastaProblem('https://github.com/dart-lang/sdk/issues/31555')
@override
test_const_implicitSuperConstructorInvocation() async {
await super.test_const_implicitSuperConstructorInvocation();
}
@override
@failingTest
@potentialAnalyzerProblem
test_const_simple_topLevelVariable() async {
await super.test_const_simple_topLevelVariable();
}
@failingTest
@potentialAnalyzerProblem
@override
test_errors_uriDoesNotExist_export() async {
await super.test_errors_uriDoesNotExist_export();
}
@failingTest
@potentialAnalyzerProblem
@override
test_errors_uriDoesNotExist_import() async {
await super.test_errors_uriDoesNotExist_import();
}
@failingTest
@potentialAnalyzerProblem
@override
test_errors_uriDoesNotExist_import_deferred() async {
await super.test_errors_uriDoesNotExist_import_deferred();
}
@failingTest
@potentialAnalyzerProblem
@override
test_errors_uriDoesNotExist_part() async {
await super.test_errors_uriDoesNotExist_part();
}
@override
test_externalSummaries() {
// Skipped by design.
}
@override
test_externalSummaries_partReuse() {
// Skipped by design.
}
@failingTest
@potentialAnalyzerProblem
@override
test_getErrors() async {
await super.test_getErrors();
}
@failingTest
@potentialAnalyzerProblem
@override
test_getResult_importLibrary_thenRemoveIt() async {
await super.test_getResult_importLibrary_thenRemoveIt();
}
@failingTest
@potentialAnalyzerProblem
@override
test_getResult_invalid_annotation_functionAsConstructor() async {
await super.test_getResult_invalid_annotation_functionAsConstructor();
}
@failingTest
@potentialAnalyzerProblem
@override
test_getResult_invalidUri() async {
await super.test_getResult_invalidUri();
}
@failingTest
@potentialAnalyzerProblem
@override
test_getResult_invalidUri_exports_dart() async {
await super.test_getResult_invalidUri_exports_dart();
}
@failingTest
@potentialAnalyzerProblem
@override
test_getResult_invalidUri_imports_dart() async {
await super.test_getResult_invalidUri_imports_dart();
}
@failingTest
@potentialAnalyzerProblem
@override
test_getResult_invalidUri_metadata() async {
await super.test_getResult_invalidUri_metadata();
}
@failingTest
@potentialAnalyzerProblem
@override
test_getResult_mix_fileAndPackageUris() async {
await super.test_getResult_mix_fileAndPackageUris();
}
@failingTest
@FastaProblem('https://github.com/dart-lang/sdk/issues/31409')
@override
test_getResult_nameConflict_local() async {
await super.test_getResult_nameConflict_local();
}
@failingTest
@FastaProblem('https://github.com/dart-lang/sdk/issues/31409')
@override
test_getResult_nameConflict_local_typeInference() async {
await super.test_getResult_nameConflict_local_typeInference();
}
@override
@failingTest
test_missingDartLibrary_async() {
// Crash when compiling package:test/test.dart, at character offset null:
// Class 'FutureOr' not found in library 'dart:async'
return super.test_missingDartLibrary_async();
}
@override
@failingTest
test_missingDartLibrary_core() {
// Crash when compiling package:test/test.dart, at character offset null:
// file:///sdk/lib/core/core.dart:1: Internal problem: Couldn't find
// 'Object' in 'file:///sdk/lib/core/core.dart'.
return super.test_missingDartLibrary_core();
}
@failingTest
@FastaProblem('https://github.com/dart-lang/sdk/issues/30959')
@override
test_part_getResult_noLibrary() async {
await super.test_part_getResult_noLibrary();
}
@failingTest
@FastaProblem('https://github.com/dart-lang/sdk/issues/30959')
@override
test_part_getUnitElement_noLibrary() async {
_fail('This test fails even with @failingTest');
await super.test_part_getUnitElement_noLibrary();
}
@failingTest
@FastaProblem('https://github.com/dart-lang/sdk/issues/30959')
@override
test_part_results_afterLibrary() async {
await super.test_part_results_afterLibrary();
}
@failingTest
@FastaProblem('https://github.com/dart-lang/sdk/issues/30959')
@override
test_part_results_noLibrary() async {
await super.test_part_results_noLibrary();
}
@failingTest
@potentialAnalyzerProblem
@override
test_removeFile_invalidate_importers() async {
await super.test_removeFile_invalidate_importers();
}
@failingTest
@potentialAnalyzerProblem
@override
test_results_order() async {
await super.test_results_order();
}
}
/// Tests marked with this annotation fail because of a Fasta problem.
class FastaProblem {
const FastaProblem(String issueUri);
}