Add support for and a few additional CFE-based tests
Change-Id: I8e52f41cc54341c4321e688ae46a6392e69f98ab
Reviewed-on: https://dart-review.googlesource.com/68500
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/test/abstract_context.dart b/pkg/analysis_server/test/abstract_context.dart
index a270d2c..d57fbdb 100644
--- a/pkg/analysis_server/test/abstract_context.dart
+++ b/pkg/analysis_server/test/abstract_context.dart
@@ -60,6 +60,11 @@
bool get previewDart2 => driver.analysisOptions.previewDart2;
+ /**
+ * Return `true` to enable the Dart 2.0 Common Front End.
+ */
+ bool get useCFE => false;
+
void addFlutterPackage() {
addMetaPackageSource();
Folder libFolder = configureFlutterPackage(resourceProvider);
@@ -140,7 +145,8 @@
new ContextRoot(resourceProvider.convertPath('/project'), [],
pathContext: resourceProvider.pathContext),
sourceFactory,
- new AnalysisOptionsImpl());
+ new AnalysisOptionsImpl(),
+ enableKernelDriver: useCFE);
scheduler.start();
AnalysisEngine.instance.logger = PrintLogger.instance;
}
diff --git a/pkg/analysis_server/test/integration/edit/get_statement_completion_test.dart b/pkg/analysis_server/test/integration/edit/get_statement_completion_test.dart
index d462006..347d0df 100644
--- a/pkg/analysis_server/test/integration/edit/get_statement_completion_test.dart
+++ b/pkg/analysis_server/test/integration/edit/get_statement_completion_test.dart
@@ -61,5 +61,5 @@
@override
@failingTest
- Future test_statement_completion() => super.test_statement_completion();
+ test_statement_completion() => super.test_statement_completion();
}
diff --git a/pkg/analysis_server/test/services/completion/postfix/postfix_completion_test.dart b/pkg/analysis_server/test/services/completion/postfix/postfix_completion_test.dart
index 244b2b2..6d35673 100644
--- a/pkg/analysis_server/test/services/completion/postfix/postfix_completion_test.dart
+++ b/pkg/analysis_server/test/services/completion/postfix/postfix_completion_test.dart
@@ -13,15 +13,25 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(_AssertTest);
+ defineReflectiveTests(_AssertTest_UseCfe);
defineReflectiveTests(_ForTest);
+ defineReflectiveTests(_ForTest_UseCfe);
defineReflectiveTests(_NegateTest);
+ defineReflectiveTests(_NegateTest_UseCfe);
defineReflectiveTests(_IfTest);
+ defineReflectiveTests(_IfTest_UseCfe);
defineReflectiveTests(_NotNullTest);
+ defineReflectiveTests(_NotNullTest_UseCfe);
defineReflectiveTests(_ParenTest);
+ defineReflectiveTests(_ParenTest_UseCfe);
defineReflectiveTests(_ReturnTest);
+ defineReflectiveTests(_ReturnTest_UseCfe);
defineReflectiveTests(_SwitchTest);
+ defineReflectiveTests(_SwitchTest_UseCfe);
defineReflectiveTests(_TryTest);
+ defineReflectiveTests(_TryTest_UseCfe);
defineReflectiveTests(_WhileTest);
+ defineReflectiveTests(_WhileTest_UseCfe);
});
}
@@ -137,6 +147,12 @@
}
@reflectiveTest
+class _AssertTest_UseCfe extends _AssertTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _ForTest extends PostfixCompletionTest {
@failingTest
test_for_invalid() async {
@@ -267,6 +283,12 @@
}
@reflectiveTest
+class _ForTest_UseCfe extends _ForTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _IfTest extends PostfixCompletionTest {
test_Else() async {
await _prepareCompletion('.else', '''
@@ -324,6 +346,12 @@
}
@reflectiveTest
+class _IfTest_UseCfe extends _IfTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _NegateTest extends PostfixCompletionTest {
test_negate() async {
await _prepareCompletion('.not', '''
@@ -427,6 +455,12 @@
}
@reflectiveTest
+class _NegateTest_UseCfe extends _NegateTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _NotNullTest extends PostfixCompletionTest {
test_nn() async {
await _prepareCompletion('.nn', '''
@@ -535,6 +569,12 @@
}
@reflectiveTest
+class _NotNullTest_UseCfe extends _NotNullTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _ParenTest extends PostfixCompletionTest {
test_paren() async {
await _prepareCompletion('.par', '''
@@ -551,6 +591,12 @@
}
@reflectiveTest
+class _ParenTest_UseCfe extends _ParenTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _ReturnTest extends PostfixCompletionTest {
test_return() async {
await _prepareCompletion('.return', '''
@@ -567,6 +613,12 @@
}
@reflectiveTest
+class _ReturnTest_UseCfe extends _ReturnTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _SwitchTest extends PostfixCompletionTest {
test_return() async {
await _prepareCompletion('.switch', '''
@@ -585,6 +637,12 @@
}
@reflectiveTest
+class _SwitchTest_UseCfe extends _SwitchTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _TryTest extends PostfixCompletionTest {
test_try() async {
await _prepareCompletion('.try', '''
@@ -691,6 +749,12 @@
}
@reflectiveTest
+class _TryTest_UseCfe extends _TryTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _WhileTest extends PostfixCompletionTest {
test_while() async {
await _prepareCompletion('.while', '''
@@ -707,3 +771,9 @@
''');
}
}
+
+@reflectiveTest
+class _WhileTest_UseCfe extends _WhileTest {
+ @override
+ bool get useCFE => true;
+}
diff --git a/pkg/analysis_server/test/services/completion/statement/statement_completion_test.dart b/pkg/analysis_server/test/services/completion/statement/statement_completion_test.dart
index e870159..bf2de54 100644
--- a/pkg/analysis_server/test/services/completion/statement/statement_completion_test.dart
+++ b/pkg/analysis_server/test/services/completion/statement/statement_completion_test.dart
@@ -13,16 +13,27 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(_DeclarationCompletionTest);
+ defineReflectiveTests(_DeclarationCompletionTest_UseCfe);
defineReflectiveTests(_ControlFlowCompletionTest);
+ defineReflectiveTests(_ControlFlowCompletionTest_UseCfe);
defineReflectiveTests(_DoCompletionTest);
+ defineReflectiveTests(_DoCompletionTest_UseCfe);
defineReflectiveTests(_ExpressionCompletionTest);
+ defineReflectiveTests(_ExpressionCompletionTest_UseCfe);
defineReflectiveTests(_ForCompletionTest);
+ defineReflectiveTests(_ForCompletionTest_UseCfe);
defineReflectiveTests(_ForEachCompletionTest);
+ defineReflectiveTests(_ForEachCompletionTest_UseCfe);
defineReflectiveTests(_IfCompletionTest);
+ defineReflectiveTests(_IfCompletionTest_UseCfe);
defineReflectiveTests(_SimpleCompletionTest);
+ defineReflectiveTests(_SimpleCompletionTest_UseCfe);
defineReflectiveTests(_SwitchCompletionTest);
+ defineReflectiveTests(_SwitchCompletionTest_UseCfe);
defineReflectiveTests(_TryCompletionTest);
+ defineReflectiveTests(_TryCompletionTest_UseCfe);
defineReflectiveTests(_WhileCompletionTest);
+ defineReflectiveTests(_WhileCompletionTest_UseCfe);
});
}
@@ -286,6 +297,12 @@
}
@reflectiveTest
+class _ControlFlowCompletionTest_UseCfe extends _ControlFlowCompletionTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _DeclarationCompletionTest extends StatementCompletionTest {
test_classNameNoBody() async {
await _prepareCompletion(
@@ -453,6 +470,12 @@
}
@reflectiveTest
+class _DeclarationCompletionTest_UseCfe extends _DeclarationCompletionTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _DoCompletionTest extends StatementCompletionTest {
test_emptyCondition() async {
await _prepareCompletion(
@@ -585,6 +608,16 @@
}
@reflectiveTest
+class _DoCompletionTest_UseCfe extends _DoCompletionTest {
+ @override
+ bool get useCFE => true;
+
+ @failingTest
+ @override
+ test_keywordOnly() => super.test_keywordOnly();
+}
+
+@reflectiveTest
class _ExpressionCompletionTest extends StatementCompletionTest {
test_listAssign() async {
await _prepareCompletion(
@@ -802,6 +835,12 @@
}
@reflectiveTest
+class _ExpressionCompletionTest_UseCfe extends _ExpressionCompletionTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _ForCompletionTest extends StatementCompletionTest {
test_emptyCondition() async {
await _prepareCompletion(
@@ -1040,6 +1079,20 @@
}
@reflectiveTest
+class _ForCompletionTest_UseCfe extends _ForCompletionTest {
+ @override
+ bool get useCFE => true;
+
+ @failingTest
+ @override
+ test_emptyInitializers() => super.test_emptyInitializers();
+
+ @failingTest
+ @override
+ test_emptyInitializersAfterBody() => super.test_emptyInitializersAfterBody();
+}
+
+@reflectiveTest
class _ForEachCompletionTest extends StatementCompletionTest {
test_emptyIdentifier() async {
await _prepareCompletion(
@@ -1133,6 +1186,12 @@
}
@reflectiveTest
+class _ForEachCompletionTest_UseCfe extends _ForEachCompletionTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _IfCompletionTest extends StatementCompletionTest {
test_afterCondition() async {
await _prepareCompletion(
@@ -1353,6 +1412,16 @@
}
@reflectiveTest
+class _IfCompletionTest_UseCfe extends _IfCompletionTest {
+ @override
+ bool get useCFE => true;
+
+ @failingTest
+ @override
+ test_keywordOnly() => super.test_keywordOnly();
+}
+
+@reflectiveTest
class _SimpleCompletionTest extends StatementCompletionTest {
test_enter() async {
await _prepareCompletion(
@@ -1570,6 +1639,12 @@
}
@reflectiveTest
+class _SimpleCompletionTest_UseCfe extends _SimpleCompletionTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _SwitchCompletionTest extends StatementCompletionTest {
test_caseNoColon() async {
await _prepareCompletion(
@@ -1682,6 +1757,12 @@
}
@reflectiveTest
+class _SwitchCompletionTest_UseCfe extends _SwitchCompletionTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _TryCompletionTest extends StatementCompletionTest {
test_catchOnly() async {
await _prepareCompletion(
@@ -1938,6 +2019,12 @@
}
@reflectiveTest
+class _TryCompletionTest_UseCfe extends _TryCompletionTest {
+ @override
+ bool get useCFE => true;
+}
+
+@reflectiveTest
class _WhileCompletionTest extends StatementCompletionTest {
/*
The implementation of completion for while-statements is shared with
@@ -1967,3 +2054,13 @@
(s) => _after(s, 'while ('));
}
}
+
+@reflectiveTest
+class _WhileCompletionTest_UseCfe extends _WhileCompletionTest {
+ @override
+ bool get useCFE => true;
+
+ @failingTest
+ @override
+ test_keywordOnly() => super.test_keywordOnly();
+}
diff --git a/pkg/analysis_server/test/services/correction/assist_test.dart b/pkg/analysis_server/test/services/correction/assist_test.dart
index e165000..1fe73ee 100644
--- a/pkg/analysis_server/test/services/correction/assist_test.dart
+++ b/pkg/analysis_server/test/services/correction/assist_test.dart
@@ -25,6 +25,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(AssistProcessorTest);
+ defineReflectiveTests(AssistProcessorTest_UseCFE);
});
}
@@ -6309,6 +6310,316 @@
}
}
+@reflectiveTest
+class AssistProcessorTest_UseCFE extends AssistProcessorTest {
+ @override
+ bool get useCFE => true;
+
+ // Many of these tests are failing because the CFE is not able to find the
+ // flutter package. It seems likely that there is a problem with the way the
+ // tests (or some underlying layer) is passing package resolution to the CFE.
+
+ @failingTest
+ @override
+ test_addTypeAnnotation_parameter_BAD_hasExplicitType() =>
+ super.test_addTypeAnnotation_parameter_BAD_hasExplicitType();
+
+ @failingTest
+ @override
+ test_addTypeAnnotation_parameter_BAD_noPropagatedType() =>
+ super.test_addTypeAnnotation_parameter_BAD_noPropagatedType();
+
+ @failingTest
+ @override
+ test_addTypeAnnotation_parameter_OK() =>
+ super.test_addTypeAnnotation_parameter_OK();
+
+ @failingTest
+ @override
+ test_convertToFinalField_OK_hasOverride() =>
+ super.test_convertToFinalField_OK_hasOverride();
+
+ @failingTest
+ @override
+ test_convertToFunctionSyntax_BAD_functionTypedParameter_insideParameterList() =>
+ super
+ .test_convertToFunctionSyntax_BAD_functionTypedParameter_insideParameterList();
+
+ @failingTest
+ @override
+ test_convertToFunctionSyntax_BAD_functionTypedParameter_noParameterTypes() =>
+ super
+ .test_convertToFunctionSyntax_BAD_functionTypedParameter_noParameterTypes();
+
+ @failingTest
+ @override
+ test_convertToFunctionSyntax_OK_functionTypedParameter_noReturnType_noTypeParameters() =>
+ super
+ .test_convertToFunctionSyntax_OK_functionTypedParameter_noReturnType_noTypeParameters();
+
+ @failingTest
+ @override
+ test_convertToFunctionSyntax_OK_functionTypedParameter_returnType() =>
+ super.test_convertToFunctionSyntax_OK_functionTypedParameter_returnType();
+
+ @failingTest
+ @override
+ test_convertToGetter_OK() => super.test_convertToGetter_OK();
+
+ @failingTest
+ @override
+ test_flutterConvertToChildren_BAD_childUnresolved() =>
+ super.test_flutterConvertToChildren_BAD_childUnresolved();
+
+ @failingTest
+ @override
+ test_flutterConvertToChildren_BAD_notOnChild() =>
+ super.test_flutterConvertToChildren_BAD_notOnChild();
+
+ @failingTest
+ @override
+ test_flutterConvertToChildren_OK_multiLine() =>
+ super.test_flutterConvertToChildren_OK_multiLine();
+
+ @failingTest
+ @override
+ test_flutterConvertToChildren_OK_newlineChild() =>
+ super.test_flutterConvertToChildren_OK_newlineChild();
+
+ @failingTest
+ @override
+ test_flutterConvertToChildren_OK_singleLine() =>
+ super.test_flutterConvertToChildren_OK_singleLine();
+
+ @failingTest
+ @override
+ test_flutterConvertToStatefulWidget_BAD_notClass() =>
+ super.test_flutterConvertToStatefulWidget_BAD_notClass();
+
+ @failingTest
+ @override
+ test_flutterConvertToStatefulWidget_BAD_notStatelessWidget() =>
+ super.test_flutterConvertToStatefulWidget_BAD_notStatelessWidget();
+
+ @failingTest
+ @override
+ test_flutterConvertToStatefulWidget_BAD_notWidget() =>
+ super.test_flutterConvertToStatefulWidget_BAD_notWidget();
+
+ @failingTest
+ @override
+ test_flutterConvertToStatefulWidget_OK() =>
+ super.test_flutterConvertToStatefulWidget_OK();
+
+ @failingTest
+ @override
+ test_flutterConvertToStatefulWidget_OK_empty() =>
+ super.test_flutterConvertToStatefulWidget_OK_empty();
+
+ @failingTest
+ @override
+ test_flutterConvertToStatefulWidget_OK_fields() =>
+ super.test_flutterConvertToStatefulWidget_OK_fields();
+
+ @failingTest
+ @override
+ test_flutterConvertToStatefulWidget_OK_getters() =>
+ super.test_flutterConvertToStatefulWidget_OK_getters();
+
+ @failingTest
+ @override
+ test_flutterConvertToStatefulWidget_OK_methods() =>
+ super.test_flutterConvertToStatefulWidget_OK_methods();
+
+ @failingTest
+ @override
+ test_flutterConvertToStatefulWidget_OK_tail() =>
+ super.test_flutterConvertToStatefulWidget_OK_tail();
+
+ @failingTest
+ @override
+ test_flutterMoveWidgetDown_BAD_last() =>
+ super.test_flutterMoveWidgetDown_BAD_last();
+
+ @failingTest
+ @override
+ test_flutterMoveWidgetDown_BAD_notInList() =>
+ super.test_flutterMoveWidgetDown_BAD_notInList();
+
+ @failingTest
+ @override
+ test_flutterMoveWidgetDown_OK() => super.test_flutterMoveWidgetDown_OK();
+
+ @failingTest
+ @override
+ test_flutterMoveWidgetUp_BAD_first() =>
+ super.test_flutterMoveWidgetUp_BAD_first();
+
+ @failingTest
+ @override
+ test_flutterMoveWidgetUp_BAD_notInList() =>
+ super.test_flutterMoveWidgetUp_BAD_notInList();
+
+ @failingTest
+ @override
+ test_flutterMoveWidgetUp_OK() => super.test_flutterMoveWidgetUp_OK();
+
+ @failingTest
+ @override
+ test_flutterRemoveWidget_BAD_childrenMultipleIntoChild() =>
+ super.test_flutterRemoveWidget_BAD_childrenMultipleIntoChild();
+
+ @failingTest
+ @override
+ test_flutterRemoveWidget_OK_childIntoChild_multiLine() =>
+ super.test_flutterRemoveWidget_OK_childIntoChild_multiLine();
+
+ @failingTest
+ @override
+ test_flutterRemoveWidget_OK_childIntoChild_singleLine() =>
+ super.test_flutterRemoveWidget_OK_childIntoChild_singleLine();
+
+ @failingTest
+ @override
+ test_flutterRemoveWidget_OK_childIntoChildren() =>
+ super.test_flutterRemoveWidget_OK_childIntoChildren();
+
+ @failingTest
+ @override
+ test_flutterRemoveWidget_OK_childrenOneIntoChild() =>
+ super.test_flutterRemoveWidget_OK_childrenOneIntoChild();
+
+ @failingTest
+ @override
+ test_flutterRemoveWidget_OK_childrenOneIntoReturn() =>
+ super.test_flutterRemoveWidget_OK_childrenOneIntoReturn();
+
+ @failingTest
+ @override
+ test_flutterRemoveWidget_OK_intoChildren() =>
+ super.test_flutterRemoveWidget_OK_intoChildren();
+
+ @failingTest
+ @override
+ test_flutterSwapWithChild_OK() => super.test_flutterSwapWithChild_OK();
+
+ @failingTest
+ @override
+ test_flutterSwapWithChild_OK_notFormatted() =>
+ super.test_flutterSwapWithChild_OK_notFormatted();
+
+ @failingTest
+ @override
+ test_flutterSwapWithParent_OK() => super.test_flutterSwapWithParent_OK();
+
+ @failingTest
+ @override
+ test_flutterSwapWithParent_OK_notFormatted() =>
+ super.test_flutterSwapWithParent_OK_notFormatted();
+
+ @failingTest
+ @override
+ test_flutterSwapWithParent_OK_outerIsInChildren() =>
+ super.test_flutterSwapWithParent_OK_outerIsInChildren();
+
+ @failingTest
+ @override
+ test_flutterWrapCenter_BAD_onCenter() =>
+ super.test_flutterWrapCenter_BAD_onCenter();
+
+ @failingTest
+ @override
+ test_flutterWrapCenter_OK() => super.test_flutterWrapCenter_OK();
+
+ @failingTest
+ @override
+ test_flutterWrapCenter_OK_implicitNew() =>
+ super.test_flutterWrapCenter_OK_implicitNew();
+
+ @failingTest
+ @override
+ test_flutterWrapCenter_OK_namedConstructor() =>
+ super.test_flutterWrapCenter_OK_namedConstructor();
+
+ @failingTest
+ @override
+ test_flutterWrapColumn_OK_coveredByWidget() =>
+ super.test_flutterWrapColumn_OK_coveredByWidget();
+
+ @failingTest
+ @override
+ test_flutterWrapColumn_OK_coversWidgets() =>
+ super.test_flutterWrapColumn_OK_coversWidgets();
+
+ @failingTest
+ @override
+ test_flutterWrapColumn_OK_implicitNew() =>
+ super.test_flutterWrapColumn_OK_implicitNew();
+
+ @failingTest
+ @override
+ test_flutterWrapPadding_BAD_onPadding() =>
+ super.test_flutterWrapPadding_BAD_onPadding();
+
+ @failingTest
+ @override
+ test_flutterWrapPadding_OK() => super.test_flutterWrapPadding_OK();
+
+ @failingTest
+ @override
+ test_flutterWrapRow_OK() => super.test_flutterWrapRow_OK();
+
+ @failingTest
+ @override
+ test_flutterWrapWidget_BAD_multiLine() =>
+ super.test_flutterWrapWidget_BAD_multiLine();
+
+ @failingTest
+ @override
+ test_flutterWrapWidget_BAD_singleLine() =>
+ super.test_flutterWrapWidget_BAD_singleLine();
+
+ @failingTest
+ @override
+ test_flutterWrapWidget_OK_multiLine() =>
+ super.test_flutterWrapWidget_OK_multiLine();
+
+ @failingTest
+ @override
+ test_flutterWrapWidget_OK_multiLines() =>
+ super.test_flutterWrapWidget_OK_multiLines();
+
+ @failingTest
+ @override
+ test_flutterWrapWidget_OK_multiLines_eol2() =>
+ super.test_flutterWrapWidget_OK_multiLines_eol2();
+
+ @failingTest
+ @override
+ test_flutterWrapWidget_OK_singleLine1() =>
+ super.test_flutterWrapWidget_OK_singleLine1();
+
+ @failingTest
+ @override
+ test_flutterWrapWidget_OK_singleLine2() =>
+ super.test_flutterWrapWidget_OK_singleLine2();
+
+ @failingTest
+ @override
+ test_flutterWrapWidget_OK_variable() =>
+ super.test_flutterWrapWidget_OK_variable();
+
+ @failingTest
+ @override
+ test_importAddShow_BAD_unresolvedUri() =>
+ super.test_importAddShow_BAD_unresolvedUri();
+
+ @failingTest
+ @override
+ test_removeTypeAnnotation_topLevelVariable_BAD_syntheticName() =>
+ super.test_removeTypeAnnotation_topLevelVariable_BAD_syntheticName();
+}
+
class _DartAssistContextForValues implements DartAssistContext {
@override
final Source source;