Improve FreeBSD tests (#61)
authorBen RUBSON <6764151+benrubson@users.noreply.github.com>
Sun, 12 Jul 2020 19:36:02 +0000 (21:36 +0200)
committerGitHub <noreply@github.com>
Sun, 12 Jul 2020 19:36:02 +0000 (12:36 -0700)
Improve FreeBSD tests & use a ZFS mount for the CI's testtmp.

.cirrus.yml
runtests.sh
testsuite/chown.test
testsuite/devices.test
testsuite/xattrs.test

index a8acc38274f4cdfb4822f5a32a92500ae7050256..9d5f5a35f756dd505b5dffebc2c4169a81a8e5e0 100644 (file)
@@ -3,6 +3,8 @@ task:
   freebsd_instance:
     image: freebsd-12-1-release-amd64
   prep_script:
+    - dd if=/dev/zero of=/tmp/zpool bs=1M count=1024
+    - zpool create -m `pwd`/testtmp zpool /tmp/zpool
     - pkg install -y autotools xxhash zstd liblz4 openssl bash
     - ln -s /usr/local/bin/bash /bin/bash
   configure_script:
index 536543f84cf038aaf91a1f3c297f7033b61bc8ad..d5a174cbba8164bc704a4e0b64e2a5a876f02960 100755 (executable)
@@ -249,7 +249,7 @@ prep_scratch() {
     [ -d "$scratchdir" ] && chmod -R u+rwX "$scratchdir" && rm -rf "$scratchdir"
     mkdir "$scratchdir"
     # Get rid of default ACLs and dir-setgid to avoid confusing some tests.
-    $setfacl_nodef "$scratchdir" || true
+    $setfacl_nodef "$scratchdir" 2>/dev/null || true
     chmod g-s "$scratchdir"
     case "$srcdir" in
     /*) ln -s "$srcdir" "$scratchdir/src" ;;
index 1464c65a80babe916fb28f71b29674bc439291f0..3aec55a9b4ffb559f3edc99267f5280591021e8b 100644 (file)
@@ -37,6 +37,13 @@ EOF
            done
        }
        ;;
+    freebsd*)
+       chown() {
+           own=$1
+           shift
+           setextattr -h user "rsync.%stat" "100644 0,0 $own" "${@}"
+       }
+       ;;
     *)
        chown() {
            own=$1
index 908898c2abe75d87a31f19312614b6c49c749ed1..773c543f3dd3b6bfb52574d7e4fcf0193f38d5b5 100644 (file)
@@ -50,6 +50,20 @@ echo "$mode $maj,$min 0:0" > rsync.%stat
 EOF
        }
        ;;
+    freebsd*)
+       mknod() {
+           fn="$1"
+           case "$2" in
+           p) mode=10644 ;;
+           c) mode=20644 ;;
+           b) mode=60644 ;;
+           esac
+           maj="${3:-0}"
+           min="${4:-0}"
+           touch "$fn"
+           setextattr -h user "rsync.%stat" "$mode $maj,$min 0:0" "$fn"
+       }
+       ;;
     *)
        mknod() {
            fn="$1"
index 5931ffcda6b9281f236d0b599c57a3cdd1569bea..59fe1601f61f379adbb044024c227290678ae05e 100644 (file)
@@ -45,6 +45,19 @@ EOF
     RSYNC_PREFIX='rsync'
     RUSR='rsync.nonuser'
     ;;
+freebsd*)
+    xset() {
+       xnam="$1"
+       xval="$2"
+       shift 2
+       setextattr -h user "$xnam" "$xval" "${@}"
+    }
+    xls() {
+       for f in "${@}"; do lsextattr -q -h user "$f" | tr '[[:space:]]' '\n' | sort | xargs -I % getextattr -h user % "$f"; done
+    }
+    RSYNC_PREFIX='rsync'
+    RUSR='rsync'
+    ;;
 *)
     xset() {
        xnam="$1"