openDefaultPorts = true;
autoRegister = {
enable = true;
+ path = "/tmp/syncthing-auto-register-test-device-ids.nix";
};
};
environment.systemPackages = with pkgs; [ nix ];
}
'';
+ initialConfiguration = pkgs.writeText "initial-configuration.nix" ''
+ {
+ imports = [ "${configuration}" ];
+ system.activationScripts.installInitialConfiguration = {
+ text = '''
+ mkdir -p /etc/nixos
+ cp "${configuration}" /etc/nixos/configuration.nix
+ ''';
+ deps = [ ];
+ };
+ }
+ '';
+ configurationWithDeviceIDs =
+ pkgs.writeText "configuration-with-device-ids.nix" ''
+ {
+ imports = [
+ ${configuration}
+ /tmp/syncthing-auto-register-test-device-ids.nix
+ ];
+ }
+ '';
in {
name = "syncthing";
- machine = "${configuration}";
+ nodes = {
+ a = "${initialConfiguration}";
+ b = "${initialConfiguration}";
+ };
testScript = ''
- machine.copy_from_host(
- "${configuration}",
- "/etc/nixos/configuration.nix",
- )
- machine.wait_for_unit("syncthing-autoregister.service")
- machine.succeed(
- '(( "$(nix eval --raw -f /tmp/syncthing-auto-register-test-device-ids.nix services.syncthing.declarative.devices.machine.id | wc -c)" == 63 ))'
+ def setConfig(machine, config):
+ machine.copy_from_host(config, "/etc/nixos/configuration.nix")
+
+
+ def verifyDeviceIDSet(machine, expectedDevice):
+ machine.succeed(
+ '(( "$(nix eval --raw -f "<nixos/nixos>" config.services.syncthing.declarative.devices.%s.id | wc -c)" == 63 ))'
+ % expectedDevice
+ )
+
+
+ configurationWithDeviceIDs = (
+ "${configurationWithDeviceIDs}"
)
+
+ a.wait_for_unit("syncthing-autoregister.service")
+ setConfig(a, configurationWithDeviceIDs)
+ verifyDeviceIDSet(a, "a")
'';
})