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-11-11 14:02:54 +0000
committerSomeone Serge <sergei.kozlukov@aalto.fi>2024-06-26 00:35:43 +0000
commit5560f6a5141d9bcc6c3e0ac2e30c714874c1e076 (patch)
treeba547ebc081474069135147691abf1f4abd469d3 /nixos/tests/nix-required-mounts
parent7418e4fefd622eb1d1709353aa842e136896d70f (diff)
nix-required-mounts: guest and host paths may differ
Diffstat (limited to 'nixos/tests/nix-required-mounts')
-rw-r--r--nixos/tests/nix-required-mounts/default.nix13
-rw-r--r--nixos/tests/nix-required-mounts/test-require-feature.nix10
2 files changed, 18 insertions, 5 deletions
diff --git a/nixos/tests/nix-required-mounts/default.nix b/nixos/tests/nix-required-mounts/default.nix
index 4550e6ac50a22..38f94bf6fd989 100644
--- a/nixos/tests/nix-required-mounts/default.nix
+++ b/nixos/tests/nix-required-mounts/default.nix
@@ -19,10 +19,19 @@ in
     programs.nix-required-mounts.enable = true;
     programs.nix-required-mounts.allowedPatterns.supported-feature = {
       onFeatures = [ "supported-feature" ];
-      paths = [ "/supported-feature-files" ];
+      paths = [
+        "/supported-feature-files"
+        {
+          host = "/usr/lib/imaginary-fhs-drivers";
+          guest = "/run/opengl-driver/lib";
+        }
+      ];
     };
     users.users.person.isNormalUser = true;
-    virtualisation.fileSystems."/supported-feature-files".fsType = "tmpfs";
+    systemd.tmpfiles.rules = [
+      "d /supported-feature-files 0755 person users -"
+      "f /usr/lib/imaginary-fhs-drivers/libcuda.so 0444 root root -"
+    ];
   };
   testScript = ''
     import shlex
diff --git a/nixos/tests/nix-required-mounts/test-require-feature.nix b/nixos/tests/nix-required-mounts/test-require-feature.nix
index ddfd068b87fc4..061b59e1628af 100644
--- a/nixos/tests/nix-required-mounts/test-require-feature.nix
+++ b/nixos/tests/nix-required-mounts/test-require-feature.nix
@@ -4,9 +4,13 @@ pkgs.runCommandNoCC "${feature}-present"
 {
   requiredSystemFeatures = [ feature ];
 } ''
-  if [[ -e /${feature}-files ]]; then
-    touch $out
-  else
+  if [[ ! -e /${feature}-files ]]; then
     echo "The host declares ${feature} support, but doesn't expose /${feature}-files" >&2
+    exit 1
   fi
+  if [[ ! -f /run/opengl-driver/lib/libcuda.so ]] ; then
+    echo "The host declares ${feature} support, but it the hook fails to handle the hostPath != guestPath cases" >&2
+    exit 1
+  fi
+  touch $out
 ''