summary refs log tree commit diff
path: root/pkgs/build-support/rust/build-rust-crate/test/default.nix
diff options
context:
space:
mode:
authorAndreas Rammhold <andreas@rammhold.de>2019-09-10 10:57:54 +0200
committerGitHub <noreply@github.com>2019-09-10 10:57:54 +0200
commita69a6c11176d6aa96ab7c8f7308be4b95206598e (patch)
treed34e074c089b5d441da71ad04780ad0c4dd48c46 /pkgs/build-support/rust/build-rust-crate/test/default.nix
parent9c171d29117f8b93f9f990938c3a18c42e13579c (diff)
parent85c6d720117f8207ba561804980b2452755170b8 (diff)
downloadnixpkgs-a69a6c11176d6aa96ab7c8f7308be4b95206598e.tar
nixpkgs-a69a6c11176d6aa96ab7c8f7308be4b95206598e.tar.gz
nixpkgs-a69a6c11176d6aa96ab7c8f7308be4b95206598e.tar.bz2
nixpkgs-a69a6c11176d6aa96ab7c8f7308be4b95206598e.tar.lz
nixpkgs-a69a6c11176d6aa96ab7c8f7308be4b95206598e.tar.xz
nixpkgs-a69a6c11176d6aa96ab7c8f7308be4b95206598e.tar.zst
nixpkgs-a69a6c11176d6aa96ab7c8f7308be4b95206598e.zip
Merge pull request #68296 from danieldk/crateRenames
buildRustCrate: add support for renaming crates
Diffstat (limited to 'pkgs/build-support/rust/build-rust-crate/test/default.nix')
-rw-r--r--pkgs/build-support/rust/build-rust-crate/test/default.nix26
1 files changed, 20 insertions, 6 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 f3f9ef377c8..4a90cf442a4 100644
--- a/pkgs/build-support/rust/build-rust-crate/test/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/test/default.nix
@@ -22,6 +22,13 @@ let
     }
   '';
 
+  mkBinExtern = name: extern: mkFile name ''
+    extern crate ${extern};
+    fn main() {
+      assert_eq!(${extern}::test(), 23);
+    }
+  '';
+
   mkLib = name: mkFile name "pub fn test() -> i32 { return 23; }";
 
   mkTest = crateArgs: let
@@ -34,12 +41,7 @@ let
     libTestBinary = if !isLib then null else mkCrate {
       crateName = "run-test-${crateName}";
       dependencies = [ crate ];
-      src = mkFile "src/main.rs" ''
-        extern crate ${libName};
-        fn main() {
-          assert_eq!(${libName}::test(), 23);
-        }
-      '';
+      src = mkBinExtern "src/main.rs" libName;
     };
 
     in runCommand "run-buildRustCrate-${crateName}-test" {
@@ -71,6 +73,18 @@ let
       };
       crateBinNoPath3 =  { crateBin = [{ name = "my-binary5"; }]; src = mkBin "src/bin/main.rs"; };
       crateBinNoPath4 =  { crateBin = [{ name = "my-binary6"; }]; src = mkBin "src/main.rs";};
+      crateBinRename1 = {
+        crateBin = [{ name = "my-binary-rename1"; }];
+        src = mkBinExtern "src/main.rs" "foo_renamed";
+        dependencies = [ (mkCrate { crateName = "foo"; src = mkLib "src/lib.rs"; }) ];
+        crateRenames = { "foo" = "foo_renamed"; };
+      };
+      crateBinRename2 = {
+        crateBin = [{ name = "my-binary-rename2"; }];
+        src = mkBinExtern "src/main.rs" "foo_renamed";
+        dependencies = [ (mkCrate { crateName = "foo"; libName = "foolib"; src = mkLib "src/lib.rs"; }) ];
+        crateRenames = { "foo" = "foo_renamed"; };
+      };
     };
     brotliCrates = (callPackage ./brotli-crates.nix {});
   in lib.mapAttrs (key: value: mkTest (value // lib.optionalAttrs (!value?crateName) { crateName = key; })) cases // {