tests: hide evaluation command behind verbose flag
This commit is contained in:
parent
4b129a0f71
commit
a13d00bd7c
16
tests/run.py
16
tests/run.py
|
@ -6,6 +6,7 @@ import multiprocessing
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
from functools import partial
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import List, Tuple
|
from typing import List, Tuple
|
||||||
|
|
||||||
|
@ -26,7 +27,9 @@ def parse_readme() -> List[str]:
|
||||||
return list(profiles)
|
return list(profiles)
|
||||||
|
|
||||||
|
|
||||||
def build_profile(profile: str) -> Tuple[str, subprocess.CompletedProcess]:
|
def build_profile(
|
||||||
|
profile: str, verbose: bool
|
||||||
|
) -> Tuple[str, subprocess.CompletedProcess]:
|
||||||
# Hard-code this for now until we have enough other architectures to care about this.
|
# Hard-code this for now until we have enough other architectures to care about this.
|
||||||
system = "x86_64-linux"
|
system = "x86_64-linux"
|
||||||
if "raspberry-pi/2" in profile:
|
if "raspberry-pi/2" in profile:
|
||||||
|
@ -50,7 +53,8 @@ def build_profile(profile: str) -> Tuple[str, subprocess.CompletedProcess]:
|
||||||
# uses import from derivation
|
# uses import from derivation
|
||||||
if profile != "<nixos-hardware/toshiba/swanky>":
|
if profile != "<nixos-hardware/toshiba/swanky>":
|
||||||
cmd += ["--dry-run"]
|
cmd += ["--dry-run"]
|
||||||
print("$ " + " ".join(cmd))
|
if verbose:
|
||||||
|
print(f"$ {' '.join(cmd)}")
|
||||||
res = subprocess.run(
|
res = subprocess.run(
|
||||||
cmd, cwd=TEST_ROOT, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True,
|
cmd, cwd=TEST_ROOT, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True,
|
||||||
)
|
)
|
||||||
|
@ -66,6 +70,9 @@ def parse_args() -> argparse.Namespace:
|
||||||
help="Number of parallel evaluations."
|
help="Number of parallel evaluations."
|
||||||
"If set to 1 it disable multi processing (suitable for debugging)",
|
"If set to 1 it disable multi processing (suitable for debugging)",
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--verbose", action="store_true", help="Print evaluation commands executed",
|
||||||
|
)
|
||||||
parser.add_argument("profiles", nargs="*")
|
parser.add_argument("profiles", nargs="*")
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
|
@ -90,12 +97,13 @@ def main() -> None:
|
||||||
print(f"{RED}{res.stderr.rstrip()}{RESET}", file=sys.stderr)
|
print(f"{RED}{res.stderr.rstrip()}{RESET}", file=sys.stderr)
|
||||||
failed_profiles.append(profile)
|
failed_profiles.append(profile)
|
||||||
|
|
||||||
|
build = partial(build_profile, verbose=args.verbose)
|
||||||
if len(profiles) == 0 or args.jobs == 1:
|
if len(profiles) == 0 or args.jobs == 1:
|
||||||
for profile in profiles:
|
for profile in profiles:
|
||||||
eval_finished(build_profile(profile))
|
eval_finished(build(profile))
|
||||||
else:
|
else:
|
||||||
pool = multiprocessing.Pool(processes=args.jobs)
|
pool = multiprocessing.Pool(processes=args.jobs)
|
||||||
for r in pool.imap(build_profile, profiles):
|
for r in pool.imap(build, profiles):
|
||||||
eval_finished(r)
|
eval_finished(r)
|
||||||
if len(failed_profiles) > 0:
|
if len(failed_profiles) > 0:
|
||||||
print(f"\n{RED}The following {len(failed_profiles)} test(s) failed:{RESET}")
|
print(f"\n{RED}The following {len(failed_profiles)} test(s) failed:{RESET}")
|
||||||
|
|
Loading…
Reference in a new issue