diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2020-09-10 13:56:51 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek.chauhan@gmail.com> | 2020-09-10 12:38:05 +0000 |
commit | 8bb3f16f090d93687190cfd424e0414704361daf (patch) | |
tree | c3efba4729933991fff261d2c3342fd5fcdab30d | |
parent | fb7099c6cf5a7ad43da1ad83c28567ecfb70809f (diff) | |
download | meson-8bb3f16f090d93687190cfd424e0414704361daf.zip meson-8bb3f16f090d93687190cfd424e0414704361daf.tar.gz meson-8bb3f16f090d93687190cfd424e0414704361daf.tar.bz2 |
mtest: Refactor test data checking
-rw-r--r-- | mesonbuild/mtest.py | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/mesonbuild/mtest.py b/mesonbuild/mtest.py index c452254..0e24c6d 100644 --- a/mesonbuild/mtest.py +++ b/mesonbuild/mtest.py @@ -576,27 +576,24 @@ def write_json_log(jsonlogfile: T.TextIO, test_name: str, result: TestRun) -> No def run_with_mono(fname: str) -> bool: return fname.endswith('.exe') and not (is_windows() or is_cygwin()) -def check_obj_major_version(objs: T.List[TestSerialisation]) -> None: - if not objs: - return - obj = objs[0] - if not hasattr(obj, 'version'): +def check_testdata(objs: T.List[TestSerialisation]) -> T.List[TestSerialisation]: + if not isinstance(objs, list): raise MesonVersionMismatchException('<unknown>', coredata_version) - if major_versions_differ(obj.version, coredata_version): - raise MesonVersionMismatchException(obj.version, coredata_version) + for obj in objs: + if not isinstance(obj, TestSerialisation): + raise MesonVersionMismatchException('<unknown>', coredata_version) + if not hasattr(obj, 'version'): + raise MesonVersionMismatchException('<unknown>', coredata_version) + if major_versions_differ(obj.version, coredata_version): + raise MesonVersionMismatchException(obj.version, coredata_version) + return objs def load_benchmarks(build_dir: str) -> T.List[TestSerialisation]: datafile = Path(build_dir) / 'meson-private' / 'meson_benchmark_setup.dat' if not datafile.is_file(): raise TestException('Directory {!r} does not seem to be a Meson build directory.'.format(build_dir)) with datafile.open('rb') as f: - objs = pickle.load(f) - if not isinstance(objs, list): - raise MesonVersionMismatchException('<unknown>', coredata_version) - for i in objs: - if not isinstance(i, TestSerialisation): - raise MesonVersionMismatchException('<unknown>', coredata_version) - check_obj_major_version(objs) + objs = check_testdata(pickle.load(f)) return objs def load_tests(build_dir: str) -> T.List[TestSerialisation]: @@ -604,13 +601,7 @@ def load_tests(build_dir: str) -> T.List[TestSerialisation]: if not datafile.is_file(): raise TestException('Directory {!r} does not seem to be a Meson build directory.'.format(build_dir)) with datafile.open('rb') as f: - objs = pickle.load(f) - if not isinstance(objs, list): - raise MesonVersionMismatchException('<unknown>', coredata_version) - for i in objs: - if not isinstance(i, TestSerialisation): - raise MesonVersionMismatchException('<unknown>', coredata_version) - check_obj_major_version(objs) + objs = check_testdata(pickle.load(f)) return objs |