diff options
-rw-r--r-- | data/test.schema.json | 3 | ||||
-rwxr-xr-x | run_project_tests.py | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/data/test.schema.json b/data/test.schema.json index b5f6aba..6f6a193 100644 --- a/data/test.schema.json +++ b/data/test.schema.json @@ -33,7 +33,8 @@ "py_implib", "py_limited_implib", "implibempty", - "expr" + "expr", + "link" ] }, "platform": { diff --git a/run_project_tests.py b/run_project_tests.py index 78fa89c..7413c68 100755 --- a/run_project_tests.py +++ b/run_project_tests.py @@ -199,7 +199,7 @@ class InstalledFile: return None if self.typ == 'python_bytecode': return p.parent / importlib.util.cache_from_source(p.name) - elif self.typ in {'file', 'dir'}: + elif self.typ in {'file', 'dir', 'link'}: return p elif self.typ == 'shared_lib': if env.machines.host.is_windows() or env.machines.host.is_cygwin(): @@ -263,6 +263,11 @@ class InstalledFile: if not abs_p.is_dir(): raise RuntimeError(f'{p} is not a directory') return [x.relative_to(installdir) for x in abs_p.rglob('*') if x.is_file() or x.is_symlink()] + elif self.typ == 'link': + abs_p = installdir / p + if not abs_p.is_symlink(): + raise RuntimeError(f'{p} is not a symlink') + return [p] else: return [p] |