Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixos-hardware
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 4b129a0f711a
Choose a base ref
...
head repository: NixOS/nixos-hardware
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 385c5ba9163b
Choose a head ref
  • 2 commits
  • 1 file changed
  • 2 contributors

Commits on May 18, 2020

  1. Copy the full SHA
    a13d00b View commit details

Commits on May 20, 2020

  1. Copy the full SHA
    385c5ba View commit details
Showing with 12 additions and 4 deletions.
  1. +12 −4 tests/run.py
16 changes: 12 additions & 4 deletions tests/run.py
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@
import re
import subprocess
import sys
from functools import partial
from pathlib import Path
from typing import List, Tuple

@@ -26,7 +27,9 @@ def parse_readme() -> List[str]:
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.
system = "x86_64-linux"
if "raspberry-pi/2" in profile:
@@ -50,7 +53,8 @@ def build_profile(profile: str) -> Tuple[str, subprocess.CompletedProcess]:
# uses import from derivation
if profile != "<nixos-hardware/toshiba/swanky>":
cmd += ["--dry-run"]
print("$ " + " ".join(cmd))
if verbose:
print(f"$ {' '.join(cmd)}")
res = subprocess.run(
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."
"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="*")
return parser.parse_args()

@@ -90,12 +97,13 @@ def eval_finished(args: Tuple[str, subprocess.CompletedProcess]) -> None:
print(f"{RED}{res.stderr.rstrip()}{RESET}", file=sys.stderr)
failed_profiles.append(profile)

build = partial(build_profile, verbose=args.verbose)
if len(profiles) == 0 or args.jobs == 1:
for profile in profiles:
eval_finished(build_profile(profile))
eval_finished(build(profile))
else:
pool = multiprocessing.Pool(processes=args.jobs)
for r in pool.imap(build_profile, profiles):
for r in pool.imap(build, profiles):
eval_finished(r)
if len(failed_profiles) > 0:
print(f"\n{RED}The following {len(failed_profiles)} test(s) failed:{RESET}")