diff options
author | Heikki Linnakangas | 2011-08-18 10:36:37 +0000 |
---|---|---|
committer | Heikki Linnakangas | 2011-08-18 14:09:58 +0000 |
commit | af35737313f92fcbe227baf51bb69b8650acc41a (patch) | |
tree | 573432ad01cec69d61016829617a0f57ffb0d112 /src/test/isolation/isolationtester.c | |
parent | 62fd1afc55368a2d4a15b60cda80bb5b1c594abc (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.c | 12 |
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])); |