Files
sdk/pkg/front_end/testing.json
T
Jens Johansen 5b5956bd4e [CFE] First pass at internal test utility
This is a first pass at running inlined tests
(seemingly called doctests in for instance python) on internal CFE code.

This is not useful for testing the entire compiler for instance, but
could be useful for utility methods that take simple inputs and provide
simple outputs.

I've added tests to a few tings to try it out.

The syntax for it here is probably overly verbose but we could iterate
on that if need be.

The way it's done is that the test-code is extracted from the comments
and (virtually) "injected" in a weirdly named top level method of the
same file, which is then called from a "fake" main; the whole thing is
compiled to dill and run in an isolate.
(This is an application where making advanced invalidation support
adding top level methods would be great).

Change-Id: I7927822bca0ba68780458c40fe585882330e3b60
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/203242
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2021-06-22 08:12:58 +00:00

476 lines
15 KiB
JSON

{
"": "Copyright (c) 2016, 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.md file.",
"packages": "../../.packages",
"suites": [
{
"name": "messages",
"kind": "Chain",
"source": "test/fasta/messages_suite.dart",
"path": "./",
"status": "messages.status",
"pattern": [],
"exclude": []
},
{
"name": "scanner",
"kind": "Chain",
"source": "test/fasta/scanner/scanner_suite.dart",
"path": "../../",
"status": "test/fasta/scanner/scanner.status",
"pattern": [
"\\.dart$"
],
"exclude": []
},
{
"name": "parser",
"kind": "Chain",
"source": "test/fasta/parser/parser_suite.dart",
"path": "../../",
"status": "test/fasta/parser/parser.status",
"pattern": [
"\\.dart$"
],
"exclude": [
"README.dart",
"/sdk/xcodebuild/",
"/sdk/out/",
"/sdk/build/",
"/sdk/tools/sdks/",
"/sdk/generated/"
]
},
{
"name": "textual_outline",
"kind": "Chain",
"source": "test/fasta/textual_outline_suite.dart",
"path": "testcases/",
"status": "testcases/textual_outline.status",
"pattern": [
"\\.dart$",
"\\.crash_dart$"
],
"exclude": [
"/testcases/.*_part[0-9]*\\.dart$",
"/testcases/.*_lib[0-9]*\\.dart$",
"/testcases/dartino/",
"/testcases/expression/"
]
},
{
"name": "outline",
"kind": "Chain",
"source": "test/fasta/outline_suite.dart",
"path": "testcases/",
"status": "testcases/outline.status",
"pattern": [
"\\.dart$",
"\\.crash_dart$"
],
"exclude": [
"/testcases/.*_part[0-9]*\\.dart$",
"/testcases/.*_lib[0-9]*\\.dart$",
"/testcases/dartino/",
"/testcases/expression/"
]
},
{
"name": "strong",
"kind": "Chain",
"source": "test/fasta/strong_suite.dart",
"path": "testcases/",
"status": "testcases/strong.status",
"pattern": [
"\\.dart$",
"\\.crash_dart$"
],
"exclude": [
"/testcases/.*_part[0-9]*\\.dart$",
"/testcases/.*_lib[0-9]*\\.dart$",
"/testcases/dartino/",
"/testcases/expression/",
"/testcases/extensions/",
"/testcases/general/",
"/testcases/implicit_getter_calls",
"/testcases/inference",
"/testcases/inference_new",
"/testcases/instantiate_to_bound/",
"/testcases/new_const_insertion",
"/testcases/nnbd_mixed/",
"/testcases/no_such_method_forwarders",
"/testcases/nonfunction_type_aliases_no_nnbd/",
"/testcases/rasta/",
"/testcases/regress/",
"/testcases/runtime_checks",
"/testcases/runtime_checks_new",
"/testcases/set_literals",
"/testcases/variance",
"/testcases/unified_collections"
]
},
{
"name": "text_serialization",
"kind": "Chain",
"source": "test/fasta/text_serialization_suite.dart",
"path": "testcases/",
"status": "testcases/text_serialization.status",
"pattern": [
"\\.dart$",
"\\.crash_dart$"
],
"exclude": [
"/testcases/.*_part[0-9]*\\.dart$",
"/testcases/.*_lib[0-9]*\\.dart$",
"/testcases/dartino/",
"/testcases/expression/"
]
},
{
"name": "weak",
"kind": "Chain",
"source": "test/fasta/weak_suite.dart",
"path": "testcases/",
"status": "testcases/weak.status",
"pattern": [
"\\.dart$",
"\\.crash_dart$"
],
"exclude": [
"/testcases/.*_part[0-9]*\\.dart$",
"/testcases/.*_lib[0-9]*\\.dart$",
"/testcases/dartino/",
"/testcases/expression/"
]
},
{
"name": "incremental_dartino",
"kind": "Chain",
"source": "test/fasta/incremental_dartino_suite.dart",
"path": "testcases/dartino",
"status": "testcases/incremental_dartino.status",
"pattern": [
"\\.incremental\\.yaml$"
],
"exclude": []
},
{
"name": "expression",
"kind": "Chain",
"source": "test/fasta/expression_suite.dart",
"path": "testcases/expression/",
"status": "testcases/expression.status",
"pattern": [
"\\.expression\\.yaml$"
],
"exclude": []
},
{
"name": "incremental",
"kind": "Chain",
"source": "test/incremental_suite.dart",
"path": "testcases/incremental/",
"status": "testcases/incremental.status",
"pattern": [
"\\.yaml$"
],
"exclude": []
},
{
"name": "incremental_bulk_compiler_smoke",
"kind": "Chain",
"source": "test/incremental_bulk_compiler_smoke_suite.dart",
"path": "../../tests/",
"status": "testcases/incremental_bulk_compiler_smoke.status",
"pattern": [
"/language_2/accessor_conflict_export2_test\\.dart$",
"/language_2/accessor_conflict_export_test\\.dart$",
"/language_2/regress_14348_test\\.dart$",
"/language_2/regress_18535_test\\.dart$",
"/language_2/deferred_super_dependency_test\\.dart$",
"/language_2/export_ambiguous_main_test\\.dart$",
"/language_2/export_double_same_main_test\\.dart$",
"/language_2/export_main_test\\.dart$",
"/language_2/import_nonexisting_dart_uri_test\\.dart$",
"/language_2/internal_library_test\\.dart$",
"/language_2/issue1578_negative_test\\.dart$",
"/language_2/missing_part_of_tag_test\\.dart$",
"/language_2/no_main_test\\.dart$",
"/language_2/part_refers_to_core_library_test\\.dart$",
"/language_2/regress_27957_test\\.dart$",
"/language_2/script1_negative_test\\.dart$",
"/language_2/script2_negative_test\\.dart$",
"/language_2/unbalanced_brace_test\\.dart$"
],
"exclude": []
},
{
"name": "incremental_bulk_compiler_full",
"kind": "Chain",
"source": "test/incremental_bulk_compiler_full.dart",
"path": "../../tests/",
"status": "testcases/incremental_bulk_compiler_full.status",
"pattern": [
"language_2/.*_test\\.dart$"
],
"exclude": []
},
{
"name": "parser",
"kind": "Chain",
"source": "test/parser_suite.dart",
"path": "parser_testcases/",
"status": "parser_testcases/parser.status",
"pattern": [
"\\.dart$",
"\\.crash_dart$"
],
"exclude": []
},
{
"name": "parser_equivalence",
"kind": "Chain",
"source": "test/parser_equivalence_suite.dart",
"path": "parser_testcases/",
"status": "parser_testcases/parser_equivalence.status",
"pattern": [
"\\.equivalence_info$"
],
"exclude": []
},
{
"name": "parser_all",
"kind": "Chain",
"source": "test/parser_all_suite.dart",
"path": "../../",
"status": "parser_testcases/parser_all.status",
"pattern": [
"pkg/front_end/.*\\.dart$",
"pkg/front_end/.*\\.crash_dart$",
"tests/.*\\.dart$"
],
"exclude": []
},
{
"name": "lint",
"kind": "Chain",
"source": "test/lint_suite.dart",
"path": "../",
"status": "test/lint_test.status",
"pattern": [
"_fe_analyzer_shared/lib/.*\\.dart$",
"kernel/lib/.*\\.dart$",
"front_end/lib/.*\\.dart$"
],
"exclude": [
"kernel/lib/transformations/.*\\.dart$",
"_fe_analyzer_shared/lib/src/messages/codes_generated\\.dart$",
"front_end/lib/src/fasta/fasta_codes_cfe_generated\\.dart$"
]
},
{
"name": "dartdoctest",
"kind": "Chain",
"source": "test/dartdoctest_suite.dart",
"path": "../",
"status": "test/dartdoctest_suite.status",
"pattern": [
"_fe_analyzer_shared/.*\\.dart$",
"kernel/.*\\.dart$",
"front_end/.*\\.dart$"
],
"exclude": []
},
{
"name": "spelling_test_src",
"kind": "Chain",
"source": "test/spelling_test_src_suite.dart",
"path": "../",
"status": "test/spelling_test.status",
"pattern": [
"_fe_analyzer_shared/lib/.*\\.dart$",
"front_end/lib/.*\\.dart$",
"kernel/lib/.*\\.dart$"
],
"exclude": [
"kernel/lib/vm/.*\\.dart$",
"kernel/lib/transformations/.*\\.dart$",
"_fe_analyzer_shared/lib/src/messages/codes_generated\\.dart$",
"front_end/lib/src/fasta/fasta_codes_cfe_generated\\.dart$"
]
},
{
"name": "spelling_test_not_src",
"kind": "Chain",
"source": "test/spelling_test_not_src_suite.dart",
"path": ".",
"status": "test/spelling_test.status",
"pattern": [
".*\\.dart$"
],
"exclude": [
"lib/",
"test/fasta/super_mixins_test\\.dart$",
"test/fasta/types/subtypes_benchmark\\.dart$",
"test/fasta/unlinked_scope_test\\.dart$",
"test/memory_file_system_test\\.dart$",
"test/scanner_fasta_test\\.dart$",
"test/scanner_test\\.dart$",
"test/spell_checking_utils_test.dart",
"test/standard_file_system_test\\.dart$",
"test/tool/reload\\.dart$",
"test/type_labeler_test\\.dart$",
"test/unit_test_suites\\.dart$",
"test/unit_test_suites_impl\\.dart$",
"testcases/expression/main\\.dart$",
"testcases/general/DeltaBlue\\.dart$",
"testcases/general/annotation_variable_declaration\\.dart$",
"testcases/general/arithmetic\\.dart$",
"testcases/general/bad_type_variable_uses_in_supertypes\\.dart$",
"testcases/general/clone_function_type\\.dart$",
"testcases/general/co19_language_metadata_syntax_t04\\.dart$",
"testcases/general/complex_class_hierarchy\\.dart$",
"testcases/general/issue34899\\.dart$",
"testcases/general/micro\\.dart$",
"testcases/general/redirecting_factory\\.dart$",
"testcases/general/spread_collection_inference\\.dart$",
"testcases/inference/downwards_inference_initializing_formal_default_formal\\.dart$",
"testcases/inference/downwards_inference_on_generic_function_expressions\\.dart$",
"testcases/inference/for_in_loop_promotion\\.dart$",
"testcases/inference/future_union_upwards_generic_methods\\.dart$",
"testcases/inference/generic_methods_infer_generic_instantiation\\.dart$",
"testcases/inference/overloaded_int_operators\\.dart$",
"testcases/instantiate_to_bound/non_simple_many\\.dart$",
"testcases/instantiate_to_bound/non_simple_suppress_consequence\\.dart$",
"testcases/rasta/switch_execution_case_t02\\.dart$",
"testcases/set_literals/disambiguation_rule\\.dart$",
"tool/_fasta/abcompile\\.dart$"
]
},
{
"name": "spelling_test_external_targets",
"kind": "Chain",
"source": "test/spelling_test_external_targets.dart",
"path": "../../",
"status": "test/spelling_test.status",
"pattern": [
".*\\.dart$"
],
"exclude": []
},
{
"name": "sdk",
"kind": "Chain",
"source": "test/fasta/sdk_test.dart",
"path": "../../tests/",
"status": "testcases/sdk.status",
"process-multitests": true,
"pattern": [
"/sdk/tests/language_2/.*_test\\.dart$"
],
"": "deep_nesting{1,2}_negative_test are ignored because they cause a",
"": "crash that we're ignoring for now (it was fixed in Rasta).",
"": "The other tests are excluded because they try to use 'none' as ",
"": "subtest name in multi test.",
"": "Tracked by: https://github.com/dart-lang/sdk/issues/28436",
"exclude": [
"/sdk/tests/language/regress_23996_test\\.dart$",
"/sdk/tests/language/round_test\\.dart$",
"/sdk/tests/language_2/abstract_getter2_test\\.dart$",
"/sdk/tests/language_2/round_test\\.dart$",
"/sdk/tests/language_2/regress_23996_test\\.dart$",
"/sdk/tests/language_2/regress_30669_test\\.dart$",
"/sdk/tests/language_2/regress_30927_test\\.dart$",
"/sdk/tests/language_2/runtime_type_function_test\\.dart$",
"/sdk/tests/language_2/setter_override_test\\.dart$"
]
},
{
"note": "Tests dart2js fully, excluding browser-only tests.",
"name": "dart2js",
"kind": "test_dart",
"arch": "x64",
"mode": "release",
"common": "--dart2js-batch --time -pcolor --report -ax64 -mrelease --write-result-log",
"command-lines": [
"--checked dart2js",
"-cdart2js -rd8 --exclude-suite=observatory_ui",
"-cdart2js -rd8 web_2"
]
},
{
"note": "Minimal testing of Fasta.",
"name": "fasta_min",
"kind": "test_dart",
"arch": "x64",
"mode": "release",
"common": "--time -pcolor --report -ax64 -mrelease --write-result-log",
"command-lines": [
"-t240 pkg/(kernel|front_end|fasta) --checked",
"-t240 web/analyze_test",
"-cdartk -rvm"
]
},
{
"note": "Tests Fasta fully, including the above dart2js tests.",
"name": "fasta_max",
"kind": "test_dart",
"arch": "x64",
"mode": "release",
"common": "--dart2js-batch --time -pcolor --report -ax64 -mrelease --write-result-log",
"command-lines": [
"-t240 --checked pkg/(kernel|front_end|fasta) dart2js",
"-cdartk -rvm",
"-cdart2js -rd8 --exclude-suite=observatory_ui",
"-cdart2js -rd8 web_2"
]
},
{
"note": "Runs dart2js in a mode where it invokes Fasta.",
"name": "dart2js_with_kernel",
"kind": "test_dart",
"arch": "x64",
"mode": "release",
"common": "--dart2js-batch --time -pcolor --report -ax64 -mrelease --write-result-log",
"command-lines": [
"-cdart2js -rd8 --use-sdk --minified language language_2 web_2 corelib corelib_2"
]
}
],
"analyze": {
"options": "analysis_options_no_lints.yaml",
"uris": [
"lib/",
"tool/",
"test/",
"../kernel/lib/",
"../testing/",
"../_fe_analyzer_shared/lib/"
],
"git grep": {
"pathspecs": [
"*.dart"
],
"patterns": [
"package:front_end/",
"package:kernel/",
"package:testing/"
]
},
"exclude": [
"^pkg/analysis_server/lib/src/analysis_server\\.dart",
"test/analyser_ignored/",
"test/class_hierarchy/data/",
"test/enable_non_nullable/data/",
"test/extensions/data/",
"test/id_testing/data/",
"test/language_versioning/data/",
"test/patching/data",
"test/predicates/data",
"test/static_types/data/",
"test/text_representation/data/"
]
}
}