nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 261 lines 9.0 kB view raw
1{ pkgs }: 2let 3 inherit (pkgs) callPackages callPackage stdenv; 4 inherit (pkgs.lib) 5 recurseIntoAttrs 6 attrNames 7 pipe 8 hasPrefix 9 hasSuffix 10 filter 11 genAttrs 12 optionals 13 filterAttrs 14 meta 15 concatMapAttrs 16 optionalAttrs 17 ; 18 inherit (pkgs.lib.strings) toJSON; 19in 20{ 21 cc-wrapper = 22 let 23 pkgNames = (attrNames pkgs); 24 llvmTests = 25 let 26 pkgSets = pipe pkgNames [ 27 (filter (hasPrefix "llvmPackages")) 28 # Are aliases. 29 (filter (n: n != "llvmPackages_latest")) 30 (filter (n: n != "llvmPackages_9")) 31 (filter (n: n != "llvmPackages_10")) 32 (filter (n: n != "llvmPackages_11")) 33 (filter (n: n != "llvmPackages_12")) 34 (filter (n: n != "llvmPackages_13")) 35 (filter (n: n != "llvmPackages_14")) 36 (filter (n: n != "llvmPackages_15")) 37 (filter (n: n != "llvmPackages_16")) 38 (filter (n: n != "llvmPackages_17")) 39 ]; 40 tests = genAttrs pkgSets ( 41 name: 42 recurseIntoAttrs { 43 clang = callPackage ./cc-wrapper { stdenv = pkgs.${name}.stdenv; }; 44 libcxx = callPackage ./cc-wrapper { stdenv = pkgs.${name}.libcxxStdenv; }; 45 } 46 ); 47 in 48 tests; 49 gccTests = 50 let 51 pkgSets = pipe (attrNames pkgs) ( 52 [ 53 (filter (hasPrefix "gcc")) 54 (filter (hasSuffix "Stdenv")) 55 (filter (n: n != "gccCrossLibcStdenv")) 56 (filter (n: n != "gcc49Stdenv")) 57 (filter (n: n != "gcc6Stdenv")) 58 (filter (n: n != "gcc7Stdenv")) 59 (filter (n: n != "gcc8Stdenv")) 60 (filter (n: n != "gcc9Stdenv")) 61 (filter (n: n != "gcc10Stdenv")) 62 (filter (n: n != "gcc11Stdenv")) 63 (filter (n: n != "gcc12Stdenv")) 64 ] 65 ++ 66 optionals 67 ( 68 !( 69 (stdenv.buildPlatform.isLinux && stdenv.buildPlatform.isx86_64) 70 && (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64) 71 ) 72 ) 73 [ 74 (filter (n: !hasSuffix "MultiStdenv" n)) 75 ] 76 ); 77 in 78 genAttrs pkgSets (name: callPackage ./cc-wrapper { stdenv = pkgs.${name}; }); 79 in 80 recurseIntoAttrs { 81 default = callPackage ./cc-wrapper { }; 82 83 supported = stdenv.mkDerivation { 84 name = "cc-wrapper-supported"; 85 builtGCC = 86 let 87 sets = pipe gccTests [ 88 (filterAttrs (_: v: meta.availableOn stdenv.hostPlatform v.stdenv.cc)) 89 # Broken 90 (filterAttrs (n: _: n != "gccMultiStdenv")) 91 ]; 92 in 93 toJSON sets; 94 95 builtLLVM = 96 let 97 sets = pipe llvmTests [ 98 (filterAttrs (_: v: meta.availableOn stdenv.hostPlatform v.clang.stdenv.cc)) 99 (filterAttrs (_: v: meta.availableOn stdenv.hostPlatform v.libcxx.stdenv.cc)) 100 ]; 101 in 102 toJSON sets; 103 buildCommand = '' 104 touch $out 105 ''; 106 }; 107 108 llvmTests = recurseIntoAttrs llvmTests; 109 gccTests = recurseIntoAttrs gccTests; 110 }; 111 112 devShellTools = callPackage ../build-support/dev-shell-tools/tests { }; 113 114 stdenv-inputs = callPackage ./stdenv-inputs { }; 115 stdenv = recurseIntoAttrs (callPackage ./stdenv { }); 116 117 hardeningFlags = recurseIntoAttrs (callPackage ./cc-wrapper/hardening.nix { }); 118 hardeningFlags-gcc = recurseIntoAttrs ( 119 callPackage ./cc-wrapper/hardening.nix { 120 stdenv = pkgs.gccStdenv; 121 } 122 ); 123 hardeningFlags-clang = recurseIntoAttrs ( 124 callPackage ./cc-wrapper/hardening.nix { 125 stdenv = pkgs.llvmPackages.stdenv; 126 } 127 ); 128 129 config = callPackage ./config.nix { }; 130 131 top-level = callPackage ./top-level { }; 132 133 haskell = callPackage ./haskell { }; 134 135 hooks = recurseIntoAttrs (callPackage ./hooks { }); 136 137 cc-multilib-gcc = callPackage ./cc-wrapper/multilib.nix { stdenv = pkgs.gccMultiStdenv; }; 138 cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = pkgs.clangMultiStdenv; }; 139 140 compress-drv = callPackage ../build-support/compress-drv/test.nix { }; 141 142 fetchurl = recurseIntoAttrs (callPackages ../build-support/fetchurl/tests.nix { }); 143 fetchtorrent = recurseIntoAttrs (callPackages ../build-support/fetchtorrent/tests.nix { }); 144 fetchpatch = recurseIntoAttrs (callPackages ../build-support/fetchpatch/tests.nix { }); 145 fetchpatch2 = recurseIntoAttrs ( 146 callPackages ../build-support/fetchpatch/tests.nix { fetchpatch = pkgs.fetchpatch2; } 147 ); 148 fetchDebianPatch = recurseIntoAttrs (callPackages ../build-support/fetchdebianpatch/tests.nix { }); 149 fetchzip = recurseIntoAttrs (callPackages ../build-support/fetchzip/tests.nix { }); 150 fetchgit = recurseIntoAttrs (callPackages ../build-support/fetchgit/tests.nix { }); 151 fetchNextcloudApp = recurseIntoAttrs ( 152 callPackages ../build-support/fetchnextcloudapp/tests.nix { } 153 ); 154 fetchFromBitbucket = recurseIntoAttrs (callPackages ../build-support/fetchbitbucket/tests.nix { }); 155 fetchFromGitHub = recurseIntoAttrs (callPackages ../build-support/fetchgithub/tests.nix { }); 156 fetchFirefoxAddon = recurseIntoAttrs ( 157 callPackages ../build-support/fetchfirefoxaddon/tests.nix { } 158 ); 159 fetchPypiLegacy = recurseIntoAttrs (callPackages ../build-support/fetchpypilegacy/tests.nix { }); 160 161 install-shell-files = recurseIntoAttrs (callPackage ./install-shell-files { }); 162 163 checkpointBuildTools = callPackage ./checkpointBuild { }; 164 165 kernel-config = callPackage ./kernel.nix { }; 166 167 ld-library-path = callPackage ./ld-library-path { }; 168 169 cross = recurseIntoAttrs (callPackage ./cross { }); 170 171 php = recurseIntoAttrs (callPackages ./php { }); 172 173 go = recurseIntoAttrs (callPackage ../build-support/go/tests.nix { }); 174 175 pkg-config = recurseIntoAttrs (callPackage ../top-level/pkg-config/tests.nix { }); 176 177 buildRustCrate = recurseIntoAttrs (callPackage ../build-support/rust/build-rust-crate/test { }); 178 importCargoLock = recurseIntoAttrs (callPackage ../build-support/rust/test/import-cargo-lock { }); 179 180 vim = callPackage ./vim { }; 181 182 nixos-functions = callPackage ./nixos-functions { }; 183 184 nixosOptionsDoc = recurseIntoAttrs (callPackage ../../nixos/lib/make-options-doc/tests.nix { }); 185 186 overriding = callPackage ./overriding.nix { }; 187 188 texlive = recurseIntoAttrs (callPackage ./texlive { }); 189 190 cuda = callPackage ./cuda { }; 191 192 trivial-builders = callPackage ../build-support/trivial-builders/test/default.nix { }; 193 194 vmTools = callPackage ../build-support/vm/test.nix { }; 195 196 writers = callPackage ../build-support/writers/test.nix { }; 197 198 testers = callPackage ../build-support/testers/test/default.nix { }; 199 200 dhall = callPackage ./dhall { }; 201 202 cue-validation = callPackage ./cue { }; 203 204 coq = callPackage ./coq { }; 205 206 dotnet = recurseIntoAttrs (callPackages ./dotnet { }); 207 208 makeHardcodeGsettingsPatch = recurseIntoAttrs (callPackage ./make-hardcode-gsettings-patch { }); 209 210 makeWrapper = callPackage ./make-wrapper { }; 211 makeBinaryWrapper = callPackage ./make-binary-wrapper { 212 makeBinaryWrapper = pkgs.makeBinaryWrapper.override { 213 # Enable sanitizers in the tests only, to avoid the performance cost in regular usage. 214 # The sanitizers cause errors on aarch64-darwin, see https://github.com/NixOS/nixpkgs/pull/150079#issuecomment-994132734 215 sanitizers = 216 optionals (!(pkgs.stdenv.hostPlatform.isDarwin && pkgs.stdenv.hostPlatform.isAarch64)) 217 [ 218 "undefined" 219 "address" 220 ]; 221 }; 222 }; 223 224 lib-tests = import ../../lib/tests/release.nix { inherit pkgs; }; 225 226 pkgs-lib = recurseIntoAttrs (callPackage ../pkgs-lib/tests { }); 227 228 buildFHSEnv = recurseIntoAttrs (callPackages ./buildFHSEnv { }); 229 230 auto-patchelf-hook = callPackage ./auto-patchelf-hook { }; 231 232 auto-patchelf-hook-preserve-origin = callPackage ./auto-patchelf-hook-preserve-origin { }; 233 234 # Accumulate all passthru.tests from arrayUtilities into a single attribute set. 235 arrayUtilities = recurseIntoAttrs ( 236 concatMapAttrs ( 237 name: value: 238 optionalAttrs (value ? passthru.tests) { 239 ${name} = value.passthru.tests; 240 } 241 ) pkgs.arrayUtilities 242 ); 243 244 srcOnly = callPackage ../build-support/src-only/tests.nix { }; 245 246 systemd = callPackage ./systemd { }; 247 248 replaceVars = recurseIntoAttrs (callPackage ./replace-vars { }); 249 250 substitute = recurseIntoAttrs (callPackage ./substitute { }); 251 252 build-environment-info = callPackage ./build-environment-info { }; 253 254 rust-hooks = recurseIntoAttrs (callPackages ../build-support/rust/hooks/test { }); 255 256 prefer-remote-fetch = recurseIntoAttrs ( 257 callPackages ../build-support/prefer-remote-fetch/tests.nix { } 258 ); 259 260 home-assistant-component-tests = recurseIntoAttrs pkgs.home-assistant.tests.components; 261}