postgresql: remove thisAttr argument by calling tests directly

Previously, it was not possible to run tests on an overridden derivation, because
the derivation under test was always pulled from pkgs.

With this change, the following will return the same test:

  postgresql_jit.tests

and

  (postgresql.override { jitSupport = true; }).tests
This commit is contained in:
Wolfgang Walther
2024-03-03 11:48:15 +01:00
parent 75a5384ed5
commit aea4ba847a
4 changed files with 128 additions and 107 deletions

View File

@@ -1,6 +1,7 @@
{ system ? builtins.currentSystem
, config ? {}
, pkgs ? import ../.. { inherit system config; }
, package ? null
}:
with import ../lib/testing-python.nix { inherit system pkgs; };
@@ -9,14 +10,17 @@ let
inherit (pkgs) lib;
packages = builtins.attrNames (import ../../pkgs/servers/sql/postgresql pkgs);
mkJitTest = packageName: makeTest {
name = "${packageName}";
mkJitTestFromName = name:
mkJitTest pkgs.${name};
mkJitTest = package: makeTest {
name = package.name;
meta.maintainers = with lib.maintainers; [ ma27 ];
nodes.machine = { pkgs, lib, ... }: {
services.postgresql = {
inherit package;
enable = true;
enableJIT = true;
package = pkgs.${packageName};
initialScript = pkgs.writeText "init.sql" ''
create table demo (id int);
insert into demo (id) select generate_series(1, 5);
@@ -45,4 +49,7 @@ let
'';
};
in
lib.genAttrs packages mkJitTest
if package == null then
lib.genAttrs packages mkJitTestFromName
else
mkJitTest package