2024-05-02 00:46:19 +00:00
|
|
|
# Call nix-build on this file to run all tests in this directory
|
|
|
|
|
|
|
|
# This produces a link farm derivation with the original attrs
|
|
|
|
# merged on top of it.
|
|
|
|
# You can run parts of the "hierarchy" with for example:
|
|
|
|
# nix-build -A java-properties
|
|
|
|
# See `structured` below.
|
|
|
|
|
2024-06-30 08:16:52 +00:00
|
|
|
{
|
|
|
|
pkgs ? import ../../.. { },
|
|
|
|
}:
|
2024-05-02 00:46:19 +00:00
|
|
|
let
|
2024-06-30 08:16:52 +00:00
|
|
|
inherit (pkgs.lib)
|
|
|
|
mapAttrs
|
|
|
|
mapAttrsToList
|
|
|
|
isDerivation
|
|
|
|
mergeAttrs
|
|
|
|
foldl'
|
|
|
|
attrValues
|
|
|
|
recurseIntoAttrs
|
|
|
|
;
|
2024-05-02 00:46:19 +00:00
|
|
|
|
|
|
|
structured = {
|
|
|
|
formats = import ./formats.nix { inherit pkgs; };
|
|
|
|
java-properties = recurseIntoAttrs {
|
|
|
|
jdk8 = pkgs.callPackage ../formats/java-properties/test { jdk = pkgs.jdk8; };
|
|
|
|
jdk11 = pkgs.callPackage ../formats/java-properties/test { jdk = pkgs.jdk11_headless; };
|
|
|
|
jdk17 = pkgs.callPackage ../formats/java-properties/test { jdk = pkgs.jdk17_headless; };
|
|
|
|
};
|
|
|
|
|
|
|
|
libconfig = recurseIntoAttrs (import ../formats/libconfig/test { inherit pkgs; });
|
|
|
|
|
|
|
|
hocon = recurseIntoAttrs (import ../formats/hocon/test { inherit pkgs; });
|
|
|
|
};
|
|
|
|
|
2024-06-30 08:16:52 +00:00
|
|
|
flatten =
|
|
|
|
prefix: as:
|
|
|
|
foldl' mergeAttrs { } (
|
|
|
|
attrValues (
|
|
|
|
mapAttrs (
|
|
|
|
k: v:
|
|
|
|
if isDerivation v then
|
|
|
|
{ "${prefix}${k}" = v; }
|
|
|
|
else if v ? recurseForDerivations then
|
|
|
|
flatten "${prefix}${k}-" (removeAttrs v [ "recurseForDerivations" ])
|
|
|
|
else
|
|
|
|
builtins.trace v throw "expected derivation or recurseIntoAttrs"
|
|
|
|
) as
|
|
|
|
)
|
|
|
|
);
|
2024-05-02 00:46:19 +00:00
|
|
|
in
|
|
|
|
|
|
|
|
# It has to be a link farm for inclusion in the hydra unstable jobset.
|
2024-06-30 08:16:52 +00:00
|
|
|
pkgs.linkFarm "pkgs-lib-formats-tests" (
|
|
|
|
mapAttrsToList (k: v: {
|
|
|
|
name = k;
|
|
|
|
path = v;
|
|
|
|
}) (flatten "" structured)
|
|
|
|
)
|
2024-05-02 00:46:19 +00:00
|
|
|
// structured
|