dash/test/lint/all-lint.py
Kittywhiskers Van Gogh 2fa480a878
partial bitcoin#25288: Reliably don't start itself (lint-all.py runs all tests twice)
excluded:
- f26a496dfd0a7ce3833a10075027d7d5b0345e32 (change in glob pattern)

We still have shell scripts that end in `.sh`, so we can't
restrict the glob to only cover files that end in `.py`.
2024-12-04 15:55:11 +00:00

37 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python3
#
# Copyright (c) 2017-2022 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
#
# This script runs all test/lint/lint-* files, and fails if any exit
# with a non-zero status code.
from glob import glob
from os import path as os_path, remove
from pathlib import Path
from shutil import which
from subprocess import run
exit_code = 0
mod_path = Path(__file__).parent
lints = glob(f"{mod_path}/lint-*")
if which("parallel") and which("column"):
logfile = "parallel_out.log"
command = ["parallel", "--jobs", "100%", "--will-cite", "--joblog", logfile, ":::"] + lints
result = run(command)
if result.returncode != 0:
print(f"^---- failure generated")
exit_code = result.returncode
result = run(["column", "-t", logfile])
if os_path.isfile(logfile):
remove(logfile)
else:
for lint in lints:
result = run([lint])
if result.returncode != 0:
print(f"^---- failure generated from {lint.split('/')[-1]}")
exit_code |= result.returncode
exit(exit_code)