1{ pkgs, ... }:
2{
3 name = "bcache";
4 meta.maintainers = with pkgs.lib.maintainers; [ pineapplehunter ];
5
6 nodes.machine =
7 { pkgs, ... }:
8 {
9 virtualisation.emptyDiskImages = [ 4096 ];
10 networking.hostId = "deadbeef";
11 boot.supportedFilesystems = [ "ext4" ];
12 environment.systemPackages = [ pkgs.parted ];
13 };
14
15 testScript = ''
16 machine.succeed("modprobe bcache")
17 machine.succeed("bcache version")
18 machine.succeed("ls /dev")
19
20 machine.succeed(
21 "mkdir /tmp/mnt",
22 "udevadm settle",
23 "parted --script /dev/vdb mklabel gpt",
24 "parted --script /dev/vdb mkpart primary 0% 50% mkpart primary 50% 100%",
25 "udevadm settle",
26 "bcache make -C /dev/vdb1",
27 "bcache make -B /dev/vdb2",
28 "udevadm settle",
29 "bcache attach /dev/vdb1 /dev/vdb2",
30 "bcache set-cachemode /dev/vdb2 writeback",
31 "udevadm settle",
32 "bcache show",
33 "ls /sys/fs/bcache",
34 "mkfs.ext4 /dev/bcache0",
35 "mount /dev/bcache0 /tmp/mnt",
36 "umount /tmp/mnt",
37 "udevadm settle",
38 )
39 '';
40}