aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/mtest.py
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2020-09-10 13:56:51 +0530
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2020-09-10 12:38:05 +0000
commit8bb3f16f090d93687190cfd424e0414704361daf (patch)
treec3efba4729933991fff261d2c3342fd5fcdab30d /mesonbuild/mtest.py
parentfb7099c6cf5a7ad43da1ad83c28567ecfb70809f (diff)
downloadmeson-8bb3f16f090d93687190cfd424e0414704361daf.zip
meson-8bb3f16f090d93687190cfd424e0414704361daf.tar.gz
meson-8bb3f16f090d93687190cfd424e0414704361daf.tar.bz2
mtest: Refactor test data checking
Diffstat (limited to 'mesonbuild/mtest.py')
-rw-r--r--mesonbuild/mtest.py33
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