nixosTest: Fix infinite recursion involving hasContext testScript when useNixStoreImage = true
The involved test was nixosTests.nextcloud.basic21.
It has a testScript that is strict in nodes.nextcloud.config.system.build.vm,
in assertions about imagemagick being in the system closure.
The recursion was introduced in 329a4461a7
from
https://github.com/NixOS/nixpkgs/pull/140792
This commit is contained in:
parent
67e9f0551f
commit
56c4f9d005
|
@ -218,6 +218,7 @@ rec {
|
||||||
build-vms = import ./build-vms.nix {
|
build-vms = import ./build-vms.nix {
|
||||||
inherit system lib pkgs minimal specialArgs;
|
inherit system lib pkgs minimal specialArgs;
|
||||||
extraConfigurations = extraConfigurations ++ [(
|
extraConfigurations = extraConfigurations ++ [(
|
||||||
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
virtualisation.qemu.package = qemu_pkg;
|
virtualisation.qemu.package = qemu_pkg;
|
||||||
|
|
||||||
|
@ -230,7 +231,17 @@ rec {
|
||||||
# copied to the image.
|
# copied to the image.
|
||||||
virtualisation.additionalPaths =
|
virtualisation.additionalPaths =
|
||||||
lib.optional
|
lib.optional
|
||||||
(builtins.hasContext testScript')
|
# A testScript may evaluate nodes, which has caused
|
||||||
|
# infinite recursions. The demand cycle involves:
|
||||||
|
# testScript -->
|
||||||
|
# nodes -->
|
||||||
|
# toplevel -->
|
||||||
|
# additionalPaths -->
|
||||||
|
# hasContext testScript' -->
|
||||||
|
# testScript (ad infinitum)
|
||||||
|
# If we don't need to build an image, we can break this
|
||||||
|
# cycle by short-circuiting when useNixStoreImage is false.
|
||||||
|
(config.virtualisation.useNixStoreImage && builtins.hasContext testScript')
|
||||||
(pkgs.writeStringReferencesToFile testScript');
|
(pkgs.writeStringReferencesToFile testScript');
|
||||||
|
|
||||||
# Ensure we do not use aliases. Ideally this is only set
|
# Ensure we do not use aliases. Ideally this is only set
|
||||||
|
|
Loading…
Reference in a new issue