diff --git a/nixos/release.nix b/nixos/release.nix index b80ab44eced..a91dda5fa74 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -422,6 +422,7 @@ in rec { tests.yabar = callTest tests/yabar.nix {}; tests.zookeeper = callTest tests/zookeeper.nix {}; tests.morty = callTest tests/morty.nix { }; + tests.bcachefs = callTest tests/bcachefs.nix { }; /* Build a bunch of typical closures so that Hydra can keep track of the evolution of closure sizes. */ diff --git a/nixos/tests/bcachefs.nix b/nixos/tests/bcachefs.nix new file mode 100644 index 00000000000..658676ef0ab --- /dev/null +++ b/nixos/tests/bcachefs.nix @@ -0,0 +1,38 @@ +import ./make-test.nix ({ pkgs, ... }: { + name = "bcachefs"; + meta.maintainers = with pkgs.stdenv.lib.maintainers; [ chiiruno ]; + + machine = { pkgs, ... }: { + virtualisation.emptyDiskImages = [ 4096 ]; + networking.hostId = "deadbeef"; + boot.supportedFilesystems = [ "bcachefs" ]; + environment.systemPackages = with pkgs; [ parted ]; + }; + + testScript = '' + $machine->succeed("modprobe bcachefs"); + $machine->succeed("bcachefs version"); + $machine->succeed("ls /dev"); + + $machine->succeed( + "mkdir /tmp/mnt", + + "udevadm settle", + "parted --script /dev/vdb mklabel msdos", + "parted --script /dev/vdb -- mkpart primary 1024M -1s", + "udevadm settle", + + # Due to #32279, we cannot use encryption for this test yet + # "echo password | bcachefs format --encrypted /dev/vdb1", + # "echo password | bcachefs unlock /dev/vdb1", + "bcachefs format /dev/vdb1", + "mount -t bcachefs /dev/vdb1 /tmp/mnt", + "udevadm settle", + + "bcachefs fs usage /tmp/mnt", + + "umount /tmp/mnt", + "udevadm settle" + ); + ''; +})