1{ pkgs, ... }:
2{
3 name = "bcachefs";
4 meta.maintainers = with pkgs.lib.maintainers; [ Madouura ];
5
6 nodes.machine =
7 { pkgs, ... }:
8 {
9 virtualisation.emptyDiskImages = [ 4096 ];
10 networking.hostId = "deadbeef";
11 boot.supportedFilesystems = [ "bcachefs" ];
12 environment.systemPackages = with pkgs; [
13 parted
14 keyutils
15 ];
16 };
17
18 testScript = ''
19 machine.succeed("modprobe bcachefs")
20 machine.succeed("bcachefs version")
21 machine.succeed("ls /dev")
22
23 machine.succeed(
24 "mkdir /tmp/mnt",
25 "udevadm settle",
26 "parted --script /dev/vdb mklabel msdos",
27 "parted --script /dev/vdb -- mkpart primary 1024M 50% mkpart primary 50% -1s",
28 "udevadm settle",
29 "echo password | bcachefs format --encrypted --metadata_replicas 2 --label vtest /dev/vdb1 /dev/vdb2",
30 "echo password | bcachefs unlock -k session /dev/vdb1",
31 "echo password | mount -t bcachefs /dev/vdb1:/dev/vdb2 /tmp/mnt",
32 "udevadm settle",
33 "bcachefs fs usage /tmp/mnt",
34 "umount /tmp/mnt",
35 "udevadm settle",
36 )
37 '';
38}