about summary refs log tree commit diff
path: root/nixos/tests/nix-required-mounts
diff options
context:
space:
mode:
authorSomeone Serge <sergei.kozlukov@aalto.fi>2023-10-19 11:42:26 +0300
committerSomeone Serge <sergei.kozlukov@aalto.fi>2024-06-26 00:35:43 +0000
commit6662b099419d568a7d682e5b851f7f51b34cd589 (patch)
tree9d47dcc8161b8efbb427089f7480b71e2f7be229 /nixos/tests/nix-required-mounts
parent6859a2dabc356bc0d575e98c46a215fd83d31fb7 (diff)
nix-required-mounts: handle __structuredAttrs
Diffstat (limited to 'nixos/tests/nix-required-mounts')
-rw-r--r--nixos/tests/nix-required-mounts/default.nix5
-rw-r--r--nixos/tests/nix-required-mounts/test-structured-attrs-empty.nix10
-rw-r--r--nixos/tests/nix-required-mounts/test-structured-attrs.nix15
3 files changed, 29 insertions, 1 deletions
diff --git a/nixos/tests/nix-required-mounts/default.nix b/nixos/tests/nix-required-mounts/default.nix
index ee6f7db5ee986..4550e6ac50a22 100644
--- a/nixos/tests/nix-required-mounts/default.nix
+++ b/nixos/tests/nix-required-mounts/default.nix
@@ -14,7 +14,8 @@ in
     system.extraDependencies = [ (pkgs.runCommand "deps" { } "mkdir $out").inputDerivation ];
     nix.nixPath = [ "nixpkgs=${../../..}" ];
     nix.settings.substituters = lib.mkForce [ ];
-    nix.settings.system-features = [ "supported-feature" ]; nix.settings.experimental-features = [ "nix-command" ];
+    nix.settings.system-features = [ "supported-feature" ];
+    nix.settings.experimental-features = [ "nix-command" ];
     programs.nix-required-mounts.enable = true;
     programs.nix-required-mounts.allowedPatterns.supported-feature = {
       onFeatures = [ "supported-feature" ];
@@ -40,5 +41,7 @@ in
     person_do("nix-build ${./ensure-path-not-present.nix} --argstr feature supported-feature")
     person_do("nix-build ${./test-require-feature.nix} --argstr feature supported-feature")
     person_do("nix-build ${./test-require-feature.nix} --argstr feature unsupported-feature", succeed=False)
+    person_do("nix-build ${./test-structured-attrs.nix} --argstr feature supported-feature")
+    person_do("nix-build ${./test-structured-attrs-empty.nix}")
   '';
 }
diff --git a/nixos/tests/nix-required-mounts/test-structured-attrs-empty.nix b/nixos/tests/nix-required-mounts/test-structured-attrs-empty.nix
new file mode 100644
index 0000000000000..d788c6773c8e0
--- /dev/null
+++ b/nixos/tests/nix-required-mounts/test-structured-attrs-empty.nix
@@ -0,0 +1,10 @@
+{ pkgs ? import <nixpkgs> { } }:
+
+pkgs.runCommandNoCC "nix-required-mounts-structured-attrs-no-features"
+{
+  __structuredAttrs = true;
+} ''
+  touch $out
+''
+
+
diff --git a/nixos/tests/nix-required-mounts/test-structured-attrs.nix b/nixos/tests/nix-required-mounts/test-structured-attrs.nix
new file mode 100644
index 0000000000000..fecd2c32eec0d
--- /dev/null
+++ b/nixos/tests/nix-required-mounts/test-structured-attrs.nix
@@ -0,0 +1,15 @@
+{ pkgs ? import <nixpkgs> { }, feature }:
+
+pkgs.runCommandNoCC "${feature}-present-structured"
+{
+  __structuredAttrs = true;
+  requiredSystemFeatures = [ feature ];
+} ''
+  if [[ -e /${feature}-files ]]; then
+    touch $out
+  else
+    echo "The host declares ${feature} support, but doesn't expose /${feature}-files" >&2
+    echo "Do we fail to parse __structuredAttrs=true derivations?" >&2
+  fi
+''
+