Files
lix/tests/nixpkgs/lib.nix
T
piegamesandCommentator2.0 f1fbd1d095 libexpr: Warn on incorrect string usage
The indentation stripping semantics of strings are fairly bad and have a
few gotchas where they behave unintuitively. But the good news is, that
these cases are easy to catch and can be avoided.
This commit adds a warning in the parser when such strings are detected.

Unfortunately Nixpkgs uses this kind of a lot, so we won't be able to
actually enable this warning for a while to come.

Co-authored-by: Commentator2.0 <lix@crystal-cavern.systems>
Change-Id: I3b3b68c2eee4cd70959d3f4ca643cb6caf3a2217
2026-01-31 15:32:27 +01:00

64 lines
1.6 KiB
Nix

{
lib,
stdenv,
symlinkJoin,
pkgs,
nix,
nixpkgs,
system,
}:
# NOTE: Every endpoint used here is very fragile as nixpkgs is not built
# to test itself with anything other than CppNix. It will probably
# break during some nixpkgs bump.
let
inherit (lib) concatStringsSep optionals;
# Deprecated features to enable while running the nixpkgs test suite
# FIXME: All of these are fixed in Nixpkgs already, so clear the list on the next `nixpkgs` bump
deprecatedFeatures = [
"broken-string-indentation"
];
env.NIX_CONFIG = "extra-deprecated-features = ${concatStringsSep " " deprecatedFeatures}";
in
symlinkJoin {
name = "nixpkgs-lib-tests";
paths =
map
(
drv:
drv.overrideAttrs (old: {
env = (old.env or { }) // env;
})
)
(
[
(
(import (nixpkgs + "/lib/tests/test-with-nix.nix") {
inherit pkgs lib nix;
}).overrideAttrs
(_: {
buildInputs = [
(import (nixpkgs + "/lib/path/tests") {
inherit pkgs;
# NOTE: Override the nix version used here, we cannot rely on CppNix actually building
# c.f. https://github.com/NixOS/nixpkgs/blob/master/lib/path/tests/default.nix#L18
nixVersions.stable = nix;
})
];
})
)
]
++ optionals stdenv.isLinux [
((pkgs.callPackage (nixpkgs + "/ci/eval") { inherit nix; } { }).attrpathsSuperset {
evalSystem = system;
})
]
);
}