aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/test.schema.json3
-rwxr-xr-xrun_project_tests.py7
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]