vuls: init at 0.27.0
[NixPkgs.git] / nixos / tests / swap-file-btrfs.nix
blob35b9fb4fa50ac7cb1bd9ffc51b86cc281e4d6a28
1 import ./make-test-python.nix ({ lib, ... }:
3   name = "swap-file-btrfs";
5   meta.maintainers = with lib.maintainers; [ oxalica ];
7   nodes.machine =
8     { pkgs, ... }:
9     {
10       virtualisation.useDefaultFilesystems = false;
12       virtualisation.rootDevice = "/dev/vda";
14       boot.initrd.postDeviceCommands = ''
15         ${pkgs.btrfs-progs}/bin/mkfs.btrfs --label root /dev/vda
16       '';
18       virtualisation.fileSystems = {
19         "/" = {
20           device = "/dev/disk/by-label/root";
21           fsType = "btrfs";
22         };
23       };
25       swapDevices = [
26         {
27           device = "/var/swapfile";
28           size = 1; # 1MiB.
29         }
30       ];
31     };
33   testScript = ''
34     machine.wait_for_unit('var-swapfile.swap')
35     # Ensure the swap file creation script ran to completion without failing when creating the swap file
36     machine.fail("systemctl is-failed --quiet mkswap-var-swapfile.service")
37     machine.succeed("stat --file-system --format=%T /var/swapfile | grep btrfs")
38     # First run. Auto creation.
39     machine.succeed("swapon --show | grep /var/swapfile")
41     machine.shutdown()
42     machine.start()
44     # Second run. Use it as-is.
45     machine.wait_for_unit('var-swapfile.swap')
46     # Ensure the swap file creation script ran to completion without failing when the swap file already exists
47     machine.fail("systemctl is-failed --quiet mkswap-var-swapfile.service")
48     machine.succeed("swapon --show | grep /var/swapfile")
49   '';