1{
2 pkgs,
3 makeTest,
4 genTests,
5}:
6
7let
8 inherit (pkgs) lib;
9
10 makeTestFor =
11 package:
12 makeTest {
13 name = "wal2json-${package.name}";
14 meta.maintainers = with pkgs.lib.maintainers; [ euank ];
15
16 nodes.machine = {
17 services.postgresql = {
18 inherit package;
19 enable = true;
20 extensions = with package.pkgs; [ wal2json ];
21 settings = {
22 wal_level = "logical";
23 max_replication_slots = "10";
24 max_wal_senders = "10";
25 };
26 };
27 };
28
29 testScript = ''
30 machine.wait_for_unit("postgresql")
31 machine.succeed(
32 "sudo -u postgres psql -qAt -f ${./wal2json/example2.sql} postgres > /tmp/example2.out"
33 )
34 machine.succeed(
35 "diff ${./wal2json/example2.out} /tmp/example2.out"
36 )
37 machine.succeed(
38 "sudo -u postgres psql -qAt -f ${./wal2json/example3.sql} postgres > /tmp/example3.out"
39 )
40 machine.succeed(
41 "diff ${./wal2json/example3.out} /tmp/example3.out"
42 )
43 '';
44 };
45in
46genTests {
47 inherit makeTestFor;
48 filter = _: p: !p.pkgs.wal2json.meta.broken;
49}