@@ -218,6 +218,7 @@ rec {
218 build-vms = import ./build-vms.nix {
218 build-vms = import ./build-vms.nix {
219 inherit system lib pkgs minimal specialArgs;
219 inherit system lib pkgs minimal specialArgs;
220 extraConfigurations = extraConfigurations ++ [(
220 extraConfigurations = extraConfigurations ++ [(
222 virtualisation.qemu.package = qemu_pkg;
223 virtualisation.qemu.package = qemu_pkg;
@@ -230,7 +231,17 @@ rec {
230 # copied to the image.
231 # copied to the image.
231 virtualisation.additionalPaths =
232 virtualisation.additionalPaths =
232 lib.optional
233 lib.optional
234+ # A testScript may evaluate nodes, which has caused
235+ # infinite recursions. The demand cycle involves:
239+ # additionalPaths -->
240+ # hasContext testScript' -->
241+ # testScript (ad infinitum)
242+ # If we don't need to build an image, we can break this
243+ # cycle by short-circuiting when useNixStoreImage is false.
233− (builtins.hasContext testScript')
244+ (config.virtualisation.useNixStoreImage && builtins.hasContext testScript')
234 (pkgs.writeStringReferencesToFile testScript');
245 (pkgs.writeStringReferencesToFile testScript');
236 # Ensure we do not use aliases. Ideally this is only set
247 # Ensure we do not use aliases. Ideally this is only set