From 135d52d3de69685ae1b367a7e8bf9870e455f92a Mon Sep 17 00:00:00 2001 From: Jack O'Sullivan Date: Tue, 4 Aug 2026 00:26:27 +0100 Subject: [PATCH] nix: Skip readLinkAt unit test on XFS builder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CI builds Determinate Nix from source, running its unit-test suite. The `nix-util` `readLinkAt.works` test creates symlinks with PATH_MAX-length targets, but our CI runner's build filesystem is XFS, which hard-caps symlink targets at 1024 bytes (XFS_SYMLINK_MAXLEN). Creation fails with ENAMETOOLONG, so the test — and the whole determinate-nix build — fails on the runner while passing on non-XFS filesystems. Filter out just that test via gtest's GTEST_FILTER on the `nix-util-tests-run` check input, leaving the rest of the unit and functional tests gating the build (they still matter, since we build against several nixpkgs channels). Co-Authored-By: Claude Opus 4.8 --- flake.nix | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index d333dbb..62ca132 100644 --- a/flake.nix +++ b/flake.nix @@ -104,8 +104,19 @@ myPkgsOverlay = final: prev: import ./pkgs { lib = final.lib; pkgs = prev; }; # Exposes Determinate Nix under a stable attr name so systems, homes and the devshell all # resolve the exact same package (referenced as `pkgs'.mine.determinate-nix` in configs). + # `nix-util`'s `readLinkAt.works` unit test creates PATH_MAX-length symlinks, which our CI + # runner's XFS-backed build filesystem rejects (XFS hard-caps symlink targets at 1024 bytes). + # Skip just that test via gtest's GTEST_FILTER so the rest of the suite still gates the build. determinateOverlay = final: prev: { - determinate-nix = inputs.determinate-nix.packages.${prev.stdenv.hostPlatform.system}.default; + determinate-nix = + (inputs.determinate-nix.packages.${prev.stdenv.hostPlatform.system}.default).overrideAttrs (o: { + checkInputs = map + (drv: + if (drv.name or "") == "nix-util-tests-run" + then drv.overrideAttrs (_: { GTEST_FILTER = "-readLinkAt.*"; }) + else drv) + o.checkInputs; + }); }; # Override the flake-level lib since we're going to use it for non-config specific stuff