diff options
| author | Eli Schwartz <eschwartz93@gmail.com> | 2024-02-14 00:09:07 -0500 |
|---|---|---|
| committer | Eli Schwartz <eschwartz93@gmail.com> | 2024-02-21 16:38:29 -0500 |
| commit | 4e5df4b3b7e0db0c4ed174f8b2de53b9004a1c45 (patch) | |
| tree | b2cc02ee39bc3fc73b9513c5b3a506b9a511382e /test cases/common | |
| parent | 47acce8ec93ae73b5a95f3b21e35abb4b3c21f6a (diff) | |
| download | meson-4e5df4b3b7e0db0c4ed174f8b2de53b9004a1c45.tar.gz | |
fix crash in generator.process() with an invalid preserve_path_from
This code cleverly tried to use a fancy new pathlib.Path method to get
the os.path.commonpath of two paths and check whether one is inside the
other. It failed pretty badly, because of a hidden secret of pathlib: it
is designed to throw random exceptions at all times (except when
building os.PathLike interfaces) instead of performing useful work.
Return to `os.path`.
In particular, before this change, we wanted to check if files are NOT
in a subpath of `preserve_path_from`, and raise a meson "ERROR: xxx" in
such a case. However, the code to check for it would raise a python
ValueError if that was the case, so we never got to the properly
formatted error.
Diffstat (limited to 'test cases/common')
| -rw-r--r-- | test cases/common/168 preserve gendir/meson.build | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/test cases/common/168 preserve gendir/meson.build b/test cases/common/168 preserve gendir/meson.build index ce219f0d8..d543b6019 100644 --- a/test cases/common/168 preserve gendir/meson.build +++ b/test cases/common/168 preserve gendir/meson.build @@ -9,5 +9,10 @@ gen = generator(gprog, \ generated = gen.process('base.inp', 'com/mesonbuild/subbie.inp', preserve_path_from : meson.current_source_dir()) +testcase expect_error('generator.process: When using preserve_path_from, all input files must be in a subdirectory of the given dir.') + generated = gen.process('base.inp', 'com/mesonbuild/subbie.inp', + preserve_path_from : meson.current_source_dir() / 'com') +endtestcase + e = executable('testprog', 'testprog.c', generated) test('testprog', e) |
