notes: 2.3.0 -> 2.3.1 (#352950)
[NixPkgs.git] / nixos / tests / fsck.nix
blob31ed8bdf78c0a955bac5d74278107fa146193944
1 { system ? builtins.currentSystem
2 , config ? {}
3 , pkgs ? import ../.. { inherit system config; }
4 , systemdStage1 ? false
5 }:
7 import ./make-test-python.nix {
8   name = "fsck";
10   nodes.machine = { lib, ... }: {
11     virtualisation.emptyDiskImages = [ 1 ];
13     virtualisation.fileSystems = {
14       "/mnt" = {
15         device = "/dev/vdb";
16         fsType = "ext4";
17         autoFormat = true;
18       };
19     };
21     boot.initrd.systemd.enable = systemdStage1;
22   };
24   testScript =  { nodes, ...}:
25   let
26     rootDevice = nodes.machine.virtualisation.rootDevice;
27   in
28   ''
29     machine.wait_for_unit("default.target")
31     with subtest("root fs is fsckd"):
32         machine.succeed("journalctl -b | grep '${if systemdStage1
33           then "fsck.*${builtins.baseNameOf rootDevice}.*clean"
34           else "fsck.ext4.*${rootDevice}"}'")
36     with subtest("mnt fs is fsckd"):
37         machine.succeed("journalctl -b | grep 'fsck.*vdb.*clean'")
38         machine.succeed(
39             "grep 'Requires=systemd-fsck@dev-vdb.service' /run/systemd/generator/mnt.mount"
40         )
41         machine.succeed(
42             "grep 'After=systemd-fsck@dev-vdb.service' /run/systemd/generator/mnt.mount"
43         )
44   '';