aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/scripts/util/propscheck.py37
-rw-r--r--etc/scripts/util/propschecktest.py44
-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.properties3
-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.properties4
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