Hi Eli,
> it seems like these Haiku issues are the main blocker
> now. Do you happen to know / would be able to test whether these test
> failures on Haiku also manifest with the testsuite on Patch v2.7.6 or
> whether they are truly regressions introduced since then?
Find attached the test-suite.log files from
- the 2.7.6 release,
- a recent snapshot, built with current gnulib [1].
Summary:
2.7.6 current comment
concat-git-diff PASS FAIL regression
preserve-mode-and-timestamp FAIL FAIL old failure
remember-backup-files FAIL FAIL old failure
unmodified-files FAIL SKIP
910fecf695e76c7b45a69cb3630ca2d2a3b86121
The preserve-mode-and-timestamp failure is probably a consequence
of this Haiku bug: [2].
Bruno
[1] https://github.com/gnu-patch/ci-check/actions/runs/13109741909
[2] https://dev.haiku-os.org/ticket/19213
===========================================
GNU patch 2.7.6: tests/test-suite.log
===========================================
# TOTAL: 44
# PASS: 37
# SKIP: 2
# XFAIL: 2
# FAIL: 3
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
FAIL: preserve-mode-and-timestamp
=================================
[45] patch -p1 --backup --set-utc < f.diff -- FAILED
--- expected
+++ got
@@ -1 +1,2 @@
patching file f
+Not setting time of file f (time mismatch)
[55] test ! \( f -ot f.compare -o f -nt f.compare \) || echo "timstamp differs" -- FAILED
--- expected
+++ got
@@ -1 +1 @@
-
+timstamp differs
[60] ls -l f.orig | sed "s,\(..........\).*,\1," -- ok
[73] patch -p1 --backup --set-utc < f.diff || echo "Status: $?" -- ok
[81] ls -l f.rej | sed "s,\(..........\).*,\1," -- ok
[94] patch -p1 --backup --set-utc < f.diff || echo "Status: $?" -- ok
[102] ls -l f.rej | sed "s,\(..........\).*,\1," -- ok
[117] patch -p1 --backup --set-utc < f.diff -- ok
[121] test ! \( f -ot f.compare -o f -nt f.compare \) || echo "timstamp differs" -- FAILED
--- expected
+++ got
@@ -1 +1 @@
-
+timstamp differs
9 tests (6 passed, 3 failed)
FAIL preserve-mode-and-timestamp (exit status: 1)
FAIL: remember-backup-files
===========================
[38] patch -p0 < f.diff -- ok
[47] cat f.orig -- ok
ln: failed to create hard link 'g' => 'f': Operation not supported
[71] patch -p0 < fg.diff -- FAILED
--- expected
+++ got
@@ -1,4 +1,13 @@
patching file f
Hunk #1 succeeded at 1 (offset -1 lines).
-patching file g
-Hunk #1 succeeded at 1 (offset -1 lines).
+can't find file to patch at input line 8
+Perhaps you used the wrong -p or --strip option?
+The text leading up to this was:
+--------------------------
+|--- g.orig
+|+++ g
+--------------------------
+File to patch:
+Skip this patch? [y]
+Skipping patch.
+1 out of 1 hunk ignored
[78] cat f.orig -- ok
[82] cat g.orig -- FAILED
--- expected
+++ got
@@ -1 +1 @@
-one
+cat: g.orig: No such file or directory
[101] patch --backup -p0 < f.diff -- ok
[106] cat f.orig -- ok
[110] cat f -- ok
8 tests (6 passed, 2 failed)
FAIL remember-backup-files (exit status: 1)
FAIL: unmodified-files
======================
ln: failed to create hard link 'a.first' => 'a': Operation not supported
[31] patch -b -B backup/ a < a.diff || echo "Status: $?" -- ok
[38] test a -ef a.first -- FAILED
[40] cat backup/a -- ok
[53] patch -o b a < a.diff -- ok
[57] cat b -- ok
5 tests (4 passed, 1 failed)
FAIL unmodified-files (exit status: 1)
================================================
GNU patch 2025-02-03: tests/test-suite.log
================================================
# TOTAL: 47
# PASS: 37
# SKIP: 5
# XFAIL: 2
# FAIL: 3
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
FAIL: concat-git-diff
=====================
[48] patch -p1 < concatenated.diff || echo "Status: $?" -- FAILED
--- expected
+++ got
@@ -1,4 +1,9 @@
patching file f
patching file f
patching file f
+Hunk #1 FAILED at 1.
+1 out of 1 hunk FAILED -- saving rejects to file f.rej
patching file f
+Hunk #1 FAILED at 1.
+1 out of 1 hunk FAILED -- saving rejects to file f.rej
+Status: 1
[55] cat f -- FAILED
--- expected
+++ got
@@ -1 +1 @@
-three
+one
[82] patch -p1 < concat2.diff || echo "Status: $?" -- ok
[87] cat f -- ok
[117] patch -p1 < concat3.diff || echo "Status: $?" -- ok
[122] cat f -- ok
6 tests (4 passed, 2 failed)
FAIL concat-git-diff (exit status: 1)
FAIL: preserve-mode-and-timestamp
=================================
[46] patch -p1 --backup --set-utc < f.diff -- FAILED
--- expected
+++ got
@@ -1 +1,2 @@
patching file f
+Not setting time of file f (time mismatch)
[56] test ! \( f -ot f.compare -o f -nt f.compare \) || echo "timestamp differs" -- FAILED
--- expected
+++ got
@@ -1 +1 @@
-
+timestamp differs
[61] ls -l f.orig | sed "s,\(..........\).*,\1," -- ok
[74] patch -p1 --backup --set-utc < f.diff || echo "Status: $?" -- ok
[82] ls -l f.rej | sed "s,\(..........\).*,\1," -- ok
[95] patch -p1 --backup --set-utc < f.diff || echo "Status: $?" -- ok
[103] ls -l f.rej | sed "s,\(..........\).*,\1," -- ok
[118] patch -p1 --backup --set-utc < f.diff -- ok
[122] test ! \( f -ot f.compare -o f -nt f.compare \) || echo "timestamp differs" -- FAILED
--- expected
+++ got
@@ -1 +1 @@
-
+timestamp differs
9 tests (6 passed, 3 failed)
FAIL preserve-mode-and-timestamp (exit status: 1)
FAIL: remember-backup-files
===========================
[38] patch -p0 < f.diff -- ok
[47] cat f.orig -- ok
[66] patch --backup -p0 < f.diff -- FAILED
--- expected
+++ got
@@ -1,2 +1,4 @@
patching file f
patching file f
+Hunk #1 FAILED at 1.
+1 out of 1 hunk FAILED -- saving rejects to file f.rej
[71] cat f.orig -- ok
[75] cat f -- FAILED
--- expected
+++ got
@@ -1 +1 @@
-two
+cat: f: No such file or directory
5 tests (3 passed, 2 failed)
FAIL remember-backup-files (exit status: 1)