diff --git a/tests/tests-u-runner/runner/chapters.py b/tests/tests-u-runner/runner/chapters.py new file mode 100644 index 0000000000000000000000000000000000000000..52b1dcb32ed6772ba24f271e8536c6c75b65b5d4 --- /dev/null +++ b/tests/tests-u-runner/runner/chapters.py @@ -0,0 +1,111 @@ +import logging +from dataclasses import dataclass +from typing import Optional, Dict, Any, Union, List + +from runner.logger import Log +from runner.options.yaml_document import YamlDocument + +_LOGGER = logging.getLogger("runner.chapters") + + +@dataclass +class Chapter: + name: str + includes: List[str] + excludes: List[str] + + +Chapters = Dict[str, Chapter] + + +class IncorrectFileFormatChapterException(Exception): + def __init__(self, chapters_name: str): + message = f"Incorrect file format: {chapters_name}" + Exception.__init__(self, message) + + +class CyclicDependencyChapterException(Exception): + def __init__(self, item: str): + message = f"Cyclic dependency: {item}" + Exception.__init__(self, message) + + +def __validate_cycles(chapters: Chapters): + """ + :param chapters: list (dictionary) of chapters, key is a chapter name + :raise: CyclicDependencyChapterException if a cyclic dependency found + Normal finish means that no cycle found + """ + seen_chapters: List[str] = [] + for name, chapter in chapters.items(): + seen_chapters.append(name) + __check_cycle(chapter, chapters, seen_chapters) + seen_chapters.pop() + + +def __check_cycle(chapter: Chapter, all_chapters: Chapters, seen_chapters: List[str]): + """ + Checks if items contains any name from seen + :param chapter: investigated chapter + :param all_chapters: array of all chapters + :param seen_chapters: array of seen items' names + :raise: CyclicDependencyChapterException if a name of nested chapter is in seen names + Normal finish means that no cycle found + """ + for item in chapter.includes + chapter.excludes: + if item not in all_chapters.keys(): + continue + if item in seen_chapters: + Log.exception_and_raise(_LOGGER, item, CyclicDependencyChapterException) + seen_chapters.append(item) + __check_cycle(all_chapters[item], all_chapters, seen_chapters) + seen_chapters.pop() + + +def __parse(chapters_file: str) -> Chapters: + result: Chapters = {} + YamlDocument.setup(chapters_file) + conf = YamlDocument.document() + yaml_header: Optional[Dict[str, Any]] = conf + if not yaml_header or not isinstance(yaml_header, dict): + Log.exception_and_raise(_LOGGER, chapters_file, IncorrectFileFormatChapterException) + yaml_chapters: Optional[Dict[str, List[str]]] = yaml_header.get('chapters') + if not yaml_chapters or not isinstance(yaml_chapters, list): + Log.exception_and_raise(_LOGGER, chapters_file, IncorrectFileFormatChapterException) + for yaml_chapter in yaml_chapters: + if not isinstance(yaml_chapter, dict): + Log.exception_and_raise(_LOGGER, chapters_file, IncorrectFileFormatChapterException) + for yaml_name, yaml_items in yaml_chapter.items(): + try: + chapter = __parse_chapter(yaml_name, yaml_items) + except IncorrectFileFormatChapterException as _: + Log.exception_and_raise(_LOGGER, chapters_file, IncorrectFileFormatChapterException) + if chapter.name in result: + Log.exception_and_raise( + _LOGGER, + f"Chapter '{chapter.name}' already used", + IncorrectFileFormatChapterException) + result[chapter.name] = chapter + return result + + +def __parse_chapter(name: str, yaml_items: List[Union[str, Dict[str, str]]]) -> Chapter: + if not isinstance(yaml_items, list): + Log.exception_and_raise(_LOGGER, "Incorrect file format", IncorrectFileFormatChapterException) + includes: List[str] = [] + excludes: List[str] = [] + for yaml_item in yaml_items: + if isinstance(yaml_item, str): + includes.append(yaml_item.strip()) + elif isinstance(yaml_item, dict): + for sub_name, sub_items in yaml_item.items(): + if sub_name == 'exclude' and isinstance(sub_items, list): + excludes.extend(sub_items) + + return Chapter(name, includes, excludes) + + +def parse_chapters(chapters_file: str) -> Chapters: + chapters = __parse(chapters_file) + __validate_cycles(chapters) + return chapters diff --git a/tests/tests-u-runner/runner/options/cli_options.py b/tests/tests-u-runner/runner/options/cli_options.py index fe3ff6fa7f8f514b79bd77a29067ff539523ac05..a413230b6758b87013309b8d41c3cec1df4d5480 100644 --- a/tests/tests-u-runner/runner/options/cli_options.py +++ b/tests/tests-u-runner/runner/options/cli_options.py @@ -112,6 +112,17 @@ def get_args(): # pylint: disable=too-many-statements help='run tests only of specified group number. Used only if --groups is set. ' 'Default value 1 - the first available group. ' 'If the value is more than the total number of groups the latest group is taken.') + test_groups.add_argument( + '--chapter', action='append', dest='chapters', + type=str, + default=None, + help='run tests only of specified chapter. Can be specified several times.') + test_groups.add_argument( + '--chapters-file', action='store', dest='chapters_file', + type=is_file, + default=None, + help='Full name to the file with chapter description. ' + 'By default chapters.yaml file located along with test lists.') # Configuration parser.add_argument( diff --git a/tests/tests-u-runner/runner/options/options_groups.py b/tests/tests-u-runner/runner/options/options_groups.py index a664664cd2b8de7cd07282a7170fc1b246b88978..4c102fcb8ce929c386cfe59fb67641d8a67e0a36 100644 --- a/tests/tests-u-runner/runner/options/options_groups.py +++ b/tests/tests-u-runner/runner/options/options_groups.py @@ -1,6 +1,6 @@ from dataclasses import dataclass from functools import cached_property -from typing import Dict +from typing import Dict, List from runner.options.decorator_value import value, _to_str, _to_int @@ -16,7 +16,9 @@ class GroupsOptions: def to_dict(self) -> Dict[str, object]: return { "quantity": self.quantity, - "number": self.number + "number": self.number, + "chapters": self.chapters, + "chapters-file": self.chapters_file } @cached_property @@ -35,3 +37,13 @@ class GroupsOptions: f'--group-number={self.number}' if self.number != GroupsOptions.__DEFAULT_GROUP_NUMBER else '' ] return ' '.join(options) + + @cached_property + @value(yaml_path="test-lists.groups.chapters", cli_name="chapters") + def chapters(self) -> List[str]: + return [] + + @cached_property + @value(yaml_path="test-lists.groups.chapters-file", cli_name="chapters_file") + def chapters_file(self) -> str: + return "chapters.yaml" diff --git a/tests/tests-u-runner/runner/options/yaml_document.py b/tests/tests-u-runner/runner/options/yaml_document.py index 238b7c036ce87eb1322bd14620b5b083b111ffa4..45918d47937629866683166a01137883b91a949c 100644 --- a/tests/tests-u-runner/runner/options/yaml_document.py +++ b/tests/tests-u-runner/runner/options/yaml_document.py @@ -16,6 +16,10 @@ class YamlDocument: def setup(config_path: Optional[str]): YamlDocument._document = YamlDocument.load(config_path) + @staticmethod + def document() -> Optional[Dict[str, Any]]: + return YamlDocument._document + @staticmethod def load(config_path: Optional[str]) -> Dict[str, Any]: config_from_file = {} diff --git a/tests/tests-u-runner/runner/plugins/ets/ets_test_suite.py b/tests/tests-u-runner/runner/plugins/ets/ets_test_suite.py index f532ea7146c5d00fcc52efc8e83a1c436d62ce4a..98fca8cca88fc4f747bd7b9af48058ff2b43f763 100644 --- a/tests/tests-u-runner/runner/plugins/ets/ets_test_suite.py +++ b/tests/tests-u-runner/runner/plugins/ets/ets_test_suite.py @@ -22,9 +22,10 @@ _LOGGER = logging.getLogger("runner.plugins.ets.ets_test_suite") class EtsTestSuite(ABC): - def __init__(self, config: Config, work_dir: WorkDir, suite_name: str) -> None: + def __init__(self, config: Config, work_dir: WorkDir, suite_name: str, default_list_root: str) -> None: self.__suite_name = suite_name self.__work_dir = work_dir + self.__default_list_root = Path(default_list_root, self.__suite_name) self._list_root = config.general.list_root self.config = config @@ -51,10 +52,9 @@ class EtsTestSuite(ABC): def test_root(self) -> Path: return self.__work_dir.gen - @property - @abstractmethod + @cached_property def list_root(self) -> Path: - pass + return Path(self._list_root) if self._list_root else self.__default_list_root @abstractmethod def set_preparation_steps(self) -> None: @@ -81,15 +81,11 @@ class EtsTestSuite(ABC): class RuntimeEtsTestSuite(EtsTestSuite): - def __init__(self, config: Config, work_dir: WorkDir): - super().__init__(config, work_dir, EtsSuites.RUNTIME.value) + def __init__(self, config: Config, work_dir: WorkDir, default_list_root: str): + super().__init__(config, work_dir, EtsSuites.RUNTIME.value, default_list_root) self.__default_test_dir = RuntimeDefaultEtsTestDir(config.general.panda_source_root, config.general.test_root) self.set_preparation_steps() - @cached_property - def list_root(self) -> Path: - return Path(self._list_root) if self._list_root else self.__default_test_dir.es2panda_test - def set_preparation_steps(self) -> None: self._preparation_steps.append(CopyStep( test_source_path=self.__default_test_dir.root, @@ -106,8 +102,8 @@ class RuntimeEtsTestSuite(EtsTestSuite): class GCStressEtsTestSuite(EtsTestSuite): - def __init__(self, config: Config, work_dir: WorkDir): - super().__init__(config, work_dir, EtsSuites.GCSTRESS.value) + def __init__(self, config: Config, work_dir: WorkDir, default_list_root: str): + super().__init__(config, work_dir, EtsSuites.GCSTRESS.value, default_list_root) self._ets_test_dir = EtsTestDir(config.general.panda_source_root, config.general.test_root) self.set_preparation_steps() @@ -131,8 +127,8 @@ class GCStressEtsTestSuite(EtsTestSuite): class CtsEtsTestSuite(EtsTestSuite): - def __init__(self, config: Config, work_dir: WorkDir): - super().__init__(config, work_dir, EtsSuites.CTS.value) + def __init__(self, config: Config, work_dir: WorkDir, default_list_root: str): + super().__init__(config, work_dir, EtsSuites.CTS.value, default_list_root) self._ets_test_dir = EtsTestDir(config.general.panda_source_root, config.general.test_root) self.set_preparation_steps() @@ -150,14 +146,10 @@ class CtsEtsTestSuite(EtsTestSuite): num_repeats=self._jit.num_repeats )) - @cached_property - def list_root(self) -> Path: - return Path(self._list_root) if self._list_root else Path(__file__).parent - class FuncEtsTestSuite(EtsTestSuite): - def __init__(self, config: Config, work_dir: WorkDir): - super().__init__(config, work_dir, EtsSuites.FUNC.value) + def __init__(self, config: Config, work_dir: WorkDir, default_list_root: str): + super().__init__(config, work_dir, EtsSuites.FUNC.value, default_list_root) self._ets_test_dir = EtsTestDir(config.general.panda_source_root, config.general.test_root) self.set_preparation_steps() @@ -179,7 +171,3 @@ class FuncEtsTestSuite(EtsTestSuite): config=self.config, num_repeats=self._jit.num_repeats )) - - @cached_property - def list_root(self) -> Path: - return Path(self._list_root) if self._list_root else Path(__file__).parent diff --git a/tests/tests-u-runner/runner/plugins/ets/runner_ets.py b/tests/tests-u-runner/runner/plugins/ets/runner_ets.py index 4b00734bd1023f97fe81d72b17b8bd26db595384..b44cf473a00706eadef9191a26e7618edc17d2ac 100644 --- a/tests/tests-u-runner/runner/plugins/ets/runner_ets.py +++ b/tests/tests-u-runner/runner/plugins/ets/runner_ets.py @@ -44,7 +44,7 @@ class RunnerETS(RunnerFileBased): self.aot_args.extend(load_runtime_ets) test_suite_class = EtsTestSuite.get_class(self.__ets_suite_name) - test_suite = test_suite_class(self.config, self.work_dir) + test_suite = test_suite_class(self.config, self.work_dir, self.default_list_root) test_suite.process(self.config.ets.force_generate) self.test_root, self.list_root = test_suite.test_root, test_suite.list_root diff --git a/tests/tests-u-runner/runner/plugins/hermes/runner_js_hermes.py b/tests/tests-u-runner/runner/plugins/hermes/runner_js_hermes.py index 9c7b7131de1f014bff07d0947951dd699129ee30..b5612f83f4f1e366d02705970443ab95100c68ad 100644 --- a/tests/tests-u-runner/runner/plugins/hermes/runner_js_hermes.py +++ b/tests/tests-u-runner/runner/plugins/hermes/runner_js_hermes.py @@ -16,7 +16,7 @@ class RunnerJSHermes(RunnerJS): def __init__(self, config: Config): RunnerJS.__init__(self, config, "hermes") - self.list_root = path.dirname(__file__) if self.list_root is None else self.list_root + self.list_root = self.list_root if self.list_root else path.join(self.default_list_root, self.name) Log.all(_LOGGER, f"LIST_ROOT set to {self.list_root}") self.collect_excluded_test_lists() self.collect_ignored_test_lists() diff --git a/tests/tests-u-runner/runner/plugins/parser/runner_js_parser.py b/tests/tests-u-runner/runner/plugins/parser/runner_js_parser.py index 87663cddaf3e1cb4ee25da1d40199ba708d95d91..a70d0b6442da5ec909f21edc93d0188f5527a37d 100644 --- a/tests/tests-u-runner/runner/plugins/parser/runner_js_parser.py +++ b/tests/tests-u-runner/runner/plugins/parser/runner_js_parser.py @@ -17,7 +17,7 @@ class RunnerJSParser(RunnerJS): es2panda_test = path.join(config.general.panda_source_root, "tools", "es2panda", "test") - self.list_root = es2panda_test if self.list_root is None else self.list_root + self.list_root = self.list_root if self.list_root else path.join(self.default_list_root, self.name) Log.summary(_LOGGER, f"LIST_ROOT set to {self.list_root}") self.test_root = es2panda_test if self.test_root is None else self.test_root diff --git a/tests/tests-u-runner/runner/plugins/test262/runner_js_test262.py b/tests/tests-u-runner/runner/plugins/test262/runner_js_test262.py index c7c391ba48da456fcb91f4b459809987b2f1cbe7..a9eea5ba69768c31f5d64fc3e95372a04ed9dc86 100644 --- a/tests/tests-u-runner/runner/plugins/test262/runner_js_test262.py +++ b/tests/tests-u-runner/runner/plugins/test262/runner_js_test262.py @@ -14,10 +14,10 @@ _LOGGER = logging.getLogger("runner.plugins.test262.runner_js_test262") class RunnerJSTest262(RunnerJS): def __init__(self, config: Config): - RunnerJS.__init__(self, config, "test262-ark") + RunnerJS.__init__(self, config, "test262") self.ignored_name_prefix = "test262" - self.list_root = path.dirname(__file__) if self.list_root is None else self.list_root + self.list_root = self.list_root if self.list_root else path.join(self.default_list_root, self.name) Log.summary(_LOGGER, f"LIST_ROOT set to {self.list_root}") self.collect_excluded_test_lists(test_name=self.ignored_name_prefix) @@ -26,7 +26,7 @@ class RunnerJSTest262(RunnerJS): self.util = UtilTest262(config=self.config, work_dir=self.work_dir) self.test_root = self.util.generate( - harness_path=path.join(self.list_root, "test262harness.js"), + harness_path=path.join(path.dirname(__file__), "test262harness.js"), ) Log.summary(_LOGGER, f"TEST_ROOT reset to {self.test_root}") self.test_env.util = self.util diff --git a/tests/tests-u-runner/runner/runner_base.py b/tests/tests-u-runner/runner/runner_base.py index 2320b626dc382b2c34337be9346919048f646c25..8da7977e165c91366179af05343170e47d1995ef 100644 --- a/tests/tests-u-runner/runner/runner_base.py +++ b/tests/tests-u-runner/runner/runner_base.py @@ -8,10 +8,11 @@ from datetime import datetime from glob import glob from itertools import chain from os import path -from typing import List, Set +from typing import List, Set, Tuple from tqdm import tqdm +from runner.chapters import parse_chapters from runner.enum_types.configuration_kind import ConfigurationKind from runner.plugins.ets.test_ets import TestETS from runner.logger import Log @@ -77,7 +78,12 @@ _LOGGER = logging.getLogger("runner.runner_base") class Runner(ABC): - def __init__(self, config: Config, name): + def __init__(self, config: Config, name: str): + # This file is expected to be located at path: + # $PANDA_SOURCE/tests/tests-u-runner/runner/runner_base.py + current_folder_parent = path.dirname(path.dirname(path.abspath(__file__))) + self.panda_source_root = path.dirname(path.dirname(current_folder_parent)) + # TODO(vpukhov): adjust es2panda path default_ets_arktsconfig = path.join( config.general.build, @@ -99,6 +105,7 @@ class Runner(ABC): # directory where list files (files with list of ignored, excluded, and other tests) are located # it's either set explicitly to the absolute value or # the current folder (where this python file is located!) parent + self.default_list_root = path.join(self.panda_source_root, "tests", "tests-u-runner", "test-lists") self.list_root = config.general.list_root if config.general.list_root is not None else None if self.list_root is not None: Log.summary(_LOGGER, f"LIST_ROOT set to {self.list_root}") @@ -112,7 +119,7 @@ class Runner(ABC): else default_ets_arktsconfig self.config = config - self.name = name + self.name: str = name # Lists: # excluded test is a test what should not be loaded and should be tried to run @@ -225,6 +232,7 @@ class Runner(ABC): # Browse the directory, search for files with the specified extension # and add them as tests + # pylint: disable=too-many-locals def add_directory(self, directory, extension, flags): Log.summary(_LOGGER, f"Loading tests from the directory {directory}") test_files = [] @@ -236,20 +244,39 @@ class Runner(ABC): if not self.config.test_lists.skip_test_lists: self.load_excluded_tests() self.load_ignored_tests() + excluded: List[str] = list(self.excluded_tests)[:] if len(test_files) == 0: glob_expression = path.join(directory, f"**/*.{extension}") - test_files.extend(fnmatch.filter( - glob(glob_expression, recursive=True), - path.join(directory, self.config.test_lists.filter) - )) - - without_excluded = [test for test in test_files - if self.update_excluded or test not in self.excluded_tests] + includes, excludes = self.__parse_chapters() + for inc in includes: + mask = path.join(directory, inc) + if path.isfile(mask): + test_files.append(mask) + continue + if not mask.endswith('/*'): + mask += '/*' + test_files.extend(fnmatch.filter( + glob(glob_expression, recursive=True), + mask + )) + for exc in excludes: + mask = path.join(directory, exc) + if path.isfile(mask): + excluded.append(mask) + continue + if not mask.endswith('/*'): + mask += '/*' + excluded.extend(fnmatch.filter( + glob(glob_expression, recursive=True), + mask + )) + test_files = [test for test in test_files + if self.update_excluded or test not in excluded] self._search_both_excluded_and_ignored_tests() - self._search_not_used_ignored(without_excluded) + self._search_not_used_ignored(test_files) - all_tests = {self.create_test(test, flags, test in self.ignored_tests) for test in without_excluded} + all_tests = {self.create_test(test, flags, test in self.ignored_tests) for test in test_files} not_tests = {t for t in all_tests if isinstance(t, TestETS) and not t.is_valid_test} valid_tests = all_tests - not_tests @@ -265,6 +292,28 @@ class Runner(ABC): self.tests.update(valid_tests) Log.all(_LOGGER, f"Loaded {len(self.tests)} tests") + def __parse_chapters(self) -> Tuple[List[str], List[str]]: + if not self.config.test_lists.groups.chapters: + return [self.config.test_lists.filter], [] + if path.isfile(self.config.test_lists.groups.chapters_file): + chapters = parse_chapters(self.config.test_lists.groups.chapters_file) + else: + corrected_chapters_file = correct_path(self.list_root, self.config.test_lists.groups.chapters_file) + if path.isfile(corrected_chapters_file): + chapters = parse_chapters(corrected_chapters_file) + else: + Log.exception_and_raise( + _LOGGER, + f"Not found either '{self.config.test_lists.groups.chapters_file}' or " + f"'{corrected_chapters_file}'", FileNotFoundError) + __includes: List[str] = [] + __excludes: List[str] = [] + for chapter in self.config.test_lists.groups.chapters: + if chapter in chapters: + __includes.extend(chapters[chapter].includes) + __excludes.extend(chapters[chapter].excludes) + return __includes, __excludes + def _search_both_excluded_and_ignored_tests(self): already_excluded = [test for test in self.ignored_tests if test in self.excluded_tests] if not already_excluded: diff --git a/tests/tests-u-runner/runner/runner_js.py b/tests/tests-u-runner/runner/runner_js.py index 299cd620e91009021d46dff5bd54daece378c992..edfbd55535e78d1596a40181e3bab451edb24e20 100644 --- a/tests/tests-u-runner/runner/runner_js.py +++ b/tests/tests-u-runner/runner/runner_js.py @@ -11,7 +11,7 @@ _LOGGER = logging.getLogger("runner.runner_js") class RunnerJS(RunnerFileBased): - def __init__(self, config: Config, name): + def __init__(self, config: Config, name: str): RunnerFileBased.__init__(self, config, name) ecmastdlib_abc: str = f"{self.build_dir}/pandastdlib/arkstdlib.abc" if not path.exists(ecmastdlib_abc): diff --git a/tests/tests-u-runner/test-lists/ets-cts/chapters.yaml b/tests/tests-u-runner/test-lists/ets-cts/chapters.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8bb6498994d264017ed971d0c6ae58e2e79baf6e --- /dev/null +++ b/tests/tests-u-runner/test-lists/ets-cts/chapters.yaml @@ -0,0 +1,66 @@ +chapters: + - all: + - 02.lexical_elements + - 03.types + - 04.names_declarations_and_scopes + - 05.generics + - 06.conversions_and_contexts + - 07.expressions + - 08.statements + - 09.classes + - 10.interfaces + - 11.enumerations + - 12.errors + - 13.modules_and_compilation_units + - 14.semantic_rules + - 17.experimental_features + + # One folder - one chapter + - chapter02: + - 02.lexical_elements + - chapter03: + - 03.types + - chapter04: + - 04.names_declarations_and_scopes + - chapter05: + - 05.generics + - chapter06: + - 06.conversions_and_contexts + - chapter07: + - 07.expressions + - chapter08: + - 08.statements + - chapter09: + - 09.classes + - chapter10: + - 10.interfaces + - chapter11: + - 11.enumerations + - chapter12: + - 12.errors + - chapter13: + - 13.modules_and_compilation_units + - chapter14: + - 14.semantic_rules + - chapter17: + - 17.experimental_features + + # chapters by several folders + - chapters02-05: + - 02.lexical_elements + - 03.types + - 04.names_declarations_and_scopes + - 05.generics + - chapters06-09: + - 06.conversions_and_contexts + - 07.expressions + - 08.statements + - 09.classes + - chapters10-12: + - 10.interfaces + - 11.enumerations + - 12.errors + - chapters13-17: + - 13.modules_and_compilation_units + - 14.semantic_rules + - 17.experimental_features diff --git a/tests/tests-u-runner/runner/plugins/ets/ets-cts-excluded-JIT-REPEATS.txt b/tests/tests-u-runner/test-lists/ets-cts/ets-cts-excluded-JIT-REPEATS.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/ets/ets-cts-excluded-JIT-REPEATS.txt rename to tests/tests-u-runner/test-lists/ets-cts/ets-cts-excluded-JIT-REPEATS.txt diff --git a/tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-AMD64-AOT.txt b/tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-AMD64-AOT.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-AMD64-AOT.txt rename to tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-AMD64-AOT.txt diff --git a/tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-AMD64-OL0.txt b/tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-AMD64-OL0.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-AMD64-OL0.txt rename to tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-AMD64-OL0.txt diff --git a/tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-ARM64-AOT.txt b/tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-ARM64-AOT.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-ARM64-AOT.txt rename to tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-ARM64-AOT.txt diff --git a/tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-ARM64-OL0.txt b/tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-ARM64-OL0.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-ARM64-OL0.txt rename to tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-ARM64-OL0.txt diff --git a/tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-ASAN.txt b/tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-ASAN.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-ASAN.txt rename to tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-ASAN.txt diff --git a/tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-JIT-ASAN.txt b/tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-JIT-ASAN.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-JIT-ASAN.txt rename to tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-JIT-ASAN.txt diff --git a/tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-OL2.txt b/tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-OL2.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-OL2.txt rename to tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-OL2.txt diff --git a/tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-TSAN.txt b/tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-TSAN.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored-TSAN.txt rename to tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored-TSAN.txt diff --git a/tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored.txt b/tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/ets/ets-cts-ignored.txt rename to tests/tests-u-runner/test-lists/ets-cts/ets-cts-ignored.txt diff --git a/tests/tests-u-runner/runner/plugins/ets/ets-func-tests-excluded.txt b/tests/tests-u-runner/test-lists/ets-func-tests/ets-func-tests-excluded.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/ets/ets-func-tests-excluded.txt rename to tests/tests-u-runner/test-lists/ets-func-tests/ets-func-tests-excluded.txt diff --git a/tests/tests-u-runner/runner/plugins/ets/ets-func-tests-ignored-AOT.txt b/tests/tests-u-runner/test-lists/ets-func-tests/ets-func-tests-ignored-AOT.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/ets/ets-func-tests-ignored-AOT.txt rename to tests/tests-u-runner/test-lists/ets-func-tests/ets-func-tests-ignored-AOT.txt diff --git a/tests/tests-u-runner/runner/plugins/ets/ets-func-tests-ignored.txt b/tests/tests-u-runner/test-lists/ets-func-tests/ets-func-tests-ignored.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/ets/ets-func-tests-ignored.txt rename to tests/tests-u-runner/test-lists/ets-func-tests/ets-func-tests-ignored.txt diff --git a/tests/tests-u-runner/test-lists/ets-runtime/ets-runtime-excluded-JIT-REPEATS.txt b/tests/tests-u-runner/test-lists/ets-runtime/ets-runtime-excluded-JIT-REPEATS.txt new file mode 100644 index 0000000000000000000000000000000000000000..450be93ee8e36eb70b869ae139485d970cee4531 --- /dev/null +++ b/tests/tests-u-runner/test-lists/ets-runtime/ets-runtime-excluded-JIT-REPEATS.txt @@ -0,0 +1,4 @@ +# Tests should be redesigned to be used for JIT testing with repeats panda#11983 +# Failures at #FailKind.RUNTIME_TIMEOUT - with repeats: +StringBase64.ets # failed with timeout 600 sec +AccessBinaryTrees.ets diff --git a/tests/tests-u-runner/test-lists/ets-runtime/ets-runtime-ignored-ARM32-INT.txt b/tests/tests-u-runner/test-lists/ets-runtime/ets-runtime-ignored-ARM32-INT.txt new file mode 100644 index 0000000000000000000000000000000000000000..527faf24e2254c796078a11a3ab8ad6ddbe70af4 --- /dev/null +++ b/tests/tests-u-runner/test-lists/ets-runtime/ets-runtime-ignored-ARM32-INT.txt @@ -0,0 +1,12 @@ +# panda#11106 +LongLiteralLimits.ets + +# panda#11502 +nullCoalesc.ets + +# panda#11330 +ArrayLiteral.ets + +# test only for x64 +unboxing2_x64.ets + diff --git a/tests/tests-u-runner/test-lists/ets-runtime/ets-runtime-ignored.txt b/tests/tests-u-runner/test-lists/ets-runtime/ets-runtime-ignored.txt new file mode 100644 index 0000000000000000000000000000000000000000..8ca4924b095a39133a6b5a97f6ba1b85bff53c24 --- /dev/null +++ b/tests/tests-u-runner/test-lists/ets-runtime/ets-runtime-ignored.txt @@ -0,0 +1,36 @@ +# SyntaxError: Cannot find type 'Class'. +# panda#10421 +ClassNewInstance.ets + +# SyntaxError: Cannot find type 'HashMap'. +# panda#10422 +StringFasta.ets + +# SyntaxError: Cannot find type 'Class'. +# panda#10423 +generics_1.ets + +# panda#10623 +generic-set.ets + +# panda#11502 +nullCoalesc.ets + +# panda#11104 +unboxing.ets + +# panda#11326 +GenericsTest.ets + +# panda#11106 +LongLiteralLimits.ets + +# panda#11327 +objectEquality.ets + +# FailKind.ES2PANDA_FAIL +CastReference3.ets +conditionalExpressionGenericLUB.ets + +# Failed due to lambda captures +trailing-lambda-with-capture.ets \ No newline at end of file diff --git a/tests/tests-u-runner/runner/plugins/hermes/hermes-excluded-AOT-FULL.txt b/tests/tests-u-runner/test-lists/hermes/hermes-excluded-AOT-FULL.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/hermes/hermes-excluded-AOT-FULL.txt rename to tests/tests-u-runner/test-lists/hermes/hermes-excluded-AOT-FULL.txt diff --git a/tests/tests-u-runner/runner/plugins/hermes/hermes-excluded.txt b/tests/tests-u-runner/test-lists/hermes/hermes-excluded.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/hermes/hermes-excluded.txt rename to tests/tests-u-runner/test-lists/hermes/hermes-excluded.txt diff --git a/tests/tests-u-runner/runner/plugins/hermes/hermes-ignored-AOT-FULL.txt b/tests/tests-u-runner/test-lists/hermes/hermes-ignored-AOT-FULL.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/hermes/hermes-ignored-AOT-FULL.txt rename to tests/tests-u-runner/test-lists/hermes/hermes-ignored-AOT-FULL.txt diff --git a/tests/tests-u-runner/runner/plugins/hermes/hermes-ignored-AOT.txt b/tests/tests-u-runner/test-lists/hermes/hermes-ignored-AOT.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/hermes/hermes-ignored-AOT.txt rename to tests/tests-u-runner/test-lists/hermes/hermes-ignored-AOT.txt diff --git a/tests/tests-u-runner/runner/plugins/hermes/hermes-ignored-JIT-ASAN-repeats.txt b/tests/tests-u-runner/test-lists/hermes/hermes-ignored-JIT-ASAN-repeats.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/hermes/hermes-ignored-JIT-ASAN-repeats.txt rename to tests/tests-u-runner/test-lists/hermes/hermes-ignored-JIT-ASAN-repeats.txt diff --git a/tests/tests-u-runner/runner/plugins/hermes/hermes-ignored-JIT-REPEATS.txt b/tests/tests-u-runner/test-lists/hermes/hermes-ignored-JIT-REPEATS.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/hermes/hermes-ignored-JIT-REPEATS.txt rename to tests/tests-u-runner/test-lists/hermes/hermes-ignored-JIT-REPEATS.txt diff --git a/tests/tests-u-runner/runner/plugins/hermes/hermes-ignored-JIT.txt b/tests/tests-u-runner/test-lists/hermes/hermes-ignored-JIT.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/hermes/hermes-ignored-JIT.txt rename to tests/tests-u-runner/test-lists/hermes/hermes-ignored-JIT.txt diff --git a/tests/tests-u-runner/runner/plugins/hermes/hermes-ignored.txt b/tests/tests-u-runner/test-lists/hermes/hermes-ignored.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/hermes/hermes-ignored.txt rename to tests/tests-u-runner/test-lists/hermes/hermes-ignored.txt diff --git a/tests/tests-u-runner/runner/plugins/hermes/hermes_harness.py b/tests/tests-u-runner/test-lists/parser/parser-ets-ignored.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/hermes/hermes_harness.py rename to tests/tests-u-runner/test-lists/parser/parser-ets-ignored.txt diff --git a/tests/tests-u-runner/test-lists/parser/parser-js-ignored.txt b/tests/tests-u-runner/test-lists/parser/parser-js-ignored.txt new file mode 100644 index 0000000000000000000000000000000000000000..f8691f4193d3cfd3567e9bab643a0a4dccc548a9 --- /dev/null +++ b/tests/tests-u-runner/test-lists/parser/parser-js-ignored.txt @@ -0,0 +1,40 @@ +parser/ets/import_tests/modules/module.ets +parser/ets/import_tests/import_class_members_1.ets +parser/ets/import_tests/import_class_members_2.ets +parser/ets/import_tests/import_class_members_3.ets +parser/ets/import_tests/import_invalid_package.ets +parser/ets/import_tests/import_name_conflict_1.ets +parser/ets/import_tests/import_name_conflict_3.ets +parser/ets/import_tests/import_nested_class_1.ets +parser/ets/import_tests/import_nested_class_2.ets +parser/ets/import_tests/import_nested_class_3.ets +parser/ets/import_tests/import_separate_module.ets +parser/ets/import_tests/import_several_8.ets +parser/ets/import_tests/import_recursive.ets +parser/ets/import_tests/packages/recursive/subpackage/subpackage_module_1.ets +parser/ets/import_tests/packages/recursive/subpackage_module_1.ets + +# Disabled temporarily, because Local type declaration (class, struct, interface and enum) support is not yet implemented. +compiler/ets/identifierReference1.ets +compiler/ets/invalidInheritance2.ets +compiler/ets/identifierReference6.ets +compiler/ets/identifierReference7.ets +compiler/ets/identifierReference15.ets +compiler/ets/identifierReference16.ets +compiler/ets/invalidPrivateAccess5.ets +compiler/ets/invalidPrivateAccess6.ets +compiler/ets/staticInitializerInInnerClass.ets +parser/ets/StringFasta.ets +parser/ets/class_property_access.ets +parser/ets/named_types.ets + +# panda#11580 ([ETS front-end] Overriding issues) +compiler/ets/override3.ets +compiler/ets/override4.ets +compiler/ets/override5.ets + +# Disabled temporarily #11468 +parser/ets/null-coalesc-negative.ets + +# Lambda tests, disabled because crash during compiler +parser/ets/trailing_lambda_tests/trailing_lambda_define_lambda_in_body_capture_variable.ets diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-excluded.txt b/tests/tests-u-runner/test-lists/test262/test262-excluded.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-excluded.txt rename to tests/tests-u-runner/test-lists/test262/test262-excluded.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-AOT-ASAN.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-AOT-ASAN.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-AOT-ASAN.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-AOT-ASAN.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-AOT-FULL.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-AOT-FULL.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-AOT-FULL.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-AOT-FULL.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-AOT-TSAN.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-AOT-TSAN.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-AOT-TSAN.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-AOT-TSAN.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-AOT.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-AOT.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-AOT.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-AOT.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-ARM32-INT.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-ARM32-INT.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-ARM32-INT.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-ARM32-INT.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-INT-ASAN.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-INT-ASAN.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-INT-ASAN.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-INT-ASAN.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-INT-TSAN.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-INT-TSAN.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-INT-TSAN.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-INT-TSAN.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-INT.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-INT.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-INT.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-INT.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-IRTOC-ASAN.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-IRTOC-ASAN.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-IRTOC-ASAN.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-IRTOC-ASAN.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-IRTOC-TSAN.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-IRTOC-TSAN.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-IRTOC-TSAN.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-IRTOC-TSAN.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-IRTOC.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-IRTOC.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-IRTOC.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-IRTOC.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-JIT-ASAN-REPEATS.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-JIT-ASAN-REPEATS.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-JIT-ASAN-REPEATS.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-JIT-ASAN-REPEATS.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-JIT-REPEATS.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-JIT-REPEATS.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-JIT-REPEATS.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-JIT-REPEATS.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-JIT.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-JIT.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-JIT.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-JIT.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-LLVM-ASAN.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-LLVM-ASAN.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-LLVM-ASAN.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-LLVM-ASAN.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-LLVM-TSAN.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-LLVM-TSAN.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-LLVM-TSAN.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-LLVM-TSAN.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-ignored-LLVM.txt b/tests/tests-u-runner/test-lists/test262/test262-ignored-LLVM.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-ignored-LLVM.txt rename to tests/tests-u-runner/test-lists/test262/test262-ignored-LLVM.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262-long-excluded.txt b/tests/tests-u-runner/test-lists/test262/test262-long-excluded.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262-long-excluded.txt rename to tests/tests-u-runner/test-lists/test262/test262-long-excluded.txt diff --git a/tests/tests-u-runner/runner/plugins/test262/test262skiplist-bco.txt b/tests/tests-u-runner/test-lists/test262/test262skiplist-bco.txt similarity index 100% rename from tests/tests-u-runner/runner/plugins/test262/test262skiplist-bco.txt rename to tests/tests-u-runner/test-lists/test262/test262skiplist-bco.txt