Improve FreeBSD tests & use a ZFS mount for the CI's testtmp.
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:
[ -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" ;;
done
}
;;
+ freebsd*)
+ chown() {
+ own=$1
+ shift
+ setextattr -h user "rsync.%stat" "100644 0,0 $own" "${@}"
+ }
+ ;;
*)
chown() {
own=$1
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"
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"