tests: refactor

This commit is contained in:
Qyriad 2026-02-11 13:19:59 +01:00
parent 8a6bd41baa
commit d7a0cbefe5
12 changed files with 184 additions and 127 deletions

View file

@ -2,9 +2,12 @@
lib,
stdenvNoCC,
callPackage,
linkFarm,
}: let
stdenv = stdenvNoCC;
in stdenv.mkDerivation (self: {
in stdenv.mkDerivation (finalAttrs: let
self = finalAttrs.finalPackage;
in {
name = "dynix-modules";
strictDeps = true;
@ -21,12 +24,15 @@ in stdenv.mkDerivation (self: {
phases = [ "unpackPhase" "patchPhase" "installPhase" ];
modulesOut = "${placeholder "modules"}/share/nixos/modules/dynix";
installPhase = lib.dedent ''
runHook preInstall
mkdir -p "$out"
cp -r * "$out/"
mkdir -p "$modules/share/nixos/modules/dynix"
cp --reflink=auto -r "$out/"* "$modules/share/nixos/modules/dynix/"
cp --reflink=auto -r "$out/"* "$modulesOut/"
'';
passthru.mkDevShell = {
@ -39,7 +45,7 @@ in stdenv.mkDerivation (self: {
p.beartype
]);
in mkShell' {
name = "devshell-for-${self.finalPackage.name}";
name = "devshell-for-${self.name}";
packages = [ pyEnv ];
env.PYTHONPATH = [
"${pyEnv}/${pyEnv.sitePackages}"
@ -48,13 +54,19 @@ in stdenv.mkDerivation (self: {
] |> lib.concatStringsSep ":";
};
passthru.modulesPath = self.finalPackage.modules + "/share/nixos/modules";
passthru.modulesPath = self.modules + "/share/nixos/modules";
passthru.tests = lib.fix (callPackage ./tests {
dynix = self.finalPackage;
dynix = self;
}).packages;
passthru.allTests = linkFarm "dynix-all-tests" self.tests;
meta = {
longDescription = lib.dedent ''
Default output contains the modules at top-level, meant for `import`.
The `modules` output contains the modules prefixed under `/share/nixos/modules/dynix`.
'';
outputsToInstall = [ "modules" ];
};
})