aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2020-07-16 20:34:15 +0200
committerDaniel Mensinger <daniel@mensinger-ka.de>2020-07-16 21:03:23 +0200
commit393d6e133d9abd584a2fc414971628e84ea48b7c (patch)
tree1af75e1028f85c0625557ca5c34e100898b97c09
parent05ddd6543d4c4fc33b4c64f26291e73f49733f71 (diff)
downloadmeson-393d6e133d9abd584a2fc414971628e84ea48b7c.zip
meson-393d6e133d9abd584a2fc414971628e84ea48b7c.tar.gz
meson-393d6e133d9abd584a2fc414971628e84ea48b7c.tar.bz2
mdata: Add test to ensure mesondata.py is up-to-date
-rwxr-xr-xrun_unittests.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/run_unittests.py b/run_unittests.py
index 820b705..2c03a3e 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -1485,6 +1485,38 @@ class DataTests(unittest.TestCase):
astint = AstInterpreter('.', '', '')
self.assertEqual(set(interp.funcs.keys()), set(astint.funcs.keys()))
+ def test_mesondata_is_up_to_date(self):
+ from mesonbuild.mesondata import mesondata
+ err_msg = textwrap.dedent('''
+
+ ###########################################################
+ ### mesonbuild.mesondata is not up-to-date ###
+ ### Please regenerate it by running tools/gen_data.py ###
+ ###########################################################
+
+ ''')
+
+ root_dir = Path(__file__).resolve().parent
+ mesonbuild_dir = root_dir / 'mesonbuild'
+
+ data_dirs = mesonbuild_dir.glob('**/data')
+ data_files = [] # type: T.List[T.Tuple(str, str)]
+
+ for i in data_dirs:
+ for p in i.iterdir():
+ data_files += [(p.relative_to(mesonbuild_dir).as_posix(), hashlib.sha256(p.read_bytes()).hexdigest())]
+
+ from pprint import pprint
+ current_files = set(mesondata.keys())
+ scanned_files = set([x[0] for x in data_files])
+
+ self.assertSetEqual(current_files, scanned_files, err_msg + 'Data files were added or removed\n')
+ errors = []
+ for i in data_files:
+ if mesondata[i[0]].sha256sum != i[1]:
+ errors += [i[0]]
+
+ self.assertListEqual(errors, [], err_msg + 'Files were changed')
class BasePlatformTests(unittest.TestCase):
prefix = '/usr'