X-Git-Url: http://git.scottworley.com/syncthing-autoregister/blobdiff_plain/e16b7079a4e2f5c8e9c1168667c8420e2a751626..4ac4946095213d617adde6b5e7067298c61e6df9:/tests/automatic-enrollment.nix?ds=sidebyside diff --git a/tests/automatic-enrollment.nix b/tests/automatic-enrollment.nix index 803013d..617f672 100644 --- a/tests/automatic-enrollment.nix +++ b/tests/automatic-enrollment.nix @@ -49,23 +49,49 @@ import ({ pkgs, lib, ... }: }; testScript = '' + import os + + def setConfig(machine, config): machine.copy_from_host(config, "/etc/nixos/configuration.nix") def verifyDeviceIDSet(machine, expectedDevice): - machine.succeed( + machine.wait_until_succeeds( '(( "$(nix eval --raw -f "" config.services.syncthing.declarative.devices.%s.id | wc -c)" == 63 ))' % expectedDevice ) + def getDeviceFile(machine): + machine.copy_from_vm("${deviceIDFilename}") + + + def putDeviceFile(machine): + hostDeviceIDFilename = os.path.join( + os.environ["out"], + os.path.basename("${deviceIDFilename}"), + ) + machine.copy_from_host( + hostDeviceIDFilename, "${deviceIDFilename}" + ) + machine.succeed("chown syncthing ${deviceIDFilename}") + + configurationWithDeviceIDs = ( "${configurationWithDeviceIDs}" ) + start_all() a.wait_for_unit("syncthing-autoregister.service") setConfig(a, configurationWithDeviceIDs) verifyDeviceIDSet(a, "a") + getDeviceFile(a) + + b.wait_for_unit("syncthing-autoregister.service") + putDeviceFile(b) + setConfig(b, configurationWithDeviceIDs) + verifyDeviceIDSet(b, "a") + verifyDeviceIDSet(b, "b") ''; })