blob: 71e96eb3723e3cbd6fb191beee94d1a16c69cf27 [file] [log] [blame]
#!/usr/bin/env python3
#
# Copyright © 2022-2024 Collabora, Ltd.
#
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Original author: Xavier Claessens
"""
This script checks Meson configuration logs to verify no installed file is
missing installation tag.
"""
import argparse
import json
from pathlib import Path
def main():
parser = argparse.ArgumentParser()
parser.add_argument("builddir", type=Path, nargs="?", default=".")
args = parser.parse_args()
print("# TAP version 13")
count = 0
bad = 0
path = args.builddir / "meson-info" / "intro-install_plan.json"
with path.open(encoding="utf-8") as f:
install_plan = json.load(f)
for target in install_plan.values():
for info in target.values():
count += 1
if not info["tag"]:
bad += 1
dest = info["destination"]
print(f"not ok {bad} - Missing install_tag for {dest}")
if bad == 0:
print(f"ok 1 - All {count} installed files have install_tag")
print("1..1")
return 0
else:
print(f"# {bad}/{count} installed files do not have install_tag")
print(f"1..{bad}")
return 1
if __name__ == "__main__":
exit(main())