diff --git a/.github/workflows/compat.yml b/.github/workflows/compat.yml index 2eb035f4..6523bae6 100644 --- a/.github/workflows/compat.yml +++ b/.github/workflows/compat.yml @@ -92,7 +92,7 @@ jobs: with: repository: tavianator/bfs path: bfs - ref: "3.1.3" + ref: "4.0" - name: Install `rust` toolchain run: | ## Install `rust` toolchain diff --git a/util/build-bfs.sh b/util/build-bfs.sh index 47b9335a..c394112e 100755 --- a/util/build-bfs.sh +++ b/util/build-bfs.sh @@ -12,16 +12,17 @@ fi cargo build --release FIND=$(readlink -f target/release/find) -cd .. -make -C bfs -j "$(nproc)" bin/tests/{mksock,xtouch} NOLIBS=y +cd ../bfs +./configure NOLIBS=y +make -j "$(nproc)" bin/tests/{mksock,xtouch} # Run the GNU find compatibility tests by default if test "$#" -eq 0; then set -- --verbose=tests --gnu --sudo fi -LOG_FILE=bfs/tests.log -./bfs/tests/tests.sh --bfs="$FIND" "$@" | tee "$LOG_FILE" || : +LOG_FILE=tests.log +./tests/tests.sh --bfs="$FIND" "$@" 2>&1 | tee "$LOG_FILE" || : PASS=$(sed -En 's|^\[PASS] *([0-9]+) / .*|\1|p' "$LOG_FILE") SKIP=$(sed -En 's|^\[SKIP] *([0-9]+) / .*|\1|p' "$LOG_FILE") @@ -49,4 +50,4 @@ jq -n \ --arg pass "$PASS" \ --arg skip "$SKIP" \ --arg fail "$FAIL" \ - '{($date): { sha: $sha, total: $total, pass: $pass, skip: $skip, fail: $fail, }}' > bfs-result.json + '{($date): { sha: $sha, total: $total, pass: $pass, skip: $skip, fail: $fail, }}' > ../bfs-result.json diff --git a/util/diff-bfs.sh b/util/diff-bfs.sh index 098ba2ac..8696e2a7 100755 --- a/util/diff-bfs.sh +++ b/util/diff-bfs.sh @@ -6,7 +6,7 @@ export LC_COLLATE=C # Extract the failing test lines from log files failing_tests() { - sed -n 's/^\([[:print:]]\+\) failed\!/\1/p' "$1" | sort + sed -n 's/^\[FAIL\] //p' "$1" | sort } comm -3 <(failing_tests "$1") <(failing_tests "$2") | tr '\t' ',' | while IFS=, read old new; do