mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-12 04:35:41 +03:00
treewide: Format all Nix files
Format all Nix files using the officially approved formatter,
making the CI check introduced in the previous commit succeed:
nix-build ci -A fmt.check
This is the next step of the of the [implementation](https://github.com/NixOS/nixfmt/issues/153)
of the accepted [RFC 166](https://github.com/NixOS/rfcs/pull/166).
This commit will lead to merge conflicts for a number of PRs,
up to an estimated ~1100 (~33%) among the PRs with activity in the past 2
months, but that should be lower than what it would be without the previous
[partial treewide format](https://github.com/NixOS/nixpkgs/pull/322537).
Merge conflicts caused by this commit can now automatically be resolved while rebasing using the
[auto-rebase script](8616af08d9/maintainers/scripts/auto-rebase
).
If you run into any problems regarding any of this, please reach out to the
[formatting team](https://nixos.org/community/teams/formatting/) by
pinging @NixOS/nix-formatting.
This commit is contained in:
parent
2140bf39e4
commit
374e6bcc40
1523 changed files with 986047 additions and 513621 deletions
2701
lib/tests/misc.nix
2701
lib/tests/misc.nix
File diff suppressed because it is too large
Load diff
|
@ -1,7 +1,8 @@
|
|||
{ lib, ... }:
|
||||
let
|
||||
inherit (builtins)
|
||||
storeDir;
|
||||
storeDir
|
||||
;
|
||||
inherit (lib)
|
||||
types
|
||||
mkOption
|
||||
|
|
|
@ -1,24 +1,32 @@
|
|||
{ # The pkgs used for dependencies for the testing itself
|
||||
{
|
||||
# The pkgs used for dependencies for the testing itself
|
||||
# Don't test properties of pkgs.lib, but rather the lib in the parent directory
|
||||
system ? builtins.currentSystem,
|
||||
pkgs ? import ../.. { inherit system; } // { lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; },
|
||||
pkgs ? import ../.. { inherit system; } // {
|
||||
lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!";
|
||||
},
|
||||
# For testing someone may edit impure.nix to return cross pkgs, use `pkgsBuildBuild` directly so everything here works.
|
||||
pkgsBB ? pkgs.pkgsBuildBuild,
|
||||
nix ? pkgs-nixVersions.stable,
|
||||
nixVersions ? [ pkgs-nixVersions.minimum nix pkgs-nixVersions.latest ],
|
||||
nixVersions ? [
|
||||
pkgs-nixVersions.minimum
|
||||
nix
|
||||
pkgs-nixVersions.latest
|
||||
],
|
||||
pkgs-nixVersions ? import ./nix-for-tests.nix { pkgs = pkgsBB; },
|
||||
}:
|
||||
|
||||
let
|
||||
lib = import ../.;
|
||||
testWithNix = nix:
|
||||
testWithNix =
|
||||
nix:
|
||||
import ./test-with-nix.nix {
|
||||
inherit lib nix;
|
||||
pkgs = pkgsBB;
|
||||
};
|
||||
|
||||
in
|
||||
pkgsBB.symlinkJoin {
|
||||
name = "nixpkgs-lib-tests";
|
||||
paths = map testWithNix nixVersions;
|
||||
}
|
||||
pkgsBB.symlinkJoin {
|
||||
name = "nixpkgs-lib-tests";
|
||||
paths = map testWithNix nixVersions;
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
let
|
||||
lib = import ../default.nix;
|
||||
mseteq = x: y: {
|
||||
expr = lib.sort lib.lessThan x;
|
||||
expr = lib.sort lib.lessThan x;
|
||||
expected = lib.sort lib.lessThan y;
|
||||
};
|
||||
|
||||
|
@ -20,99 +20,273 @@ let
|
|||
NOTE: This property is not guaranteed when `sys` was elaborated by a different
|
||||
version of Nixpkgs.
|
||||
*/
|
||||
toLosslessStringMaybe = sys:
|
||||
if lib.isString sys then sys
|
||||
else if lib.systems.equals sys (lib.systems.elaborate sys.system) then sys.system
|
||||
else null;
|
||||
toLosslessStringMaybe =
|
||||
sys:
|
||||
if lib.isString sys then
|
||||
sys
|
||||
else if lib.systems.equals sys (lib.systems.elaborate sys.system) then
|
||||
sys.system
|
||||
else
|
||||
null;
|
||||
|
||||
in
|
||||
lib.runTests (
|
||||
# We assert that the new algorithmic way of generating these lists matches the
|
||||
# way they were hard-coded before.
|
||||
#
|
||||
# One might think "if we exhaustively test, what's the point of procedurally
|
||||
# calculating the lists anyway?". The answer is one can mindlessly update these
|
||||
# tests as new platforms become supported, and then just give the diff a quick
|
||||
# sanity check before committing :).
|
||||
# We assert that the new algorithmic way of generating these lists matches the
|
||||
# way they were hard-coded before.
|
||||
#
|
||||
# One might think "if we exhaustively test, what's the point of procedurally
|
||||
# calculating the lists anyway?". The answer is one can mindlessly update these
|
||||
# tests as new platforms become supported, and then just give the diff a quick
|
||||
# sanity check before committing :).
|
||||
|
||||
(with lib.systems.doubles; {
|
||||
testall = mseteq all (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ wasi ++ windows ++ embedded ++ mmix ++ js ++ genode ++ redox);
|
||||
(with lib.systems.doubles; {
|
||||
testall = mseteq all (
|
||||
linux
|
||||
++ darwin
|
||||
++ freebsd
|
||||
++ openbsd
|
||||
++ netbsd
|
||||
++ illumos
|
||||
++ wasi
|
||||
++ windows
|
||||
++ embedded
|
||||
++ mmix
|
||||
++ js
|
||||
++ genode
|
||||
++ redox
|
||||
);
|
||||
|
||||
testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv6l-netbsd" "armv6l-none" "armv7a-linux" "armv7a-netbsd" "armv7l-linux" "armv7l-netbsd" "arm-none" "armv7a-darwin" ];
|
||||
testarmv7 = mseteq armv7 [ "armv7a-darwin" "armv7a-linux" "armv7l-linux" "armv7a-netbsd" "armv7l-netbsd" ];
|
||||
testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-genode" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ];
|
||||
testmips = mseteq mips [ "mips-none" "mips64-none" "mips-linux" "mips64-linux" "mips64el-linux" "mipsel-linux" "mipsel-netbsd" ];
|
||||
testmmix = mseteq mmix [ "mmix-mmixware" ];
|
||||
testpower = mseteq power [ "powerpc-netbsd" "powerpc-none" "powerpc64-linux" "powerpc64le-linux" "powerpcle-none" ];
|
||||
testriscv = mseteq riscv [ "riscv32-linux" "riscv64-linux" "riscv32-netbsd" "riscv64-netbsd" "riscv32-none" "riscv64-none" ];
|
||||
testriscv32 = mseteq riscv32 [ "riscv32-linux" "riscv32-netbsd" "riscv32-none" ];
|
||||
testriscv64 = mseteq riscv64 [ "riscv64-linux" "riscv64-netbsd" "riscv64-none" ];
|
||||
tests390x = mseteq s390x [ "s390x-linux" "s390x-none" ];
|
||||
testx86_64 = mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd" "x86_64-genode" "x86_64-redox" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" "x86_64-solaris" "x86_64-windows" "x86_64-none" ];
|
||||
testarm = mseteq arm [
|
||||
"armv5tel-linux"
|
||||
"armv6l-linux"
|
||||
"armv6l-netbsd"
|
||||
"armv6l-none"
|
||||
"armv7a-linux"
|
||||
"armv7a-netbsd"
|
||||
"armv7l-linux"
|
||||
"armv7l-netbsd"
|
||||
"arm-none"
|
||||
"armv7a-darwin"
|
||||
];
|
||||
testarmv7 = mseteq armv7 [
|
||||
"armv7a-darwin"
|
||||
"armv7a-linux"
|
||||
"armv7l-linux"
|
||||
"armv7a-netbsd"
|
||||
"armv7l-netbsd"
|
||||
];
|
||||
testi686 = mseteq i686 [
|
||||
"i686-linux"
|
||||
"i686-freebsd"
|
||||
"i686-genode"
|
||||
"i686-netbsd"
|
||||
"i686-openbsd"
|
||||
"i686-cygwin"
|
||||
"i686-windows"
|
||||
"i686-none"
|
||||
"i686-darwin"
|
||||
];
|
||||
testmips = mseteq mips [
|
||||
"mips-none"
|
||||
"mips64-none"
|
||||
"mips-linux"
|
||||
"mips64-linux"
|
||||
"mips64el-linux"
|
||||
"mipsel-linux"
|
||||
"mipsel-netbsd"
|
||||
];
|
||||
testmmix = mseteq mmix [ "mmix-mmixware" ];
|
||||
testpower = mseteq power [
|
||||
"powerpc-netbsd"
|
||||
"powerpc-none"
|
||||
"powerpc64-linux"
|
||||
"powerpc64le-linux"
|
||||
"powerpcle-none"
|
||||
];
|
||||
testriscv = mseteq riscv [
|
||||
"riscv32-linux"
|
||||
"riscv64-linux"
|
||||
"riscv32-netbsd"
|
||||
"riscv64-netbsd"
|
||||
"riscv32-none"
|
||||
"riscv64-none"
|
||||
];
|
||||
testriscv32 = mseteq riscv32 [
|
||||
"riscv32-linux"
|
||||
"riscv32-netbsd"
|
||||
"riscv32-none"
|
||||
];
|
||||
testriscv64 = mseteq riscv64 [
|
||||
"riscv64-linux"
|
||||
"riscv64-netbsd"
|
||||
"riscv64-none"
|
||||
];
|
||||
tests390x = mseteq s390x [
|
||||
"s390x-linux"
|
||||
"s390x-none"
|
||||
];
|
||||
testx86_64 = mseteq x86_64 [
|
||||
"x86_64-linux"
|
||||
"x86_64-darwin"
|
||||
"x86_64-freebsd"
|
||||
"x86_64-genode"
|
||||
"x86_64-redox"
|
||||
"x86_64-openbsd"
|
||||
"x86_64-netbsd"
|
||||
"x86_64-cygwin"
|
||||
"x86_64-solaris"
|
||||
"x86_64-windows"
|
||||
"x86_64-none"
|
||||
];
|
||||
|
||||
testcygwin = mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ];
|
||||
testdarwin = mseteq darwin [ "x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin" ];
|
||||
testfreebsd = mseteq freebsd [ "aarch64-freebsd" "i686-freebsd" "x86_64-freebsd" ];
|
||||
testgenode = mseteq genode [ "aarch64-genode" "i686-genode" "x86_64-genode" ];
|
||||
testredox = mseteq redox [ "x86_64-redox" ];
|
||||
testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */);
|
||||
testillumos = mseteq illumos [ "x86_64-solaris" ];
|
||||
testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "loongarch64-linux" "m68k-linux" "microblaze-linux" "microblazeel-linux" "mips-linux" "mips64-linux" "mips64el-linux" "mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv32-linux" "riscv64-linux" "s390-linux" "s390x-linux" "x86_64-linux" ];
|
||||
testnetbsd = mseteq netbsd [ "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" "i686-netbsd" "m68k-netbsd" "mipsel-netbsd" "powerpc-netbsd" "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd" ];
|
||||
testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ];
|
||||
testwindows = mseteq windows [ "i686-cygwin" "x86_64-cygwin" "aarch64-windows" "i686-windows" "x86_64-windows" ];
|
||||
testunix = mseteq unix (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ cygwin ++ redox);
|
||||
})
|
||||
testcygwin = mseteq cygwin [
|
||||
"i686-cygwin"
|
||||
"x86_64-cygwin"
|
||||
];
|
||||
testdarwin = mseteq darwin [
|
||||
"x86_64-darwin"
|
||||
"i686-darwin"
|
||||
"aarch64-darwin"
|
||||
"armv7a-darwin"
|
||||
];
|
||||
testfreebsd = mseteq freebsd [
|
||||
"aarch64-freebsd"
|
||||
"i686-freebsd"
|
||||
"x86_64-freebsd"
|
||||
];
|
||||
testgenode = mseteq genode [
|
||||
"aarch64-genode"
|
||||
"i686-genode"
|
||||
"x86_64-genode"
|
||||
];
|
||||
testredox = mseteq redox [ "x86_64-redox" ];
|
||||
testgnu = mseteq gnu (
|
||||
linux # ++ kfreebsd ++ ...
|
||||
);
|
||||
testillumos = mseteq illumos [ "x86_64-solaris" ];
|
||||
testlinux = mseteq linux [
|
||||
"aarch64-linux"
|
||||
"armv5tel-linux"
|
||||
"armv6l-linux"
|
||||
"armv7a-linux"
|
||||
"armv7l-linux"
|
||||
"i686-linux"
|
||||
"loongarch64-linux"
|
||||
"m68k-linux"
|
||||
"microblaze-linux"
|
||||
"microblazeel-linux"
|
||||
"mips-linux"
|
||||
"mips64-linux"
|
||||
"mips64el-linux"
|
||||
"mipsel-linux"
|
||||
"powerpc64-linux"
|
||||
"powerpc64le-linux"
|
||||
"riscv32-linux"
|
||||
"riscv64-linux"
|
||||
"s390-linux"
|
||||
"s390x-linux"
|
||||
"x86_64-linux"
|
||||
];
|
||||
testnetbsd = mseteq netbsd [
|
||||
"aarch64-netbsd"
|
||||
"armv6l-netbsd"
|
||||
"armv7a-netbsd"
|
||||
"armv7l-netbsd"
|
||||
"i686-netbsd"
|
||||
"m68k-netbsd"
|
||||
"mipsel-netbsd"
|
||||
"powerpc-netbsd"
|
||||
"riscv32-netbsd"
|
||||
"riscv64-netbsd"
|
||||
"x86_64-netbsd"
|
||||
];
|
||||
testopenbsd = mseteq openbsd [
|
||||
"i686-openbsd"
|
||||
"x86_64-openbsd"
|
||||
];
|
||||
testwindows = mseteq windows [
|
||||
"i686-cygwin"
|
||||
"x86_64-cygwin"
|
||||
"aarch64-windows"
|
||||
"i686-windows"
|
||||
"x86_64-windows"
|
||||
];
|
||||
testunix = mseteq unix (
|
||||
linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ cygwin ++ redox
|
||||
);
|
||||
})
|
||||
|
||||
// {
|
||||
test_equals_example_x86_64-linux = {
|
||||
expr = lib.systems.equals (lib.systems.elaborate "x86_64-linux") (lib.systems.elaborate "x86_64-linux");
|
||||
expected = true;
|
||||
};
|
||||
|
||||
test_toLosslessStringMaybe_example_x86_64-linux = {
|
||||
expr = toLosslessStringMaybe (lib.systems.elaborate "x86_64-linux");
|
||||
expected = "x86_64-linux";
|
||||
};
|
||||
test_toLosslessStringMaybe_fail = {
|
||||
expr = toLosslessStringMaybe (lib.systems.elaborate "x86_64-linux" // { something = "extra"; });
|
||||
expected = null;
|
||||
};
|
||||
test_elaborate_config_over_system = {
|
||||
expr = (lib.systems.elaborate { config = "i686-unknown-linux-gnu"; system = "x86_64-linux"; }).system;
|
||||
expected = "i686-linux";
|
||||
};
|
||||
test_elaborate_config_over_parsed = {
|
||||
expr = (lib.systems.elaborate { config = "i686-unknown-linux-gnu"; parsed = (lib.systems.elaborate "x86_64-linux").parsed; }).parsed.cpu.arch;
|
||||
expected = "i686";
|
||||
};
|
||||
test_elaborate_system_over_parsed = {
|
||||
expr = (lib.systems.elaborate { system = "i686-linux"; parsed = (lib.systems.elaborate "x86_64-linux").parsed; }).parsed.cpu.arch;
|
||||
expected = "i686";
|
||||
};
|
||||
}
|
||||
|
||||
# Generate test cases to assert that a change in any non-function attribute makes a platform unequal
|
||||
// lib.concatMapAttrs (platformAttrName: origValue: {
|
||||
|
||||
${"test_equals_unequal_${platformAttrName}"} =
|
||||
let modified =
|
||||
assert origValue != arbitraryValue;
|
||||
lib.systems.elaborate "x86_64-linux" // { ${platformAttrName} = arbitraryValue; };
|
||||
arbitraryValue = x: "<<modified>>";
|
||||
in {
|
||||
expr = lib.systems.equals (lib.systems.elaborate "x86_64-linux") modified;
|
||||
expected = {
|
||||
# Changes in these attrs are not detectable because they're function.
|
||||
# The functions should be derived from the data, so this is not a problem.
|
||||
canExecute = null;
|
||||
emulator = null;
|
||||
emulatorAvailable = null;
|
||||
staticEmulatorAvailable = null;
|
||||
isCompatible = null;
|
||||
}?${platformAttrName};
|
||||
// {
|
||||
test_equals_example_x86_64-linux = {
|
||||
expr = lib.systems.equals (lib.systems.elaborate "x86_64-linux") (
|
||||
lib.systems.elaborate "x86_64-linux"
|
||||
);
|
||||
expected = true;
|
||||
};
|
||||
|
||||
}) (lib.systems.elaborate "x86_64-linux" /* arbitrary choice, just to get all the elaborated attrNames */)
|
||||
test_toLosslessStringMaybe_example_x86_64-linux = {
|
||||
expr = toLosslessStringMaybe (lib.systems.elaborate "x86_64-linux");
|
||||
expected = "x86_64-linux";
|
||||
};
|
||||
test_toLosslessStringMaybe_fail = {
|
||||
expr = toLosslessStringMaybe (lib.systems.elaborate "x86_64-linux" // { something = "extra"; });
|
||||
expected = null;
|
||||
};
|
||||
test_elaborate_config_over_system = {
|
||||
expr =
|
||||
(lib.systems.elaborate {
|
||||
config = "i686-unknown-linux-gnu";
|
||||
system = "x86_64-linux";
|
||||
}).system;
|
||||
expected = "i686-linux";
|
||||
};
|
||||
test_elaborate_config_over_parsed = {
|
||||
expr =
|
||||
(lib.systems.elaborate {
|
||||
config = "i686-unknown-linux-gnu";
|
||||
parsed = (lib.systems.elaborate "x86_64-linux").parsed;
|
||||
}).parsed.cpu.arch;
|
||||
expected = "i686";
|
||||
};
|
||||
test_elaborate_system_over_parsed = {
|
||||
expr =
|
||||
(lib.systems.elaborate {
|
||||
system = "i686-linux";
|
||||
parsed = (lib.systems.elaborate "x86_64-linux").parsed;
|
||||
}).parsed.cpu.arch;
|
||||
expected = "i686";
|
||||
};
|
||||
}
|
||||
|
||||
# Generate test cases to assert that a change in any non-function attribute makes a platform unequal
|
||||
//
|
||||
lib.concatMapAttrs
|
||||
(platformAttrName: origValue: {
|
||||
|
||||
${"test_equals_unequal_${platformAttrName}"} =
|
||||
let
|
||||
modified =
|
||||
assert origValue != arbitraryValue;
|
||||
lib.systems.elaborate "x86_64-linux" // { ${platformAttrName} = arbitraryValue; };
|
||||
arbitraryValue = x: "<<modified>>";
|
||||
in
|
||||
{
|
||||
expr = lib.systems.equals (lib.systems.elaborate "x86_64-linux") modified;
|
||||
expected =
|
||||
{
|
||||
# Changes in these attrs are not detectable because they're function.
|
||||
# The functions should be derived from the data, so this is not a problem.
|
||||
canExecute = null;
|
||||
emulator = null;
|
||||
emulatorAvailable = null;
|
||||
staticEmulatorAvailable = null;
|
||||
isCompatible = null;
|
||||
} ? ${platformAttrName};
|
||||
};
|
||||
|
||||
})
|
||||
(
|
||||
lib.systems.elaborate "x86_64-linux" # arbitrary choice, just to get all the elaborated attrNames
|
||||
)
|
||||
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue