1import ./make-test-python.nix ({ lib, pkgs, ... }: {
2 name = "systemd-initrd-modprobe";
3
4 nodes.machine = { pkgs, ... }: {
5 testing.initrdBackdoor = true;
6 boot.initrd.systemd.enable = true;
7 boot.initrd.kernelModules = [ "loop" ]; # Load module in initrd.
8 boot.extraModprobeConfig = ''
9 options loop max_loop=42
10 '';
11 };
12
13 testScript = ''
14 machine.wait_for_unit("initrd.target")
15 max_loop = machine.succeed("cat /sys/module/loop/parameters/max_loop")
16 assert int(max_loop) == 42, "Parameter should be respected for initrd kernel modules"
17
18 # Make sure it sticks in stage 2
19 machine.switch_root()
20 machine.wait_for_unit("multi-user.target")
21 max_loop = machine.succeed("cat /sys/module/loop/parameters/max_loop")
22 assert int(max_loop) == 42, "Parameter should be respected for initrd kernel modules"
23 '';
24})