Unverified Commit 0ea2d480 authored by Nick Cao's avatar Nick Cao
Browse files

postgresqlTestHook: run postgresqlTestSetupPost hook after setting up

parent a5088fdb
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -46,6 +46,12 @@ Bash-only variables:
 - `postgresqlEnableTCP`: set to `1` to enable TCP listening. Flaky; not recommended.
 - `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}

`postgresqlEnableTCP` relies on network sandboxing, which is not available on macOS and some custom Nix installations, resulting in flaky tests.
+2 −0
Original line number Diff line number Diff line
@@ -71,6 +71,8 @@ EOF
  header 'setting up postgresql'
  eval "$postgresqlTestSetupCommands"

  runHook postgresqlTestSetupPost

}

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