1import ./make-test-python.nix (
2 { lib, pkgs, ... }:
3 {
4 name = "btrbk-no-timer";
5 meta.maintainers = with lib.maintainers; [ oxalica ];
6
7 nodes.machine =
8 { ... }:
9 {
10 environment.systemPackages = with pkgs; [ btrfs-progs ];
11 services.btrbk.instances.local = {
12 onCalendar = null;
13 settings.volume."/mnt" = {
14 snapshot_dir = "btrbk/local";
15 subvolume = "to_backup";
16 };
17 };
18 };
19
20 testScript = ''
21 start_all()
22
23 # Create btrfs partition at /mnt
24 machine.succeed("truncate --size=128M /data_fs")
25 machine.succeed("mkfs.btrfs /data_fs")
26 machine.succeed("mkdir /mnt")
27 machine.succeed("mount /data_fs /mnt")
28 machine.succeed("btrfs subvolume create /mnt/to_backup")
29 machine.succeed("mkdir -p /mnt/btrbk/local")
30
31 # The service should not have any triggering timer.
32 unit = machine.get_unit_info('btrbk-local.service')
33 assert "TriggeredBy" not in unit
34
35 # Manually starting the service should still work.
36 machine.succeed("echo foo > /mnt/to_backup/bar")
37 machine.start_job("btrbk-local.service")
38 machine.wait_until_succeeds("cat /mnt/btrbk/local/*/bar | grep foo")
39 '';
40 }
41)