Commit af357373 authored by Heikki Linnakangas's avatar Heikki Linnakangas

Add an SSI regression test that tests all interesting permutations in the

order of begin, prepare, and commit of three concurrent transactions that
have conflicts between them.

The test runs for a quite long time, and the expected output file is huge,
but this test caught some serious bugs during development, so seems
worthwhile to keep. The test uses prepared transactions, so it fails if the
server has max_prepared_transactions=0. Because of that, it's marked as
"ignore" in the schedule file.

Dan Ports
parent 62fd1afc
This diff is collapsed.
......@@ -9,6 +9,11 @@ test: ri-trigger
test: partial-index
test: two-ids
test: multiple-row-versions
# Ignore failure from prepared-transactions test, because it fails if
# prepared transactions are disabled in the server. It should pass if they're
# enabled, however.
ignore: prepared-transactions
test: prepared-transactions
test: fk-contention
test: fk-deadlock
test: fk-deadlock2
......@@ -416,7 +416,11 @@ run_permutation(TestSpec * testspec, int nsteps, Step ** steps)
if (testspec->sessions[i]->setupsql)
{
res = PQexec(conns[i + 1], testspec->sessions[i]->setupsql);
if (PQresultStatus(res) != PGRES_COMMAND_OK)
if (PQresultStatus(res) == PGRES_TUPLES_OK)
{
printResultSet(res);
}
else if (PQresultStatus(res) != PGRES_COMMAND_OK)
{
fprintf(stderr, "setup of session %s failed: %s",
testspec->sessions[i]->name,
......@@ -477,7 +481,11 @@ run_permutation(TestSpec * testspec, int nsteps, Step ** steps)
if (testspec->teardownsql)
{
res = PQexec(conns[0], testspec->teardownsql);
if (PQresultStatus(res) != PGRES_COMMAND_OK)
if (PQresultStatus(res) == PGRES_TUPLES_OK)
{
printResultSet(res);
}
else if (PQresultStatus(res) != PGRES_COMMAND_OK)
{
fprintf(stderr, "teardown failed: %s",
PQerrorMessage(conns[0]));
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment