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