From 3ea96163ccdc1a954000fd5cd35241cf4c1883e0 Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Mon, 21 Jul 2025 19:23:43 +0200 Subject: [PATCH] tests-stdenv-gcc-stageCompare: delay asserts The removed assert is covered by `meta.platforms = linux`, which will throw an "unsupported system" error on darwin. Since the platforms are restricted to linux anyway, it doesn't make sense to have this set to `all` in `release-small.nix` - `linux` should suffice. Right? The other assert is delayed until after the evaluation of `meta`. This allows the "unsupported system" error on darwin to be thrown at all, without triggering the assert before. This helps CI, which can't catch asserts properly, but can do so with `meta.platforms` based errors. --- pkgs/test/stdenv/gcc-stageCompare.nix | 24 +++++++++++++++++------- pkgs/top-level/release-small.nix | 2 +- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/pkgs/test/stdenv/gcc-stageCompare.nix b/pkgs/test/stdenv/gcc-stageCompare.nix index 091577a43383..133797f5999a 100644 --- a/pkgs/test/stdenv/gcc-stageCompare.nix +++ b/pkgs/test/stdenv/gcc-stageCompare.nix @@ -14,8 +14,6 @@ lib, }: -assert stdenv.cc.isGNU; - with pkgs; # rebuild gcc using the "final" stdenv let @@ -31,11 +29,23 @@ let NIX_OUTPATH_USED_AS_RANDOM_SEED = stdenv.cc.cc.out; }); in -assert lib.assertMsg (gcc-stageCompare ? checksum) - "tests-stdenv-gcc-stageCompare: No `checksum` output in `gcc-stageCompare` see conditional in `gcc/common/checksum.nix`"; -(runCommand "gcc-stageCompare" { } '' - diff -sr ${pkgs.gcc-unwrapped.checksum}/checksums ${gcc-stageCompare.checksum}/checksums && touch $out -'').overrideAttrs + +(runCommand "gcc-stageCompare" + { + checksumCompare = + assert lib.assertMsg (gcc-stageCompare ? checksum) + "tests-stdenv-gcc-stageCompare: No `checksum` output in `gcc-stageCompare` see conditional in `gcc/common/checksum.nix`"; + gcc-stageCompare.checksum; + + checksumUnwrapped = + assert lib.assertMsg (pkgs.gcc-unwrapped ? checksum) + "tests-stdenv-gcc-stageCompare: No `checksum` output in `gcc-stageCompare` see conditional in `gcc/common/checksum.nix`"; + pkgs.gcc-unwrapped.checksum; + } + '' + diff -sr "$checksumUnwrapped"/checksums "$checksumCompare"/checksums && touch $out + '' +).overrideAttrs (a: { meta = (a.meta or { }) // { platforms = lib.platforms.linux; diff --git a/pkgs/top-level/release-small.nix b/pkgs/top-level/release-small.nix index 52292ba37151..2adcf3cc4431 100644 --- a/pkgs/top-level/release-small.nix +++ b/pkgs/top-level/release-small.nix @@ -176,5 +176,5 @@ in xfsprogs = linux; xkeyboard_config = linux; zip = all; - tests-stdenv-gcc-stageCompare = all; + tests-stdenv-gcc-stageCompare = linux; }))