diff options
-rw-r--r-- | etc/scripts/util/propscheck.py | 37 | ||||
-rw-r--r-- | etc/scripts/util/propschecktest.py | 44 | ||||
-rw-r--r-- | etc/scripts/util/test/cases/bad_compilers_exe.properties (renamed from etc/scripts/util/test/cases/bad_compilers.properties) | 0 | ||||
-rw-r--r-- | etc/scripts/util/test/cases/bad_compilers_exe_aliases.properties (renamed from etc/scripts/util/test/cases/bad_compilers_aliases.properties) | 0 | ||||
-rw-r--r-- | etc/scripts/util/test/cases/bad_compilers_exe_disabled.properties (renamed from etc/scripts/util/test/cases/bad_compilers_disabled.properties) | 0 | ||||
-rw-r--r-- | etc/scripts/util/test/cases/bad_compilers_id.properties (renamed from etc/scripts/util/test/cases/bad_compiler_ids.properties) | 0 | ||||
-rw-r--r-- | etc/scripts/util/test/cases/bad_formatters_exe.properties (renamed from etc/scripts/util/test/cases/bad_formatters.properties) | 0 | ||||
-rw-r--r-- | etc/scripts/util/test/cases/bad_formatters_id.properties | 3 | ||||
-rw-r--r-- | etc/scripts/util/test/cases/bad_tools_exe.properties (renamed from etc/scripts/util/test/cases/bad_tools.properties) | 0 | ||||
-rw-r--r-- | etc/scripts/util/test/cases/bad_tools_id.properties | 4 |
10 files changed, 54 insertions, 34 deletions
diff --git a/etc/scripts/util/propscheck.py b/etc/scripts/util/propscheck.py index dcbe3b47d..d4158d48e 100644 --- a/etc/scripts/util/propscheck.py +++ b/etc/scripts/util/propscheck.py @@ -37,11 +37,13 @@ TYPO_COMPILERS_RE = re.compile(r'compilers\..*') DEFAULT_COMPILER_RE = re.compile(r'defaultCompiler=(.*)') FORMATTERS_LIST_RE = re.compile(r'formatters=(.*)') FORMATTER_EXE_RE = re.compile(r'formatter\.(.*?)\.exe=(.*)') +FORMATTER_ID_RE = re.compile(r'formatter\.(.*?)\..*') LIBS_LIST_RE = re.compile(r'libs=(.+)') LIB_VERSIONS_LIST_RE = re.compile(r'libs\.(.*?)\.versions=(.*)') LIB_VERSION_RE = re.compile(r'libs\.(.*?)\.versions\.(.*?)\.version') TOOLS_LIST_RE = re.compile(r'tools=(.+)') TOOL_EXE_RE = re.compile(r'tools\.(.*?)\.exe=(.*)') +TOOL_ID_RE = re.compile(r'tools\.(.*?)\..*') EMPTY_LIST_RE = re.compile(r'.*(compilers|formatters|versions|tools|alias|exclude|libPath)=((.*::.*)|(:.*)|(.*:))$') DISABLED_RE = re.compile(r'^# Disabled?:?\s*(.*)') @@ -77,12 +79,15 @@ def process_file(file: str): listed_compilers = set() seen_compilers_exe = set() + seen_compilers_id = set() listed_formatters = set() - seen_formatters = set() + seen_formatters_exe = set() + seen_formatters_id = set() listed_tools = set() - seen_tools = set() + seen_tools_exe = set() + seen_tools_id = set() listed_libs_ids = set() seen_libs_ids = set() @@ -100,7 +105,6 @@ def process_file(file: str): suspicious_path = set() - seen_compilers_id = set() seen_typo_compilers = set() # By default, consider this one valid as it's in several configs. @@ -159,15 +163,18 @@ def process_file(file: str): if m and not m.group(2).startswith('/opt/compiler-explorer'): suspicious_path.add(m.group(2)) - m = match_and_add(line, FORMATTER_EXE_RE, seen_formatters) + m = match_and_add(line, FORMATTER_EXE_RE, seen_formatters_exe) if m and not m.group(2).startswith('/opt/compiler-explorer'): suspicious_path.add(m.group(2)) - m = match_and_add(line, TOOL_EXE_RE, seen_tools) + m = match_and_add(line, TOOL_EXE_RE, seen_tools_exe) if m and not m.group(2).startswith('/opt/compiler-explorer'): suspicious_path.add(m.group(2)) match_and_add(line, COMPILER_ID_RE, seen_compilers_id) + match_and_add(line, TOOL_ID_RE, seen_tools_id) + match_and_add(line, FORMATTER_ID_RE, seen_formatters_id) + match = TYPO_COMPILERS_RE.match(line.text) if match is not None: seen_typo_compilers.add(str(line)) @@ -177,23 +184,27 @@ def process_file(file: str): match_and_update(line, TOOLS_LIST_RE, listed_tools) match_and_update(line, LIBS_LIST_RE, listed_libs_ids) - bad_compilers = listed_compilers.symmetric_difference(seen_compilers_exe) - bad_compiler_ids = listed_compilers.symmetric_difference(seen_compilers_id) + bad_compilers_exe = listed_compilers.symmetric_difference(seen_compilers_exe) + bad_compilers_ids = listed_compilers.symmetric_difference(seen_compilers_id) bad_groups = listed_groups.symmetric_difference(seen_groups) - bad_formatters = listed_formatters.symmetric_difference(seen_formatters) + bad_formatters_exe = listed_formatters.symmetric_difference(seen_formatters_exe) + bad_formatters_id = listed_formatters.symmetric_difference(seen_formatters_id) bad_libs_ids = listed_libs_ids.symmetric_difference(seen_libs_ids) bad_libs_versions = listed_libs_versions.symmetric_difference(seen_libs_versions) - bad_tools = listed_tools.symmetric_difference(seen_tools) + bad_tools_exe = listed_tools.symmetric_difference(seen_tools_exe) + bad_tools_id = listed_tools.symmetric_difference(seen_tools_id) bad_default = default_compiler - listed_compilers return { "filename": file, - "bad_compilers": bad_compilers - disabled, - "bad_compiler_ids": bad_compiler_ids - disabled, + "bad_compilers_exe": bad_compilers_exe - disabled, + "bad_compilers_id": bad_compilers_ids - disabled, "bad_groups": bad_groups - disabled, - "bad_formatters": bad_formatters - disabled, + "bad_formatters_exe": bad_formatters_exe - disabled, + "bad_formatters_id": bad_formatters_id - disabled, "bad_libs_ids": bad_libs_ids - disabled, "bad_libs_versions": bad_libs_versions - disabled, - "bad_tools": bad_tools - disabled, + "bad_tools_exe": bad_tools_exe - disabled, + "bad_tools_id": bad_tools_id - disabled, "bad_default": bad_default, "empty_separators": empty_separators, "duplicate_lines": duplicate_lines, diff --git a/etc/scripts/util/propschecktest.py b/etc/scripts/util/propschecktest.py index cd9b14e31..0371755af 100644 --- a/etc/scripts/util/propschecktest.py +++ b/etc/scripts/util/propschecktest.py @@ -16,20 +16,26 @@ class PropsCheckTests(unittest.TestCase): result = process_file(test_case_file) self.assertEqual(result[expected_key], expected_contents) - def test_bad_compilers(self): - self.run_test("bad_compilers", "bad_compilers", {"b"}) + def test_bad_compilers_exe(self): + self.run_test("bad_compilers_exe", "bad_compilers_exe", {"b"}) - def test_bad_compilers_alias(self): - self.run_test("bad_compilers_aliases", "bad_compilers", {"c"}) + def test_bad_compilers_exe_alias(self): + self.run_test("bad_compilers_exe_aliases", "bad_compilers_exe", {"c"}) - def test_bad_compilers_disabled(self): - self.run_test("bad_compilers_disabled", "bad_compilers", set()) + def test_bad_compilers_exe_disabled(self): + self.run_test("bad_compilers_exe_disabled", "bad_compilers_exe", set()) + + def test_bad_compilers_id(self): + self.run_test("bad_compilers_id", "bad_compilers_id", {"bb"}) def test_bad_groups(self): self.run_test("bad_groups", "bad_groups", {"b"}) - def test_bad_formatters(self): - self.run_test("bad_formatters", "bad_formatters", {"b"}) + def test_bad_formatters_exe(self): + self.run_test("bad_formatters_exe", "bad_formatters_exe", {"b"}) + + def test_bad_formatters_id(self): + self.run_test("bad_formatters_id", "bad_formatters_id", {"aa"}) def test_bad_libs_ids(self): self.run_test("bad_libs_ids", "bad_libs_ids", {"b"}) @@ -38,8 +44,11 @@ class PropsCheckTests(unittest.TestCase): def test_bad_libs_versions(self): self.run_test("bad_libs_versions", "bad_libs_versions", {"a a2"}) - def test_bad_tools(self): - self.run_test("bad_tools", "bad_tools", {"b"}) + def test_bad_tools_exe(self): + self.run_test("bad_tools_exe", "bad_tools_exe", {"b"}) + + def test_bad_tools_id(self): + self.run_test("bad_tools_id", "bad_tools_id", {"aa"}) def test_bad_default(self): self.run_test("bad_default", "bad_default", {"b"}) @@ -58,20 +67,16 @@ class PropsCheckTests(unittest.TestCase): }) def test_duplicate_lines(self): - self.run_test("duplicate_lines", "duplicate_lines", - {sline(5, "duplicated.prop=true")}) + self.run_test("duplicate_lines", "duplicate_lines", {sline(5, "duplicated.prop=true")}) def test_duplicated_compiler(self): - self.run_test("bad_duplicated_compiler", "duplicated_compiler_references", - {"duplicatedname"}) + self.run_test("bad_duplicated_compiler", "duplicated_compiler_references", {"duplicatedname"}) def test_duplicated_group(self): - self.run_test("bad_duplicated_group", "duplicated_group_references", - {"dupgroup"}) + self.run_test("bad_duplicated_group", "duplicated_group_references", {"dupgroup"}) def test_suspicious_path(self): - self.run_test("suspicious_path", "suspicious_path", - {"/wrong/path/bin/gcc"}) + self.run_test("suspicious_path", "suspicious_path", {"/wrong/path/bin/gcc"}) def test_good_file(self): base_path = os.path.dirname(os.path.abspath(sys.argv[0])) @@ -81,9 +86,6 @@ class PropsCheckTests(unittest.TestCase): if k != "filename": self.assertEqual(result[k], set(), f"{k} has output in known good file") - def test_bad_compiler_ids(self): - self.run_test("bad_compiler_ids", "bad_compiler_ids", {"bb"}) - def test_typo_compilers(self): self.run_test("typo_compilers", "typo_compilers", {sline(3, 'compilers.a.name=A')}) diff --git a/etc/scripts/util/test/cases/bad_compilers.properties b/etc/scripts/util/test/cases/bad_compilers_exe.properties index 4787b3a36..4787b3a36 100644 --- a/etc/scripts/util/test/cases/bad_compilers.properties +++ b/etc/scripts/util/test/cases/bad_compilers_exe.properties diff --git a/etc/scripts/util/test/cases/bad_compilers_aliases.properties b/etc/scripts/util/test/cases/bad_compilers_exe_aliases.properties index 8b3d0b381..8b3d0b381 100644 --- a/etc/scripts/util/test/cases/bad_compilers_aliases.properties +++ b/etc/scripts/util/test/cases/bad_compilers_exe_aliases.properties diff --git a/etc/scripts/util/test/cases/bad_compilers_disabled.properties b/etc/scripts/util/test/cases/bad_compilers_exe_disabled.properties index adc6257fb..adc6257fb 100644 --- a/etc/scripts/util/test/cases/bad_compilers_disabled.properties +++ b/etc/scripts/util/test/cases/bad_compilers_exe_disabled.properties diff --git a/etc/scripts/util/test/cases/bad_compiler_ids.properties b/etc/scripts/util/test/cases/bad_compilers_id.properties index b96010736..b96010736 100644 --- a/etc/scripts/util/test/cases/bad_compiler_ids.properties +++ b/etc/scripts/util/test/cases/bad_compilers_id.properties diff --git a/etc/scripts/util/test/cases/bad_formatters.properties b/etc/scripts/util/test/cases/bad_formatters_exe.properties index 3b952926c..3b952926c 100644 --- a/etc/scripts/util/test/cases/bad_formatters.properties +++ b/etc/scripts/util/test/cases/bad_formatters_exe.properties diff --git a/etc/scripts/util/test/cases/bad_formatters_id.properties b/etc/scripts/util/test/cases/bad_formatters_id.properties new file mode 100644 index 000000000..602cb0b77 --- /dev/null +++ b/etc/scripts/util/test/cases/bad_formatters_id.properties @@ -0,0 +1,3 @@ +formatters=a +formatter.a.exe=/dev/null +formatter.aa.name=A diff --git a/etc/scripts/util/test/cases/bad_tools.properties b/etc/scripts/util/test/cases/bad_tools_exe.properties index a00c5e452..a00c5e452 100644 --- a/etc/scripts/util/test/cases/bad_tools.properties +++ b/etc/scripts/util/test/cases/bad_tools_exe.properties diff --git a/etc/scripts/util/test/cases/bad_tools_id.properties b/etc/scripts/util/test/cases/bad_tools_id.properties new file mode 100644 index 000000000..688e95455 --- /dev/null +++ b/etc/scripts/util/test/cases/bad_tools_id.properties @@ -0,0 +1,4 @@ +tools=a + +tools.a.exe=/dev/null +tools.aa.name=A |