]> git.ipfire.org Git - thirdparty/rsync.git/commitdiff
testsuite/xattrs: ignore SUNWattr_* in the Solaris xls helper
authorAndrew Tridgell <andrew@tridgell.net>
Wed, 29 Apr 2026 22:18:01 +0000 (08:18 +1000)
committerAndrew Tridgell <andrew@tridgell.net>
Wed, 29 Apr 2026 23:25:58 +0000 (09:25 +1000)
The Solaris xls() function listed every entry in the file's xattr
directory, which on Solaris includes OS-managed SUNWattr_ro and
SUNWattr_rw pseudo-attributes. SUNWattr_rw embeds the file creation
time, so its bytes naturally differ between the source and destination
files, making the xattrs and xattrs-hlink tests fail with diffs that
have nothing to do with rsync.

Rsync's own listxattr wrapper already filters these out
(lib/sysxattrs.c), so the right fix is to filter them in the test
display too. Other platforms are unaffected because each has its own
xls() branch in the case statement.

With the test now actually passing on Solaris, drop the CI hack that
overwrote testsuite/xattrs.test with a skip stub.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
.github/workflows/solaris-build.yml
testsuite/xattrs.test

index a8d7869be2a11181876c5a6f50ee5a0074e339f2..e41e002dc6216111917d55e8070efe010557fa75 100644 (file)
@@ -34,11 +34,6 @@ jobs:
           ./configure --with-rrsync -disable-zstd --disable-md2man --disable-xxhash --disable-lz4
           make
           ./rsync --version
-          cat > testsuite/xattrs.test <<'EOF'
-          #!/bin/sh
-          . $suitedir/rsync.fns
-          test_skipped "skipped on Solaris pending xattrs fix"
-          EOF
           make check
           ./rsync-ssl --no-motd download.samba.org::rsyncftp/ || true
     - name: save artifact
index d94d5f9505bc6542c002d2264861f85c67c09ff2..c0f3784b031118a7134a6537f17973af1a6cd9a0 100644 (file)
@@ -38,7 +38,10 @@ EOF
     xls() {
        for fn in "${@}"; do
            runat "$fn" "$SHELL_PATH" <<EOF
-for x in *; do echo "\$x=\`cat \$x\`"; done
+for x in *; do
+    case "\$x" in SUNWattr_*) continue;; esac
+    echo "\$x=\`cat \$x\`"
+done
 EOF
        done
     }