|
|
|
@ -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' |
|
|
|
|