52 lines
1.7 KiB
Nix
52 lines
1.7 KiB
Nix
# The memory tests have large dependencies (a profiled build of PostgREST)
|
|
# and are run less often than the spec tests, so we don't include them in
|
|
# the default test environment. We make them available through a separate module.
|
|
# TODO both of these require reentering the nix-shell if you make a change to the code
|
|
{ buildToolbox
|
|
, checkedShellScript
|
|
, curl
|
|
, postgrestProfiled
|
|
, withTools
|
|
}:
|
|
let
|
|
test =
|
|
checkedShellScript
|
|
{
|
|
name = "postgrest-test-memory";
|
|
docs = "Run the memory tests.";
|
|
workingDir = "/";
|
|
withPath = [ postgrestProfiled curl ];
|
|
}
|
|
''
|
|
${withTools.withPg} -f test/spec/fixtures/load.sql test/memory/memory-tests.sh
|
|
'';
|
|
|
|
runProfiled =
|
|
checkedShellScript
|
|
{
|
|
name = "postgrest-profiled-run";
|
|
docs = "Run a profiled build of postgREST. This will generate a postgrest.prof file that can be used to do optimization. Note: if you make a change to the code, you must reenter the nix-shell for an updated profiled build.";
|
|
args =
|
|
[
|
|
"ARG_USE_ENV([PGRST_DB_ANON_ROLE], [postgrest_test_anonymous], [PostgREST anonymous role])"
|
|
"ARG_USE_ENV([PGRST_DB_POOL], [1], [PostgREST pool size])"
|
|
"ARG_USE_ENV([PGRST_DB_POOL_ACQUISITION_TIMEOUT], [1], [PostgREST pool timeout])"
|
|
"ARG_LEFTOVERS([PostgREST arguments])"
|
|
];
|
|
workingDir = "/";
|
|
withPath = [ postgrestProfiled ];
|
|
}
|
|
''
|
|
export PGRST_DB_ANON_ROLE
|
|
export PGRST_DB_POOL
|
|
export PGRST_DB_POOL_ACQUISITION_TIMEOUT
|
|
|
|
postgrest +RTS -p -h -RTS "''${_arg_leftovers[@]}"
|
|
'';
|
|
in
|
|
buildToolbox
|
|
{
|
|
name = "postgrest-memory";
|
|
tools = { inherit test runProfiled; };
|
|
}
|