at 18.09-beta 1.2 kB view raw
1import ./make-test.nix ({ ... }: 2{ 3 name = "snapper"; 4 5 machine = { pkgs, lib, ... }: { 6 boot.initrd.postDeviceCommands = '' 7 ${pkgs.btrfs-progs}/bin/mkfs.btrfs -f -L aux /dev/vdb 8 ''; 9 10 virtualisation.emptyDiskImages = [ 4096 ]; 11 12 fileSystems = lib.mkVMOverride { 13 "/home" = { 14 device = "/dev/disk/by-label/aux"; 15 fsType = "btrfs"; 16 }; 17 }; 18 services.snapper.configs.home.subvolume = "/home"; 19 services.snapper.filters = "/nix"; 20 }; 21 22 testScript = '' 23 $machine->succeed("btrfs subvolume create /home/.snapshots"); 24 25 $machine->succeed("snapper -c home list"); 26 27 $machine->succeed("snapper -c home create --description empty"); 28 29 $machine->succeed("echo test > /home/file"); 30 $machine->succeed("snapper -c home create --description file"); 31 32 $machine->succeed("snapper -c home status 1..2"); 33 34 $machine->succeed("snapper -c home undochange 1..2"); 35 $machine->fail("ls /home/file"); 36 37 $machine->succeed("snapper -c home delete 2"); 38 39 $machine->succeed("systemctl --wait start snapper-timeline.service"); 40 41 $machine->succeed("systemctl --wait start snapper-cleanup.service"); 42 ''; 43})