summary refs log tree commit diff
path: root/pkgs/build-support/rust/build-rust-crate
diff options
context:
space:
mode:
authorAndreas Rammhold <andreas@rammhold.de>2020-01-28 14:00:38 +0100
committerAndreas Rammhold <andreas@rammhold.de>2020-01-28 14:07:58 +0100
commit19698d15ce44e51a4b875f1cae05af70ffc5656a (patch)
tree2257226b37356179d67b28e66ed55d40ab743548 /pkgs/build-support/rust/build-rust-crate
parent7562c2112dce7bc778c2de07ee72de2502141faa (diff)
downloadnixpkgs-19698d15ce44e51a4b875f1cae05af70ffc5656a.tar
nixpkgs-19698d15ce44e51a4b875f1cae05af70ffc5656a.tar.gz
nixpkgs-19698d15ce44e51a4b875f1cae05af70ffc5656a.tar.bz2
nixpkgs-19698d15ce44e51a4b875f1cae05af70ffc5656a.tar.lz
nixpkgs-19698d15ce44e51a4b875f1cae05af70ffc5656a.tar.xz
nixpkgs-19698d15ce44e51a4b875f1cae05af70ffc5656a.tar.zst
nixpkgs-19698d15ce44e51a4b875f1cae05af70ffc5656a.zip
buildRustCrateTests: add regression test for #74071
Diffstat (limited to 'pkgs/build-support/rust/build-rust-crate')
-rw-r--r--pkgs/build-support/rust/build-rust-crate/test/default.nix21
1 files changed, 21 insertions, 0 deletions
diff --git a/pkgs/build-support/rust/build-rust-crate/test/default.nix b/pkgs/build-support/rust/build-rust-crate/test/default.nix
index cdffb30d9b3..6aad02992c1 100644
--- a/pkgs/build-support/rust/build-rust-crate/test/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/test/default.nix
@@ -199,6 +199,27 @@ let
           })
         ];
       };
+      # Regression test for https://github.com/NixOS/nixpkgs/issues/74071
+      # Whenevever a build.rs file is generating files those should not be overlayed onto the actual source dir
+      buildRsOutDirOverlay = {
+        src = symlinkJoin {
+          name = "buildrs-out-dir-overlay";
+          paths = [
+            (mkLib "src/lib.rs")
+            (mkFile "build.rs" ''
+              use std::env;
+              use std::ffi::OsString;
+              use std::fs;
+              use std::path::Path;
+              fn main() {
+                let out_dir = env::var_os("OUT_DIR").expect("OUT_DIR not set");
+                let out_file = Path::new(&out_dir).join("lib.rs");
+                fs::write(out_file, "invalid rust code!").expect("failed to write lib.rs");
+              }
+            '')
+          ];
+        };
+      };
     };
     brotliCrates = (callPackage ./brotli-crates.nix {});
   in lib.mapAttrs (key: value: mkTest (value // lib.optionalAttrs (!value?crateName) { crateName = key; })) cases // {