diff --git a/gnu/local.mk b/gnu/local.mk index 5cc134d3d3..6f191a1bfb 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1114,6 +1114,7 @@ dist_patch_DATA = \ %D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \ %D%/packages/patches/dstat-skip-devices-without-io.patch \ %D%/packages/patches/dtc-meson-cell-overflow.patch \ + %D%/packages/patches/duc-fix-test-sh.patch \ %D%/packages/patches/dune-common-skip-failing-tests.patch \ %D%/packages/patches/dune-grid-add-missing-include-cassert.patch \ %D%/packages/patches/dune-istl-fix-solver-playground.patch \ diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index b0117d77ce..ea18a98ab6 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -1562,7 +1562,9 @@ (define-public duc (file-name (git-file-name name version)) (sha256 (base32 - "0sglcn38rgn6y3m5ahngizyn3x2rzhqjphs7g0ppnlinkz56rcv4")))) + "0sglcn38rgn6y3m5ahngizyn3x2rzhqjphs7g0ppnlinkz56rcv4")) + (patches + (search-patches "duc-fix-test-sh.patch")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/patches/duc-fix-test-sh.patch b/gnu/packages/patches/duc-fix-test-sh.patch new file mode 100644 index 0000000000..8b79e4bd03 --- /dev/null +++ b/gnu/packages/patches/duc-fix-test-sh.patch @@ -0,0 +1,70 @@ +From a84835e481d9b5fcfc101bb1fa5aba38a245b6f3 Mon Sep 17 00:00:00 2001 +Message-ID: +From: Fabio Natali +Date: Wed, 30 Aug 2023 11:35:40 +0100 +Subject: [PATCH] Fix test.sh which used to fail in some circumstances + +duc's behaviour may legitimately vary depending on the system it is being run +on. The test.sh script used to fail in some circumstances as it was too strict +and it did not account for some legitimate behaviour differences. + +Fix: update `test.sh' variable +--- + +This is a squash of pull request https://github.com/zevv/duc/pull/318, +waiting to be merged. + + test.sh | 22 ++++++++++++++++------ + 1 file changed, 16 insertions(+), 6 deletions(-) + +diff --git a/test.sh b/test.sh +index eb592be..7668499 100755 +--- a/test.sh ++++ b/test.sh +@@ -130,8 +130,8 @@ fi + # Actual tests are below. If you add test cases above, these need to be tweaked. + #--------------------------------------------------------------------------------- + +- +-cat ${DUC_TEST_DIR}.out | grep -q "Indexed 77 files and 47 directories, (91869B apparent, 540672B actual)" ++# An exact match is expected on the apparent size; the actual size may vary. ++cat ${DUC_TEST_DIR}.out | grep -q "Indexed 77 files and 47 directories, (91869B apparent, [0-9]*B actual)" + + if [ "$?" = "0" ]; then + echo "report: ok" +@@ -153,16 +153,26 @@ if [ "$?" != "0" ]; then + exit 1 + fi + +-testsum="33e2be27a9e70e81d4006a2d7b555948" ++# When two or more hard links point to the same file and when running duc with ++# the `--check-hard-links' option, only one of the hard links will be ++# counted. However, duc may pick up and display a different hard link depending ++# on the system it is being run on. Since our tests include three hard links to ++# the same file, we should be expecting three possible outcomes, all equally ++# valid, each corresponding to one of the following MD5 checksums. ++testsum0="78dbf880ef6917ea665fddb5ebb44428" ++testsum1="38ab7b7d1ec6ac57d672c5618371386d" ++testsum2="33e2be27a9e70e81d4006a2d7b555948" + md5sum ${DUC_TEST_DIR}.out > /tmp/.duc.md5sum +-grep -q $testsum /tmp/.duc.md5sum ++grep -q "$testsum0\|$testsum1\|$testsum2" /tmp/.duc.md5sum + + if [ "$?" = "0" ]; then + echo "md5sum: ok" + else + echo "md5sum: failed" +- echo "expected: " +- echo "$testsum ${DUC_TEST_DIR}.out" ++ echo "expected one of: " ++ echo "$testsum0 ${DUC_TEST_DIR}.out" ++ echo "$testsum1 ${DUC_TEST_DIR}.out" ++ echo "$testsum2 ${DUC_TEST_DIR}.out" + echo "got: " + cat /tmp/.duc.md5sum + exit 1 + +base-commit: b8f9659688a38476df9f613be3342bb8e2d65402 +-- +2.41.0 +