summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2023-11-06 18:30:00 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2023-11-07 21:52:14 +0200
commit2ea284bac1dce5ac659aaaa68f4c36f6278ed340 (patch)
tree0645cf1b3fb145d12222209b947c552dd1c53b6c
parent686963f1c247442e01787a276879391aa64e41c2 (diff)
downloadmeson-2ea284bac1dce5ac659aaaa68f4c36f6278ed340.tar.gz
Prohibit symlinks in test data dir because they get mangled by setup.py.
-rwxr-xr-x[-rw-r--r--]run_format_tests.py8
-rwxr-xr-xrun_project_tests.py21
-rw-r--r--test cases/common/268 install functions and follow symlinks/foo/file1 (renamed from test cases/common/268 install functions and follow_symlinks/foo/file1)0
-rw-r--r--test cases/common/268 install functions and follow symlinks/meson.build (renamed from test cases/common/268 install functions and follow_symlinks/meson.build)0
-rw-r--r--test cases/common/268 install functions and follow symlinks/test.json (renamed from test cases/common/268 install functions and follow_symlinks/test.json)0
l---------test cases/common/268 install functions and follow_symlinks/foo/link11
l---------test cases/common/268 install functions and follow_symlinks/foo/link2.h1
-rw-r--r--[l---------]test cases/warning/9 meson.options/subprojects/no-warn/meson_options.txt2
8 files changed, 30 insertions, 3 deletions
diff --git a/run_format_tests.py b/run_format_tests.py
index 70fa1212e..ca3e715f2 100644..100755
--- a/run_format_tests.py
+++ b/run_format_tests.py
@@ -75,9 +75,17 @@ def check_format() -> None:
continue
check_file(root / file)
+def check_symlinks():
+ for f in Path('test cases').glob('**/*'):
+ if f.is_symlink():
+ if 'boost symlinks' in str(f):
+ continue
+ raise SystemExit(f'Test data dir contains symlink: {f}.')
+
if __name__ == '__main__':
script_dir = os.path.split(__file__)[0]
if script_dir != '':
os.chdir(script_dir)
check_format()
+ check_symlinks()
diff --git a/run_project_tests.py b/run_project_tests.py
index 7ff164086..39bf1628f 100755
--- a/run_project_tests.py
+++ b/run_project_tests.py
@@ -1561,6 +1561,14 @@ def print_tool_versions() -> None:
print('{0:<{2}}: {1}'.format(tool.tool, get_version(tool), max_width))
print()
+tmpdir = list(Path('.').glob('**/*install functions and follow symlinks'))
+print(tmpdir)
+assert(len(tmpdir) == 1)
+symlink_test_dir = tmpdir[0]
+symlink_file1 = symlink_test_dir / 'foo/link1'
+symlink_file2 = symlink_test_dir / 'foo/link2.h'
+del tmpdir
+
def clear_transitive_files() -> None:
a = Path('test cases/common')
for d in a.glob('*subproject subdir/subprojects/subsubsub*'):
@@ -1568,6 +1576,18 @@ def clear_transitive_files() -> None:
mesonlib.windows_proof_rmtree(str(d))
else:
mesonlib.windows_proof_rm(str(d))
+ try:
+ symlink_file1.unlink()
+ except FileNotFoundError:
+ pass
+ try:
+ symlink_file2.unlink()
+ except FileNotFoundError:
+ pass
+
+def setup_symlinks() -> None:
+ symlink_file1.symlink_to('file1')
+ symlink_file2.symlink_to('file1')
if __name__ == '__main__':
if under_ci and not raw_ci_jobname:
@@ -1611,6 +1631,7 @@ if __name__ == '__main__':
options.extra_args += ['--native-file', options.native_file]
clear_transitive_files()
+ setup_symlinks()
print('Meson build system', meson_version, 'Project Tests')
print('Using python', sys.version.split('\n')[0], f'({sys.executable!r})')
diff --git a/test cases/common/268 install functions and follow_symlinks/foo/file1 b/test cases/common/268 install functions and follow symlinks/foo/file1
index 9daeafb98..9daeafb98 100644
--- a/test cases/common/268 install functions and follow_symlinks/foo/file1
+++ b/test cases/common/268 install functions and follow symlinks/foo/file1
diff --git a/test cases/common/268 install functions and follow_symlinks/meson.build b/test cases/common/268 install functions and follow symlinks/meson.build
index 327c02131..327c02131 100644
--- a/test cases/common/268 install functions and follow_symlinks/meson.build
+++ b/test cases/common/268 install functions and follow symlinks/meson.build
diff --git a/test cases/common/268 install functions and follow_symlinks/test.json b/test cases/common/268 install functions and follow symlinks/test.json
index 6a395177d..6a395177d 100644
--- a/test cases/common/268 install functions and follow_symlinks/test.json
+++ b/test cases/common/268 install functions and follow symlinks/test.json
diff --git a/test cases/common/268 install functions and follow_symlinks/foo/link1 b/test cases/common/268 install functions and follow_symlinks/foo/link1
deleted file mode 120000
index 08219db9b..000000000
--- a/test cases/common/268 install functions and follow_symlinks/foo/link1
+++ /dev/null
@@ -1 +0,0 @@
-file1 \ No newline at end of file
diff --git a/test cases/common/268 install functions and follow_symlinks/foo/link2.h b/test cases/common/268 install functions and follow_symlinks/foo/link2.h
deleted file mode 120000
index 08219db9b..000000000
--- a/test cases/common/268 install functions and follow_symlinks/foo/link2.h
+++ /dev/null
@@ -1 +0,0 @@
-file1 \ No newline at end of file
diff --git a/test cases/warning/9 meson.options/subprojects/no-warn/meson_options.txt b/test cases/warning/9 meson.options/subprojects/no-warn/meson_options.txt
index 7b28df279..b84ee83fc 120000..100644
--- a/test cases/warning/9 meson.options/subprojects/no-warn/meson_options.txt
+++ b/test cases/warning/9 meson.options/subprojects/no-warn/meson_options.txt
@@ -1 +1 @@
-meson.options \ No newline at end of file
+option('foo', type : 'string')