Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at lib-types-attrNamesToTrue 215 lines 7.3 kB view raw
1{ pkgs, callPackage }: 2 3with pkgs; 4 5{ 6 cc-wrapper = 7 with builtins; 8 let 9 pkgNames = (attrNames pkgs); 10 llvmTests = 11 let 12 pkgSets = lib.pipe pkgNames [ 13 (filter (lib.hasPrefix "llvmPackages")) 14 (filter (n: n != "rocmPackages.llvm")) 15 # Are throw aliases. 16 (filter (n: n != "llvmPackages_rocm")) 17 (filter (n: n != "llvmPackages_latest")) 18 (filter (n: n != "llvmPackages_6")) 19 (filter (n: n != "llvmPackages_7")) 20 (filter (n: n != "llvmPackages_8")) 21 (filter (n: n != "llvmPackages_9")) 22 (filter (n: n != "llvmPackages_10")) 23 (filter (n: n != "llvmPackages_11")) 24 ]; 25 tests = lib.genAttrs pkgSets ( 26 name: 27 recurseIntoAttrs { 28 clang = callPackage ./cc-wrapper { stdenv = pkgs.${name}.stdenv; }; 29 libcxx = callPackage ./cc-wrapper { stdenv = pkgs.${name}.libcxxStdenv; }; 30 } 31 ); 32 in 33 tests; 34 gccTests = 35 let 36 pkgSets = lib.pipe (attrNames pkgs) ( 37 [ 38 (filter (lib.hasPrefix "gcc")) 39 (filter (lib.hasSuffix "Stdenv")) 40 (filter (n: n != "gccCrossLibcStdenv")) 41 (filter (n: n != "gcc49Stdenv")) 42 (filter (n: n != "gcc6Stdenv")) 43 ] 44 ++ 45 lib.optionals 46 ( 47 !( 48 (stdenv.buildPlatform.isLinux && stdenv.buildPlatform.isx86_64) 49 && (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64) 50 ) 51 ) 52 [ 53 (filter (n: !lib.hasSuffix "MultiStdenv" n)) 54 ] 55 ); 56 in 57 lib.genAttrs pkgSets (name: callPackage ./cc-wrapper { stdenv = pkgs.${name}; }); 58 in 59 recurseIntoAttrs { 60 default = callPackage ./cc-wrapper { }; 61 62 supported = stdenv.mkDerivation { 63 name = "cc-wrapper-supported"; 64 builtGCC = 65 let 66 inherit (lib) filterAttrs; 67 sets = lib.pipe gccTests [ 68 (filterAttrs (_: v: lib.meta.availableOn stdenv.hostPlatform v.stdenv.cc)) 69 # Broken 70 (filterAttrs (n: _: n != "gccMultiStdenv")) 71 ]; 72 in 73 toJSON sets; 74 75 builtLLVM = 76 let 77 inherit (lib) filterAttrs; 78 sets = lib.pipe llvmTests [ 79 (filterAttrs (_: v: lib.meta.availableOn stdenv.hostPlatform v.clang.stdenv.cc)) 80 (filterAttrs (_: v: lib.meta.availableOn stdenv.hostPlatform v.libcxx.stdenv.cc)) 81 ]; 82 in 83 toJSON sets; 84 buildCommand = '' 85 touch $out 86 ''; 87 }; 88 89 llvmTests = recurseIntoAttrs llvmTests; 90 inherit gccTests; 91 }; 92 93 devShellTools = callPackage ../build-support/dev-shell-tools/tests { }; 94 95 stdenv-inputs = callPackage ./stdenv-inputs { }; 96 stdenv = callPackage ./stdenv { }; 97 98 hardeningFlags = recurseIntoAttrs (callPackage ./cc-wrapper/hardening.nix { }); 99 hardeningFlags-gcc = recurseIntoAttrs ( 100 callPackage ./cc-wrapper/hardening.nix { 101 stdenv = gccStdenv; 102 } 103 ); 104 hardeningFlags-clang = recurseIntoAttrs ( 105 callPackage ./cc-wrapper/hardening.nix { 106 stdenv = llvmPackages.stdenv; 107 } 108 ); 109 110 config = callPackage ./config.nix { }; 111 112 top-level = callPackage ./top-level { }; 113 114 haskell = callPackage ./haskell { }; 115 116 hooks = callPackage ./hooks { }; 117 118 cc-multilib-gcc = callPackage ./cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; }; 119 cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; }; 120 121 compress-drv = callPackage ../build-support/compress-drv/test.nix { }; 122 123 fetchurl = callPackages ../build-support/fetchurl/tests.nix { }; 124 fetchtorrent = callPackages ../build-support/fetchtorrent/tests.nix { }; 125 fetchpatch = callPackages ../build-support/fetchpatch/tests.nix { }; 126 fetchpatch2 = callPackages ../build-support/fetchpatch/tests.nix { fetchpatch = fetchpatch2; }; 127 fetchDebianPatch = callPackages ../build-support/fetchdebianpatch/tests.nix { }; 128 fetchzip = callPackages ../build-support/fetchzip/tests.nix { }; 129 fetchgit = callPackages ../build-support/fetchgit/tests.nix { }; 130 fetchFirefoxAddon = callPackages ../build-support/fetchfirefoxaddon/tests.nix { }; 131 fetchPypiLegacy = callPackages ../build-support/fetchpypilegacy/tests.nix { }; 132 133 install-shell-files = callPackage ./install-shell-files { }; 134 135 checkpointBuildTools = callPackage ./checkpointBuild { }; 136 137 kernel-config = callPackage ./kernel.nix { }; 138 139 ld-library-path = callPackage ./ld-library-path { }; 140 141 cross = callPackage ./cross { } // { 142 __attrsFailEvaluation = true; 143 }; 144 145 php = recurseIntoAttrs (callPackages ./php { }); 146 147 pkg-config = recurseIntoAttrs (callPackage ../top-level/pkg-config/tests.nix { }) // { 148 __recurseIntoDerivationForReleaseJobs = true; 149 }; 150 151 buildRustCrate = callPackage ../build-support/rust/build-rust-crate/test { }; 152 importCargoLock = callPackage ../build-support/rust/test/import-cargo-lock { }; 153 154 vim = callPackage ./vim { }; 155 156 nixos-functions = callPackage ./nixos-functions { }; 157 158 nixosOptionsDoc = callPackage ../../nixos/lib/make-options-doc/tests.nix { }; 159 160 overriding = callPackage ./overriding.nix { }; 161 162 texlive = callPackage ./texlive { }; 163 164 cuda = callPackage ./cuda { }; 165 166 trivial-builders = callPackage ../build-support/trivial-builders/test/default.nix { }; 167 168 writers = callPackage ../build-support/writers/test.nix { }; 169 170 testers = callPackage ../build-support/testers/test/default.nix { }; 171 172 dhall = callPackage ./dhall { }; 173 174 cue-validation = callPackage ./cue { }; 175 176 coq = callPackage ./coq { }; 177 178 dotnet = recurseIntoAttrs (callPackages ./dotnet { }); 179 180 makeHardcodeGsettingsPatch = callPackage ./make-hardcode-gsettings-patch { }; 181 182 makeWrapper = callPackage ./make-wrapper { }; 183 makeBinaryWrapper = callPackage ./make-binary-wrapper { 184 makeBinaryWrapper = pkgs.makeBinaryWrapper.override { 185 # Enable sanitizers in the tests only, to avoid the performance cost in regular usage. 186 # The sanitizers cause errors on aarch64-darwin, see https://github.com/NixOS/nixpkgs/pull/150079#issuecomment-994132734 187 sanitizers = 188 pkgs.lib.optionals (!(pkgs.stdenv.hostPlatform.isDarwin && pkgs.stdenv.hostPlatform.isAarch64)) 189 [ 190 "undefined" 191 "address" 192 ]; 193 }; 194 }; 195 196 pkgs-lib = recurseIntoAttrs (import ../pkgs-lib/tests { inherit pkgs; }); 197 198 buildFHSEnv = recurseIntoAttrs (callPackages ./buildFHSEnv { }); 199 200 nixpkgs-check-by-name = throw "tests.nixpkgs-check-by-name is now specified in a separate repository: https://github.com/NixOS/nixpkgs-check-by-name"; 201 202 auto-patchelf-hook = callPackage ./auto-patchelf-hook { }; 203 204 srcOnly = callPackage ../build-support/src-only/tests.nix { }; 205 206 systemd = callPackage ./systemd { }; 207 208 replaceVars = recurseIntoAttrs (callPackage ./replace-vars { }); 209 210 substitute = recurseIntoAttrs (callPackage ./substitute { }); 211 212 build-environment-info = callPackage ./build-environment-info { }; 213 214 rust-hooks = recurseIntoAttrs (callPackages ../build-support/rust/hooks/test { }); 215}