diff options
| author | Jan Kvapil | 2024-08-12 10:22:14 +0200 |
|---|---|---|
| committer | Jan Kvapil | 2024-08-12 10:22:14 +0200 |
| commit | b83164b1402e96d5b20d36b5941b79f5636dba71 (patch) | |
| tree | 2e95fbae7df5cec89f02faf41cb74c0c478c2e58 /test_building_all.py | |
| parent | e7eba2da0535e60b948b80eb69574d604800af48 (diff) | |
| download | ECTester-b83164b1402e96d5b20d36b5941b79f5636dba71.tar.gz ECTester-b83164b1402e96d5b20d36b5941b79f5636dba71.tar.zst ECTester-b83164b1402e96d5b20d36b5941b79f5636dba71.zip | |
Diffstat (limited to 'test_building_all.py')
| -rw-r--r-- | test_building_all.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/test_building_all.py b/test_building_all.py new file mode 100644 index 0000000..bf2c509 --- /dev/null +++ b/test_building_all.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python + +import argparse +import json +import time + +import subprocess as sp + +def get_all_versions(library): + with open(f"./nix/{library}_pkg_versions.json", "r") as handle: + versions = json.load(handle) + + return versions + +def can_build(library, version, variant): + cmd = ["nix", "build", f".#{variant}.{library}.{version}"] + start = time.time() + try: + sp.check_output(cmd, stderr=sp.STDOUT) + except sp.CalledProcessError as e: + print(e.output.decode()) + return False, time.time() - start + return True, time.time() - start + +def valid_build_type(value): + value = value.strip() + valid_types = ["shim", "lib"] + if value not in valid_types: + raise argparse.ArgumentTypeError(f"'{value}' not from expected {', '.join(valid_types)})") + return value + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("-l", "--library") + parser.add_argument("-d", "--variant", default="shim", type=valid_build_type) + args = parser.parse_args() + library = args.library + variant = args.variant + + + libraries = [ + "botan", + "cryptopp", + "openssl", + "boringssl", + "gcrypt", + "mbedtls", + "ippcp", + "nettle", + "libressl", + ] + + match library: + case None: + for lib in libraries: + print(f"Library: {lib}") + for version in get_all_versions(lib): + print(f"{version}: {can_build(lib, version, variant)}") + case _: + print(f"Library: {library}") + for version in get_all_versions(library): + print(f"{version}: {can_build(library, version, variant)}") + + +if __name__ == '__main__': + main() |
