And adjust test-xdev to be able to handle a default ACL on the parent
dir. Noticed because the gh runner currently has one.
Signed-off-by: Rob Browning <
r...@defaultvalue.org>
Tested-by: Rob Browning <
r...@defaultvalue.org>
---
.cirrus.yml | 98 -----------------------------------
.github/workflows/general.yml | 46 ++++++++++++++++
test/ext/test-xdev | 13 +++--
3 files changed, 56 insertions(+), 101 deletions(-)
delete mode 100644 .cirrus.yml
create mode 100644 .github/workflows/general.yml
diff --git a/.cirrus.yml b/.cirrus.yml
deleted file mode 100644
index 7568801a..00000000
--- a/.cirrus.yml
+++ /dev/null
@@ -1,98 +0,0 @@
-
-task:
- name: debian check (root)
- only_if: $CIRRUS_BRANCH != "master"
- container:
- image: debian:bookworm
- cpu: 4
- memory: 2
- script: |
- set -xe
- dev/prep-for-debianish-build
- export LANG=C.UTF-8
- dev/system-info
- modprobe -q fuse || true
- modprobe -q loop || true
- BUP_PYTHON_CONFIG=python3-config ./configure --with-pylint=yes
- make -j6 check
- on_failure:
- debug_script:
- test -e config/config.vars || cat config.log 1>&2
-
-task:
- name: debian long-check
- only_if: $CIRRUS_BRANCH != "master"
- container:
- image: debian:bookworm
- cpu: 4
- memory: 2
- script: |
- set -xe
- dev/prep-for-debianish-build
- export LANG=C.UTF-8
- DEBIAN_FRONTEND=noninteractive apt-get -y install bup
- export BUP_TEST_OTHER_BUP="$(command -v bup)"
- "$BUP_TEST_OTHER_BUP" version
- dev/system-info
- adduser --disabled-password --gecos '' bup
- chown -R bup:bup .
- printf "make -j6 -C %q BUP_PYTHON_CONFIG=python3-config long-check" \
- "$(pwd)" | su -l -w BUP_TEST_OTHER_BUP bup
- on_failure:
- debug_script:
- test -e config/config.vars || cat config.log 1>&2
-
-task:
- name: debian check / lint
- only_if: $CIRRUS_BRANCH != "master"
- container:
- image: debian:trixie
- cpu: 4
- memory: 2
- script: |
- set -xe
- dev/prep-for-debianish-build
- export LANG=C.UTF-8
- dev/system-info
- adduser --disabled-password --gecos '' bup
- chown -R bup:bup .
- printf "make -j6 -C %q BUP_PYTHON_CONFIG=python3-config dev-check" \
- "$(pwd)" | su -l bup
- on_failure:
- debug_script:
- test -e config/config.vars || cat config.log 1>&2
-
-task:
- name: freebsd check / lint
- only_if: $CIRRUS_BRANCH != "master"
- freebsd_instance:
- image: freebsd-13-5-release-amd64
- cpu: 4
- memory: 4
- script: |
- set -xe
- dev/prep-for-freebsd-build
- dev/system-info
- gmake -j6 dev-check
- on_failure:
- debug_script:
- test -e config/config.vars || cat config.log 1>&2
-
-task:
- name: macos check / lint
- only_if: $CIRRUS_BRANCH != "master"
- macos_instance:
- #
https://cirrus-ci.org/guide/macOS/
- image:
ghcr.io/cirruslabs/macos-runner:sonoma
- script: |
- set -xe
- dev/prep-for-macos-build
- brew install bup
- export BUP_TEST_OTHER_BUP="$(command -v bup)"
- "$BUP_TEST_OTHER_BUP" version
- export PKG_CONFIG_PATH=/usr/local/opt/readline/lib/pkgconfig
- dev/system-info
- gmake -j6 BUP_PYTHON_CONFIG=python3-config LDFLAGS=-L/usr/local/lib dev-check
- on_failure:
- debug_script:
- test -e config/config.vars || cat config.log 1>&2
diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml
new file mode 100644
index 00000000..0d625eda
--- /dev/null
+++ b/.github/workflows/general.yml
@@ -0,0 +1,46 @@
+name: general
+on: [push]
+defaults:
+ run:
+ shell: bash
+jobs:
+ ubuntu:
+ name: ubuntu long-check (root)
+ runs-on: ubuntu-24.04
+ steps:
+ - run: |
+ # We have to run our tests outside the runner-owned
+ # /home/runner tree; otherwise test-help fails because man,
+ # via "bup help save", gets EACCES for Documentation/. So
+ # we'll just clone into an independent /home/bup.
+ sudo -i gh_repo="$GITHUB_REPOSITORY" gh_ref="$GITHUB_REF_NAME" -- bash <<'EOF'
+ set -uexo pipefail
+ git clone --depth 10 -b "$gh_ref" "
https://github.com/$gh_repo.git" /home/bup
+ cd /home/bup
+ dev/prep-for-debianish-build
+ DEBIAN_FRONTEND=noninteractive apt-get -y install bup
+ other_bup="$(command -v bup)"
+ "$other_bup" version
+ dev/system-info
+ BUP_TEST_OTHER_BUP="$other_bup" make -j "$(($(nproc) + 1))" long-check
+ EOF
+ macos:
+ name: macos lint/check
+ runs-on: macos-15
+ defaults:
+ run:
+ shell: bash
+ steps:
+ - run: |
+ set -ueo pipefail
+ git clone --depth 10 -b "$GITHUB_REF_NAME" "
https://github.com/$GITHUB_REPOSITORY.git"
+ cd bup
+ dev/prep-for-macos-build
+ brew install bup
+ export BUP_TEST_OTHER_BUP="$(command -v bup)"
+ "$BUP_TEST_OTHER_BUP" version
+ export PKG_CONFIG_PATH=/usr/local/opt/readline/lib/pkgconfig
+ dev/system-info
+ trap 'test -e config/config.vars || cat config.log 1>&2' EXIT
+ export BUP_PYTHON_CONFIG=python3-config LANG=en_US.UTF-8
+ gmake -j "$(($(sysctl -n hw.logicalcpu) + 1))" LDFLAGS=-L/usr/local/lib dev-check
diff --git a/test/ext/test-xdev b/test/ext/test-xdev
index 00812439..a0487f22 100755
--- a/test/ext/test-xdev
+++ b/test/ext/test-xdev
@@ -38,13 +38,20 @@ WVPASS mkfs -t ext4 -F testfs-1.img
WVPASS mkfs -t ext4 -F testfs-2.img
WVPASS mkdir -p src/mnt-1/hidden-1 src/mnt-2/hidden-2
-WVEXPRC '*' mount -o loop,user_xattr testfs-1.img src/mnt-1
+WVEXPRC '*' mount -o loop,user_xattr,acl testfs-1.img src/mnt-1
if test "$?" -ne 0; then
WVSKIP 'Unable to mount via loopback'
exit 0
fi
-
-WVPASS mount -o loop,ext_attr,user_xattr testfs-2.img src/mnt-2
+WVPASS mount -o loop,user_xattr,acl testfs-2.img src/mnt-2
+
+# The new filesystems' roots (and their contents) won't have any
+# default attributes (e.g. ACLs) that directories created via mkdir
+# (or bup restore) do. Fix that to avoid avoid spurious compare-trees
+# differences.
+WVPASS rmdir src/mnt-1/lost+found src/mnt-2/lost+found
+WVPASS rsync -aHAX -d --no-recursive --exclude='*' -i src/ src/mnt-1/
+WVPASS rsync -aHAX -d --no-recursive --exclude='*' -i src/ src/mnt-2/
WVPASS touch src/1
--
2.47.3