at 23.11-pre 1.5 kB view raw
1{ system ? builtins.currentSystem 2, config ? {} 3, pkgs ? import ../.. { inherit system config; } 4}: 5 6with import ../lib/testing-python.nix { inherit system pkgs; }; 7 8let 9 inherit (pkgs) lib; 10 packages = builtins.attrNames (import ../../pkgs/servers/sql/postgresql pkgs); 11 12 mkJitTest = packageName: makeTest { 13 name = "${packageName}"; 14 meta.maintainers = with lib.maintainers; [ ma27 ]; 15 nodes.machine = { pkgs, lib, ... }: { 16 services.postgresql = { 17 enable = true; 18 enableJIT = true; 19 package = pkgs.${packageName}; 20 initialScript = pkgs.writeText "init.sql" '' 21 create table demo (id int); 22 insert into demo (id) select generate_series(1, 5); 23 ''; 24 }; 25 }; 26 testScript = '' 27 machine.start() 28 machine.wait_for_unit("postgresql.service") 29 30 with subtest("JIT is enabled"): 31 machine.succeed("sudo -u postgres psql <<<'show jit;' | grep 'on'") 32 33 with subtest("Test JIT works fine"): 34 output = machine.succeed( 35 "cat ${pkgs.writeText "test.sql" '' 36 set jit_above_cost = 1; 37 EXPLAIN ANALYZE SELECT CONCAT('jit result = ', SUM(id)) FROM demo; 38 SELECT CONCAT('jit result = ', SUM(id)) from demo; 39 ''} | sudo -u postgres psql" 40 ) 41 assert "JIT:" in output 42 assert "jit result = 15" in output 43 44 machine.shutdown() 45 ''; 46 }; 47in 48lib.genAttrs packages mkJitTest