|
@@ -11,14 +11,16 @@ from .validate import LinuxBinary, PlatformBinary, WindowsBinary
|
|
|
def main() -> None:
|
|
|
parser = argparse.ArgumentParser()
|
|
|
|
|
|
- parser.add_argument("validation_file", metavar="config", type=pathlib.Path)
|
|
|
+ parser.add_argument("validation_path", metavar="config", type=pathlib.Path)
|
|
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
- config = configparser.ConfigParser()
|
|
|
- config.read(args.validation_file)
|
|
|
+ validation_files = set()
|
|
|
+ if args.validation_path.is_dir():
|
|
|
+ validation_files.update(args.validation_path.rglob("*.ini"))
|
|
|
+ else:
|
|
|
+ validation_files.add(args.validation_path)
|
|
|
|
|
|
- entries = validate.read_config(config)
|
|
|
|
|
|
linux_target = LinuxBinary(pathlib.Path("server_srv.so"))
|
|
|
windows_target = WindowsBinary(pathlib.Path("server.dll"))
|
|
@@ -27,15 +29,28 @@ def main() -> None:
|
|
|
windows_target.path = pathlib.Path("232250/tf/bin/server.dll")
|
|
|
|
|
|
candidate_targets: list[PlatformBinary] = [linux_target, windows_target]
|
|
|
-
|
|
|
- for name, entry in entries.items():
|
|
|
- target = entry.get_target_match(candidate_targets)
|
|
|
- assert target, f"No binary match for {entry.target}"
|
|
|
- try:
|
|
|
- for key, result in entry.process(target).items():
|
|
|
- print("- [OK]", key.substitute(name=name), "=", result)
|
|
|
- except Exception as e:
|
|
|
- print("- [FAIL]", name, f"({type(e).__name__}):", e)
|
|
|
+ for validation_file in sorted(validation_files):
|
|
|
+ header = validation_file.stem
|
|
|
+ if args.validation_path.is_dir():
|
|
|
+ header = str(
|
|
|
+ pathlib.PurePosixPath(validation_file.relative_to(args.validation_path))
|
|
|
+ )
|
|
|
+ print(header)
|
|
|
+
|
|
|
+ config = configparser.ConfigParser()
|
|
|
+ config.read(validation_file)
|
|
|
+
|
|
|
+ entries = validate.read_config(config)
|
|
|
+
|
|
|
+ for name, entry in entries.items():
|
|
|
+ target = entry.get_target_match(candidate_targets)
|
|
|
+ try:
|
|
|
+ assert target, f"No binary match for {entry.target}"
|
|
|
+ for key, result in entry.process(target).items():
|
|
|
+ print("- [OK]", key.substitute(name=name), "=", result)
|
|
|
+ except Exception as e:
|
|
|
+ print("- [FAIL]", name, f"({type(e).__name__}):", e)
|
|
|
+ # traceback.print_exception(e)
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|