summaryrefslogtreecommitdiff
path: root/src/test/isolation/isolationtester.c
diff options
context:
space:
mode:
authorHeikki Linnakangas2011-08-18 10:36:37 +0000
committerHeikki Linnakangas2011-08-18 14:09:58 +0000
commitaf35737313f92fcbe227baf51bb69b8650acc41a (patch)
tree573432ad01cec69d61016829617a0f57ffb0d112 /src/test/isolation/isolationtester.c
parent62fd1afc55368a2d4a15b60cda80bb5b1c594abc (diff)
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
Diffstat (limited to 'src/test/isolation/isolationtester.c')
-rw-r--r--src/test/isolation/isolationtester.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/test/isolation/isolationtester.c b/src/test/isolation/isolationtester.c
index 96d7f17de8b..2f9fb2d842b 100644
--- a/src/test/isolation/isolationtester.c
+++ b/src/test/isolation/isolationtester.c
@@ -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]));