summary refs log tree commit diff
path: root/pkgs/test/default.nix
diff options
context:
space:
mode:
authorRahul Butani <rrbutani@users.noreply.github.com>2023-02-14 00:46:15 -0600
committerArtturin <Artturin@artturin.com>2023-09-07 22:36:07 +0300
commit626c8c3224893df4b6eab1ff01df8abaad1c3476 (patch)
treefdea4cc4af91c149634a47e41ebf10cf1117a386 /pkgs/test/default.nix
parent8b4f80741c6b832ad866ea1b5ec79ef7dbba2650 (diff)
downloadnixpkgs-626c8c3224893df4b6eab1ff01df8abaad1c3476.tar
nixpkgs-626c8c3224893df4b6eab1ff01df8abaad1c3476.tar.gz
nixpkgs-626c8c3224893df4b6eab1ff01df8abaad1c3476.tar.bz2
nixpkgs-626c8c3224893df4b6eab1ff01df8abaad1c3476.tar.lz
nixpkgs-626c8c3224893df4b6eab1ff01df8abaad1c3476.tar.xz
nixpkgs-626c8c3224893df4b6eab1ff01df8abaad1c3476.tar.zst
nixpkgs-626c8c3224893df4b6eab1ff01df8abaad1c3476.zip
tests.cc-wrapper: rework the logic, test newer `gcc` stdenvs too
ignore `llvmPackages_latest`, it's an alias and it'll be a duplicate.
ignore `llvmPackages_git`, it's not supposed to be used in nixpkgs and
may be broken.
Diffstat (limited to 'pkgs/test/default.nix')
-rw-r--r--pkgs/test/default.nix57
1 files changed, 26 insertions, 31 deletions
diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix
index 979fb6b6db8..77531d4e6a3 100644
--- a/pkgs/test/default.nix
+++ b/pkgs/test/default.nix
@@ -3,37 +3,32 @@
 with pkgs;
 
 {
-  cc-wrapper = callPackage ./cc-wrapper { };
-  cc-wrapper-gcc = callPackage ./cc-wrapper { stdenv = gccStdenv; };
-  cc-wrapper-gcc7 = callPackage ./cc-wrapper { stdenv = gcc7Stdenv; };
-  cc-wrapper-gcc8 = callPackage ./cc-wrapper { stdenv = gcc8Stdenv; };
-  cc-wrapper-gcc9 = callPackage ./cc-wrapper { stdenv = gcc9Stdenv; };
-  cc-wrapper-clang = callPackage ./cc-wrapper { stdenv = llvmPackages.stdenv; };
-  cc-wrapper-libcxx = callPackage ./cc-wrapper { stdenv = llvmPackages.libcxxStdenv; };
-  cc-wrapper-clang-5 = callPackage ./cc-wrapper { stdenv = llvmPackages_5.stdenv; };
-  cc-wrapper-libcxx-5 = callPackage ./cc-wrapper { stdenv = llvmPackages_5.libcxxStdenv; };
-  cc-wrapper-clang-6 = callPackage ./cc-wrapper { stdenv = llvmPackages_6.stdenv; };
-  cc-wrapper-libcxx-6 = callPackage ./cc-wrapper { stdenv = llvmPackages_6.libcxxStdenv; };
-  cc-wrapper-clang-7 = callPackage ./cc-wrapper { stdenv = llvmPackages_7.stdenv; };
-  cc-wrapper-libcxx-7 = callPackage ./cc-wrapper { stdenv = llvmPackages_7.libcxxStdenv; };
-  cc-wrapper-clang-8 = callPackage ./cc-wrapper { stdenv = llvmPackages_8.stdenv; };
-  cc-wrapper-libcxx-8 = callPackage ./cc-wrapper { stdenv = llvmPackages_8.libcxxStdenv; };
-  cc-wrapper-clang-9 = callPackage ./cc-wrapper { stdenv = llvmPackages_9.stdenv; };
-  cc-wrapper-libcxx-9 = callPackage ./cc-wrapper { stdenv = llvmPackages_9.libcxxStdenv; };
-  cc-wrapper-clang-10 = callPackage ./cc-wrapper { stdenv = llvmPackages_10.stdenv; };
-  cc-wrapper-libcxx-10 = callPackage ./cc-wrapper { stdenv = llvmPackages_10.libcxxStdenv; };
-  cc-wrapper-clang-11 = callPackage ./cc-wrapper { stdenv = llvmPackages_11.stdenv; };
-  cc-wrapper-libcxx-11 = callPackage ./cc-wrapper { stdenv = llvmPackages_11.libcxxStdenv; };
-  cc-wrapper-clang-12 = callPackage ./cc-wrapper { stdenv = llvmPackages_12.stdenv; };
-  cc-wrapper-libcxx-12 = callPackage ./cc-wrapper { stdenv = llvmPackages_12.libcxxStdenv; };
-  cc-wrapper-clang-13 = callPackage ./cc-wrapper { stdenv = llvmPackages_13.stdenv; };
-  cc-wrapper-libcxx-13 = callPackage ./cc-wrapper { stdenv = llvmPackages_13.libcxxStdenv; };
-  cc-wrapper-clang-14 = callPackage ./cc-wrapper { stdenv = llvmPackages_14.stdenv; };
-  cc-wrapper-libcxx-14 = callPackage ./cc-wrapper { stdenv = llvmPackages_14.libcxxStdenv; };
-  cc-wrapper-clang-15 = callPackage ./cc-wrapper { stdenv = llvmPackages_15.stdenv; };
-  cc-wrapper-libcxx-15 = callPackage ./cc-wrapper { stdenv = llvmPackages_15.libcxxStdenv; };
-  cc-wrapper-clang-git = callPackage ./cc-wrapper { stdenv = llvmPackages_git.stdenv; };
-  cc-wrapper-libcxx-git = callPackage ./cc-wrapper { stdenv = llvmPackages_git.libcxxStdenv; };
+  cc-wrapper = with builtins; let
+    pkgNames = (attrNames pkgs);
+    llvmTests = let
+      pkgSets = lib.pipe pkgNames [
+        (filter (lib.hasPrefix "llvmPackages"))
+        (filter (n: n != "llvmPackages_rocm"))
+        (filter (n: n != "llvmPackages_latest"))
+        (filter (n: n != "llvmPackages_git"))
+      ];
+      tests = lib.genAttrs pkgSets (name: recurseIntoAttrs {
+        clang = callPackage ./cc-wrapper { stdenv = pkgs.${name}.stdenv; };
+        libcxx = callPackage ./cc-wrapper { stdenv = pkgs.${name}.libcxxStdenv; };
+      });
+    in
+      recurseIntoAttrs tests;
+    gccTests = let
+      pkgSets = lib.pipe (attrNames pkgs) [
+        (filter (lib.hasPrefix "gcc"))
+        (filter (lib.hasSuffix "Stdenv"))
+        (filter (n: n != "gccCrossLibcStdenv"))
+      ];
+    in lib.genAttrs pkgSets (name: callPackage ./cc-wrapper { stdenv = pkgs.${name}; });
+  in recurseIntoAttrs {
+    default = callPackage ./cc-wrapper { };
+  } // llvmTests // gccTests;
+
   stdenv-inputs = callPackage ./stdenv-inputs { };
   stdenv = callPackage ./stdenv { };