3
0
Fork 0
forked from mirrors/nixpkgs

postgresqlTestHook: run postgresqlTestSetupPost hook after setting up

This commit is contained in:
Nick Cao 2023-01-25 16:40:14 +08:00
parent a5088fdb72
commit 0ea2d480e4
No known key found for this signature in database
3 changed files with 12 additions and 1 deletions

View file

@ -46,6 +46,12 @@ Bash-only variables:
- `postgresqlEnableTCP`: set to `1` to enable TCP listening. Flaky; not recommended. - `postgresqlEnableTCP`: set to `1` to enable TCP listening. Flaky; not recommended.
- `postgresqlStartCommands`: defaults to `pg_ctl start`. - `postgresqlStartCommands`: defaults to `pg_ctl start`.
## Hooks {#sec-postgresqlTestHook-hooks}
A number of additional hooks are ran in postgresqlTestHook
- `postgresqlTestSetupPost`: ran after postgresql has been set up.
## TCP and the Nix sandbox {#sec-postgresqlTestHook-tcp} ## TCP and the Nix sandbox {#sec-postgresqlTestHook-tcp}
`postgresqlEnableTCP` relies on network sandboxing, which is not available on macOS and some custom Nix installations, resulting in flaky tests. `postgresqlEnableTCP` relies on network sandboxing, which is not available on macOS and some custom Nix installations, resulting in flaky tests.

View file

@ -71,6 +71,8 @@ EOF
header 'setting up postgresql' header 'setting up postgresql'
eval "$postgresqlTestSetupCommands" eval "$postgresqlTestSetupCommands"
runHook postgresqlTestSetupPost
} }
postgresqlStop() { postgresqlStop() {

View file

@ -14,6 +14,9 @@ stdenv.mkDerivation {
INSERT INTO hello VALUES ('it '||'worked'); INSERT INTO hello VALUES ('it '||'worked');
SELECT * FROM hello; SELECT * FROM hello;
''; '';
postgresqlTestSetupPost = ''
TEST_POST_HOOK_RAN=1
'';
checkPhase = '' checkPhase = ''
runHook preCheck runHook preCheck
psql <$sqlPath | grep 'it worked' psql <$sqlPath | grep 'it worked'
@ -21,7 +24,7 @@ stdenv.mkDerivation {
runHook postCheck runHook postCheck
''; '';
installPhase = '' installPhase = ''
[[ $TEST_RAN == 1 ]] [[ $TEST_RAN == 1 && $TEST_POST_HOOK_RAN == 1 ]]
touch $out touch $out
''; '';
} }