summaryrefslogtreecommitdiffstats
path: root/pkgs/test/default.nix
diff options
context:
space:
mode:
authorArtturin <Artturin@artturin.com>2023-09-07 23:21:06 +0300
committerArtturin <Artturin@artturin.com>2023-09-08 03:20:52 +0300
commit2d15039387a2212f6718bffb937ebe04d7464ce5 (patch)
tree11b30e07dc5d268a027274638cc9434d1f724dd6 /pkgs/test/default.nix
parentbcd62ff9eb0c07280063388847cf640c4c27ca10 (diff)
tests.cc-wrapper: add supported and move tests to subsets
filter out llvmPackages <=10 on aarch64-darwin, they're marked broken and availableOn doesn't filter broken packages
Diffstat (limited to 'pkgs/test/default.nix')
-rw-r--r--pkgs/test/default.nix52
1 files changed, 50 insertions, 2 deletions
diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix
index 8bc9a7844ff5..8629bc472d69 100644
--- a/pkgs/test/default.nix
+++ b/pkgs/test/default.nix
@@ -17,7 +17,7 @@ with pkgs;
libcxx = callPackage ./cc-wrapper { stdenv = pkgs.${name}.libcxxStdenv; };
});
in
- recurseIntoAttrs tests;
+ tests;
gccTests = let
pkgSets = lib.pipe (attrNames pkgs) ([
(filter (lib.hasPrefix "gcc"))
@@ -32,7 +32,55 @@ with pkgs;
in lib.genAttrs pkgSets (name: callPackage ./cc-wrapper { stdenv = pkgs.${name}; });
in recurseIntoAttrs {
default = callPackage ./cc-wrapper { };
- } // llvmTests // gccTests;
+
+ supported = stdenv.mkDerivation {
+ name = "cc-wrapper-supported";
+ builtGCC =
+ let
+ names = lib.pipe (attrNames gccTests) ([
+ (filter (n: lib.meta.availableOn stdenv.hostPlatform pkgs.${n}.cc))
+ # Broken
+ (filter (n: n != "gcc49Stdenv"))
+ (filter (n: n != "gccMultiStdenv"))
+ ] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [
+ # fails with things like
+ # ld: warning: ld: warning: object file (trunctfsf2_s.o) was built for newer macOS version (11.0) than being linked (10.5)
+ # ld: warning: ld: warning: could not create compact unwind for ___fixunstfdi: register 20 saved somewhere other than in frame
+ (filter (n: n != "gcc11Stdenv"))
+ ]);
+ in
+ toJSON (lib.genAttrs names (name: { name = pkgs.${name}; }));
+
+ builtLLVM =
+ let
+ names = lib.pipe (attrNames llvmTests) ([
+ (filter (n: lib.meta.availableOn stdenv.hostPlatform pkgs.${n}.stdenv.cc))
+ (filter (n: lib.meta.availableOn stdenv.hostPlatform pkgs.${n}.libcxxStdenv.cc))
+
+ # libcxxStdenv broken
+ # fix in https://github.com/NixOS/nixpkgs/pull/216273
+ (filter (n: n != "llvmPackages_15"))
+ ] ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
+ # libcxx does not build for some reason on aarch64-linux
+ (filter (n: n != "llvmPackages_7"))
+ ] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [
+ (filter (n: n != "llvmPackages_5"))
+ (filter (n: n != "llvmPackages_6"))
+ (filter (n: n != "llvmPackages_7"))
+ (filter (n: n != "llvmPackages_8"))
+ (filter (n: n != "llvmPackages_9"))
+ (filter (n: n != "llvmPackages_10"))
+ ]);
+ in
+ toJSON (lib.genAttrs names (name: { stdenv = pkgs.${name}.stdenv; libcxx = pkgs.${name}.libcxxStdenv; }));
+ buildCommand = ''
+ touch $out
+ '';
+ };
+
+ llvmTests = recurseIntoAttrs llvmTests;
+ inherit gccTests;
+ };
stdenv-inputs = callPackage ./stdenv-inputs { };
stdenv = callPackage ./stdenv { };