mirror of
https://github.com/uutils/coreutils.git
synced 2025-12-23 08:47:37 +00:00
GnuTests: Reduce GNU deps on BSD (#9644)
Some checks failed
CICD / Style/cargo-deny (push) Waiting to run
CICD / Style/deps (push) Waiting to run
CICD / Documentation/warnings (push) Waiting to run
CICD / MinRustV (push) Waiting to run
CICD / Dependencies (push) Waiting to run
CICD / Build/Makefile (push) Blocked by required conditions
CICD / Build/stable (push) Blocked by required conditions
CICD / Build/nightly (push) Blocked by required conditions
CICD / Binary sizes (push) Blocked by required conditions
CICD / Build (push) Blocked by required conditions
CICD / Test all features separately (push) Blocked by required conditions
CICD / Build/SELinux (push) Blocked by required conditions
CICD / Build/SELinux-Stubs (Non-Linux) (push) Blocked by required conditions
CICD / Safe Traversal Security Check (push) Blocked by required conditions
GnuTests / Run GNU tests (native) (push) Waiting to run
GnuTests / Run GNU tests (SELinux) (push) Waiting to run
GnuTests / Aggregate GNU test results (push) Blocked by required conditions
CICD / Tests/BusyBox test suite (push) Blocked by required conditions
CICD / Tests/Toybox test suite (push) Blocked by required conditions
CICD / Code Coverage (push) Waiting to run
CICD / Separate Builds (push) Waiting to run
Android / Test builds (push) Waiting to run
Benchmarks / Run benchmarks (CodSpeed) (push) Waiting to run
Code Quality / Style/format (push) Waiting to run
Code Quality / Style/lint (push) Waiting to run
Code Quality / Style/spelling (push) Waiting to run
Code Quality / Style/toml (push) Waiting to run
Code Quality / Style/Python (push) Waiting to run
Code Quality / Pre-commit hooks (push) Waiting to run
Devcontainer / Verify devcontainer (push) Waiting to run
FreeBSD / Style and Lint (push) Waiting to run
FreeBSD / Tests (push) Waiting to run
OpenBSD / Style and Lint (push) Waiting to run
OpenBSD / Tests (push) Waiting to run
WSL2 / Test (push) Waiting to run
CheckScripts / ShellScript/Check (push) Has been cancelled
CheckScripts / ShellScript/Format (push) Has been cancelled
Some checks failed
CICD / Style/cargo-deny (push) Waiting to run
CICD / Style/deps (push) Waiting to run
CICD / Documentation/warnings (push) Waiting to run
CICD / MinRustV (push) Waiting to run
CICD / Dependencies (push) Waiting to run
CICD / Build/Makefile (push) Blocked by required conditions
CICD / Build/stable (push) Blocked by required conditions
CICD / Build/nightly (push) Blocked by required conditions
CICD / Binary sizes (push) Blocked by required conditions
CICD / Build (push) Blocked by required conditions
CICD / Test all features separately (push) Blocked by required conditions
CICD / Build/SELinux (push) Blocked by required conditions
CICD / Build/SELinux-Stubs (Non-Linux) (push) Blocked by required conditions
CICD / Safe Traversal Security Check (push) Blocked by required conditions
GnuTests / Run GNU tests (native) (push) Waiting to run
GnuTests / Run GNU tests (SELinux) (push) Waiting to run
GnuTests / Aggregate GNU test results (push) Blocked by required conditions
CICD / Tests/BusyBox test suite (push) Blocked by required conditions
CICD / Tests/Toybox test suite (push) Blocked by required conditions
CICD / Code Coverage (push) Waiting to run
CICD / Separate Builds (push) Waiting to run
Android / Test builds (push) Waiting to run
Benchmarks / Run benchmarks (CodSpeed) (push) Waiting to run
Code Quality / Style/format (push) Waiting to run
Code Quality / Style/lint (push) Waiting to run
Code Quality / Style/spelling (push) Waiting to run
Code Quality / Style/toml (push) Waiting to run
Code Quality / Style/Python (push) Waiting to run
Code Quality / Pre-commit hooks (push) Waiting to run
Devcontainer / Verify devcontainer (push) Waiting to run
FreeBSD / Style and Lint (push) Waiting to run
FreeBSD / Tests (push) Waiting to run
OpenBSD / Style and Lint (push) Waiting to run
OpenBSD / Tests (push) Waiting to run
WSL2 / Test (push) Waiting to run
CheckScripts / ShellScript/Check (push) Has been cancelled
CheckScripts / ShellScript/Format (push) Has been cancelled
Co-authored-by: oech3 <>
This commit is contained in:
parent
f9ac29d89f
commit
a33c9445f9
2 changed files with 17 additions and 24 deletions
|
|
@ -3,16 +3,15 @@
|
|||
#
|
||||
|
||||
# spell-checker:ignore (paths) abmon deref discrim eacces getlimits getopt ginstall inacc infloop inotify reflink ; (misc) INT_OFLOW OFLOW
|
||||
# spell-checker:ignore baddecode submodules xstrtol distros ; (vars/env) SRCDIR vdir rcexp xpart dired OSTYPE ; (utils) gnproc greadlink gsed multihardlink texinfo CARGOFLAGS
|
||||
# spell-checker:ignore baddecode submodules xstrtol distros ; (vars/env) SRCDIR vdir rcexp xpart dired OSTYPE ; (utils) greadlink gsed multihardlink texinfo CARGOFLAGS
|
||||
# spell-checker:ignore openat TOCTOU CFLAGS
|
||||
# spell-checker:ignore hfsplus casefold chattr
|
||||
|
||||
set -e
|
||||
|
||||
# Use system's GNU version for make, nproc, readlink and sed on *BSD and macOS
|
||||
# Use GNU make, readlink and sed on *BSD and macOS
|
||||
MAKE=$(command -v gmake||command -v make)
|
||||
NPROC=$(command -v gnproc||command -v nproc)
|
||||
READLINK=$(command -v greadlink||command -v readlink)
|
||||
READLINK=$(command -v greadlink||command -v readlink) # Use our readlink to remove a dependency
|
||||
SED=$(command -v gsed||command -v sed)
|
||||
|
||||
SYSTEM_TIMEOUT=$(command -v timeout)
|
||||
|
|
@ -141,7 +140,8 @@ else
|
|||
"${SED}" -i 's|^"\$@|'"${SYSTEM_TIMEOUT}"' 600 "\$@|' build-aux/test-driver
|
||||
# Use a better diff
|
||||
"${SED}" -i 's|diff -c|diff -u|g' tests/Coreutils.pm
|
||||
"${MAKE}" -j "$("${NPROC}")"
|
||||
# Use our nproc for *BSD and macOS
|
||||
"${MAKE}" -j "$("${UU_BUILD_DIR}/nproc")"
|
||||
|
||||
# Handle generated factor tests
|
||||
t_first=00
|
||||
|
|
|
|||
|
|
@ -2,24 +2,14 @@
|
|||
# `run-gnu-test.bash [TEST]`
|
||||
# run GNU test (or all tests if TEST is missing/null)
|
||||
|
||||
# spell-checker:ignore (env/vars) GNULIB SRCDIR SUBDIRS OSTYPE ; (utils) shellcheck gnproc greadlink
|
||||
# spell-checker:ignore (env/vars) GNULIB SRCDIR SUBDIRS OSTYPE MAKEFLAGS; (utils) shellcheck greadlink
|
||||
|
||||
# ref: [How the GNU coreutils are tested](https://www.pixelbeat.org/docs/coreutils-testing.html) @@ <https://archive.is/p2ITW>
|
||||
# * note: to run a single test => `make check TESTS=PATH/TO/TEST/SCRIPT SUBDIRS=. VERBOSE=yes`
|
||||
|
||||
# Use GNU version for make, nproc, readlink on *BSD
|
||||
case "$OSTYPE" in
|
||||
*bsd*)
|
||||
MAKE="gmake"
|
||||
NPROC="gnproc"
|
||||
READLINK="greadlink"
|
||||
;;
|
||||
*)
|
||||
MAKE="make"
|
||||
NPROC="nproc"
|
||||
READLINK="readlink"
|
||||
;;
|
||||
esac
|
||||
# Use GNU make, readlink on *BSD
|
||||
MAKE=$(command -v gmake||command -v make)
|
||||
READLINK=$(command -v greadlink||command -v readlink) # Use our readlink to remove a dependency
|
||||
|
||||
ME_dir="$(dirname -- "$("${READLINK}" -fm -- "$0")")"
|
||||
REPO_main_dir="$(dirname -- "${ME_dir}")"
|
||||
|
|
@ -37,6 +27,9 @@ path_GNU="$("${READLINK}" -fm -- "${path_GNU:-${path_UUTILS}/../gnu}")"
|
|||
echo "path_UUTILS='${path_UUTILS}'"
|
||||
echo "path_GNU='${path_GNU}'"
|
||||
|
||||
# Use GNU nproc for *BSD
|
||||
MAKEFLAGS="${MAKEFLAGS} -j $(${path_GNU}/src/nproc)"
|
||||
export MAKEFLAGS
|
||||
###
|
||||
|
||||
cd "${path_GNU}" && echo "[ pwd:'${PWD}' ]"
|
||||
|
|
@ -71,7 +64,7 @@ elif [[ "$1" == "run-root" && "$has_selinux_tests" == true ]]; then
|
|||
if test -n "$CI"; then
|
||||
echo "Running SELinux tests as root"
|
||||
# Don't use check-root here as the upstream root tests is hardcoded
|
||||
sudo "${MAKE}" -j "$("${NPROC}")" check TESTS="$*" SUBDIRS=. RUN_EXPENSIVE_TESTS=yes RUN_VERY_EXPENSIVE_TESTS=yes VERBOSE=no gl_public_submodule_commit="" srcdir="${path_GNU}" TEST_SUITE_LOG="tests/test-suite-root.log" || :
|
||||
sudo "${MAKE}" check TESTS="$*" SUBDIRS=. RUN_EXPENSIVE_TESTS=yes RUN_VERY_EXPENSIVE_TESTS=yes VERBOSE=no gl_public_submodule_commit="" srcdir="${path_GNU}" TEST_SUITE_LOG="tests/test-suite-root.log" || :
|
||||
fi
|
||||
exit 0
|
||||
elif test "$1" != "run-root" && test "$1" != "run-tty"; then
|
||||
|
|
@ -105,9 +98,9 @@ fi
|
|||
if test "$1" != "run-root" && test "$1" != "run-tty"; then
|
||||
# run the regular tests
|
||||
if test $# -ge 1; then
|
||||
timeout -sKILL 4h "${MAKE}" -j "$("${NPROC}")" check TESTS="$SPECIFIC_TESTS" SUBDIRS=. RUN_EXPENSIVE_TESTS=yes RUN_VERY_EXPENSIVE_TESTS=yes VERBOSE=no gl_public_submodule_commit="" srcdir="${path_GNU}" || : # Kill after 4 hours in case something gets stuck in make
|
||||
timeout -sKILL 4h "${MAKE}" check TESTS="$SPECIFIC_TESTS" SUBDIRS=. RUN_EXPENSIVE_TESTS=yes RUN_VERY_EXPENSIVE_TESTS=yes VERBOSE=no gl_public_submodule_commit="" srcdir="${path_GNU}" || : # Kill after 4 hours in case something gets stuck in make
|
||||
else
|
||||
timeout -sKILL 4h "${MAKE}" -j "$("${NPROC}")" check SUBDIRS=. RUN_EXPENSIVE_TESTS=yes RUN_VERY_EXPENSIVE_TESTS=yes VERBOSE=no gl_public_submodule_commit="" srcdir="${path_GNU}" || : # Kill after 4 hours in case something gets stuck in make
|
||||
timeout -sKILL 4h "${MAKE}" check SUBDIRS=. RUN_EXPENSIVE_TESTS=yes RUN_VERY_EXPENSIVE_TESTS=yes VERBOSE=no gl_public_submodule_commit="" srcdir="${path_GNU}" || : # Kill after 4 hours in case something gets stuck in make
|
||||
fi
|
||||
else
|
||||
# in case we would like to run tests requiring root
|
||||
|
|
@ -115,10 +108,10 @@ else
|
|||
if test -n "$CI"; then
|
||||
if test $# -ge 2; then
|
||||
echo "Running check-root to run only root tests"
|
||||
sudo "${MAKE}" -j "$("${NPROC}")" check-root TESTS="$2" SUBDIRS=. RUN_EXPENSIVE_TESTS=yes RUN_VERY_EXPENSIVE_TESTS=yes VERBOSE=no gl_public_submodule_commit="" srcdir="${path_GNU}" TEST_SUITE_LOG="tests/test-suite-root.log" || :
|
||||
sudo "${MAKE}" check-root TESTS="$2" SUBDIRS=. RUN_EXPENSIVE_TESTS=yes RUN_VERY_EXPENSIVE_TESTS=yes VERBOSE=no gl_public_submodule_commit="" srcdir="${path_GNU}" TEST_SUITE_LOG="tests/test-suite-root.log" || :
|
||||
else
|
||||
echo "Running check-root to run only root tests"
|
||||
sudo "${MAKE}" -j "$("${NPROC}")" check-root SUBDIRS=. RUN_EXPENSIVE_TESTS=yes RUN_VERY_EXPENSIVE_TESTS=yes VERBOSE=no gl_public_submodule_commit="" srcdir="${path_GNU}" TEST_SUITE_LOG="tests/test-suite-root.log" || :
|
||||
sudo "${MAKE}" check-root SUBDIRS=. RUN_EXPENSIVE_TESTS=yes RUN_VERY_EXPENSIVE_TESTS=yes VERBOSE=no gl_public_submodule_commit="" srcdir="${path_GNU}" TEST_SUITE_LOG="tests/test-suite-root.log" || :
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue