nixos/stratis: add test for simple usecases

Nick Cao 4abf0ee7 ca03f2dc

Changed files
+45
nixos
+1
nixos/tests/all-tests.nix
···
sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {};
starship = handleTest ./starship.nix {};
step-ca = handleTestOn ["x86_64-linux"] ./step-ca.nix {};
+
stratis = handleTest ./stratis {};
strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
stunnel = handleTest ./stunnel.nix {};
sudo = handleTest ./sudo.nix {};
+7
nixos/tests/stratis/default.nix
···
+
{ system ? builtins.currentSystem
+
, pkgs ? import ../../.. { inherit system; }
+
}:
+
+
{
+
simple = import ./simple.nix { inherit system pkgs; };
+
}
+37
nixos/tests/stratis/simple.nix
···
+
import ../make-test-python.nix ({ pkgs, ... }:
+
{
+
name = "stratis";
+
+
meta = with pkgs.lib.maintainers; {
+
maintainers = [ nickcao ];
+
};
+
+
nodes.machine = { pkgs, ... }: {
+
services.stratis.enable = true;
+
virtualisation.emptyDiskImages = [ 1024 1024 1024 1024 ];
+
};
+
+
testScript = ''
+
machine.wait_for_unit("stratisd")
+
# test pool creation
+
machine.succeed("stratis pool create testpool /dev/vdb")
+
machine.succeed("stratis pool add-data testpool /dev/vdc")
+
machine.succeed("stratis pool init-cache testpool /dev/vdd")
+
machine.succeed("stratis pool add-cache testpool /dev/vde")
+
# test filesystem creation and rename
+
machine.succeed("stratis filesystem create testpool testfs0")
+
machine.succeed("stratis filesystem rename testpool testfs0 testfs1")
+
# test snapshot
+
machine.succeed("mkdir -p /mnt/testfs1 /mnt/testfs2")
+
machine.succeed("mount /dev/stratis/testpool/testfs1 /mnt/testfs1")
+
machine.succeed("echo test0 > /mnt/testfs1/test0")
+
machine.succeed("echo test1 > /mnt/testfs1/test1")
+
machine.succeed("stratis filesystem snapshot testpool testfs1 testfs2")
+
machine.succeed("echo test2 > /mnt/testfs1/test1")
+
machine.succeed("mount /dev/stratis/testpool/testfs2 /mnt/testfs2")
+
assert "test0" in machine.succeed("cat /mnt/testfs1/test0")
+
assert "test0" in machine.succeed("cat /mnt/testfs2/test0")
+
assert "test2" in machine.succeed("cat /mnt/testfs1/test1")
+
assert "test1" in machine.succeed("cat /mnt/testfs2/test1")
+
'';
+
})