From eae9402223c979af3309cb3caf83a4caab155440 Mon Sep 17 00:00:00 2001 From: Andrea Mazzoleni Date: Wed, 9 Sep 2026 07:46:16 +0200 Subject: [PATCH] Add Bcachefs snapshot testing to the Linux CI workflow --- Makefile.am | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/Makefile.am b/Makefile.am index 2e86bde9..f4f1e37e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -365,6 +365,15 @@ snapcheck_btrfs: mktest$(EXEEXT) checker$(EXEEXT) setupcheck if test $$cleanup_status -ne 0; then exit $$cleanup_status; fi; \ exit $$status +# Not included in main check because it requires root permissions +snapcheck_bcachefs: mktest$(EXEEXT) checker$(EXEEXT) setupcheck + sudo $(MAKE) snapcheck_bcachefs_run; \ + status=$$?; \ + sudo $(MAKE) snapcheck_bcachefs_cleanup; \ + cleanup_status=$$?; \ + if test $$cleanup_status -ne 0; then exit $$cleanup_status; fi; \ + exit $$status + # Not included in main check because it requires root permissions snapcheck_zfs: mktest$(EXEEXT) checker$(EXEEXT) setupcheck sudo $(MAKE) snapcheck_zfs_run; \ @@ -399,6 +408,25 @@ snapcheck_btrfs_run: mount -o loop bench/snap3.img bench/snap3 $(MAKE) snapcheck_run SNAPCHECK_SHOW=snapcheck_btrfs_show +snapcheck_bcachefs_run: + mkdir bench/snap1 + mkdir bench/snap2 + mkdir bench/snap3 + $(MSG) Create Bcachefs storages + truncate -s 1G bench/snap1.img + truncate -s 1G bench/snap2.img + truncate -s 1G bench/snap3.img + losetup --find --show bench/snap1.img > bench/snap1.loop + losetup --find --show bench/snap2.img > bench/snap2.loop + losetup --find --show bench/snap3.img > bench/snap3.loop + bcachefs format -f $$(cat bench/snap1.loop) + bcachefs format -f $$(cat bench/snap2.loop) + bcachefs format -f $$(cat bench/snap3.loop) + mount -t bcachefs $$(cat bench/snap1.loop) bench/snap1 + mount -t bcachefs $$(cat bench/snap2.loop) bench/snap2 + mount -t bcachefs $$(cat bench/snap3.loop) bench/snap3 + $(MAKE) snapcheck_run SNAPCHECK_SHOW=snapcheck_bcachefs_show + snapcheck_zfs_run: mkdir bench/snap1 mkdir bench/snap2 @@ -423,6 +451,12 @@ snapcheck_btrfs_show: if test -d "$$dir/.snapraid"; then ls -la "$$dir/.snapraid"; else echo " (missing)"; fi; \ done +snapcheck_bcachefs_show: + @for dir in bench/snap1 bench/snap2 bench/snap3; do \ + echo "$$dir/.snapraid:"; \ + if test -d "$$dir/.snapraid"; then ls -la "$$dir/.snapraid"; else echo " (missing)"; fi; \ + done + snapcheck_zfs_show: @pool=$$(cat bench/snap-zpool); \ zfs list -t snapshot -r "$$pool" @@ -513,6 +547,22 @@ snapcheck_btrfs_cleanup: rm -rf bench; \ rm -f test.log +snapcheck_bcachefs_cleanup: + $(MSG) Cleanup Bcachefs storages + status=0; \ + for dir in bench/snap1 bench/snap2 bench/snap3; do \ + if mountpoint -q $$dir; then umount $$dir || status=1; fi; \ + done; \ + for loopfile in bench/snap1.loop bench/snap2.loop bench/snap3.loop; do \ + if test -f $$loopfile; then \ + dev=$$(cat $$loopfile); \ + if losetup $$dev >/dev/null 2>&1; then losetup -d $$dev || status=1; fi; \ + fi; \ + done; \ + if test $$status -ne 0; then exit $$status; fi; \ + rm -rf bench; \ + rm -f test.log + snapcheck_zfs_cleanup: $(MSG) Cleanup ZFS storage if test -f bench/snap-zpool; then \