aboutsummaryrefslogtreecommitdiff
path: root/src/test/isolation/isolationtester.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/isolation/isolationtester.c')
-rw-r--r--src/test/isolation/isolationtester.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/test/isolation/isolationtester.c b/src/test/isolation/isolationtester.c
index 01a420bcd3a..88594a3cb5d 100644
--- a/src/test/isolation/isolationtester.c
+++ b/src/test/isolation/isolationtester.c
@@ -52,8 +52,8 @@ static int64 max_step_wait = 300 * USECS_PER_SEC;
static void check_testspec(TestSpec *testspec);
static void run_testspec(TestSpec *testspec);
static void run_all_permutations(TestSpec *testspec);
-static void run_all_permutations_recurse(TestSpec *testspec, int nsteps,
- PermutationStep **steps);
+static void run_all_permutations_recurse(TestSpec *testspec, int *piles,
+ int nsteps, PermutationStep **steps);
static void run_named_permutations(TestSpec *testspec);
static void run_permutation(TestSpec *testspec, int nsteps,
PermutationStep **steps);
@@ -360,9 +360,9 @@ check_testspec(TestSpec *testspec)
fprintf(stderr, "unused step name: %s\n", allsteps[i]->name);
}
}
-}
-static int *piles;
+ free(allsteps);
+}
/*
* Run the permutations specified in the spec, or all if none were
@@ -387,6 +387,7 @@ run_all_permutations(TestSpec *testspec)
int i;
PermutationStep *steps;
PermutationStep **stepptrs;
+ int *piles;
/* Count the total number of steps in all sessions */
nsteps = 0;
@@ -412,11 +413,16 @@ run_all_permutations(TestSpec *testspec)
for (i = 0; i < testspec->nsessions; i++)
piles[i] = 0;
- run_all_permutations_recurse(testspec, 0, stepptrs);
+ run_all_permutations_recurse(testspec, piles, 0, stepptrs);
+
+ free(steps);
+ free(stepptrs);
+ free(piles);
}
static void
-run_all_permutations_recurse(TestSpec *testspec, int nsteps, PermutationStep **steps)
+run_all_permutations_recurse(TestSpec *testspec, int *piles,
+ int nsteps, PermutationStep **steps)
{
int i;
bool found = false;
@@ -438,7 +444,7 @@ run_all_permutations_recurse(TestSpec *testspec, int nsteps, PermutationStep **s
piles[i]++;
- run_all_permutations_recurse(testspec, nsteps + 1, steps);
+ run_all_permutations_recurse(testspec, piles, nsteps + 1, steps);
piles[i]--;