summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runner/resultgen.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/runner/resultgen.c b/runner/resultgen.c
index 2b7d26d5..7b4cd519 100644
--- a/runner/resultgen.c
+++ b/runner/resultgen.c
@@ -742,6 +742,7 @@ static const char *result_from_exitcode(int exitcode)
static void add_subtest(struct subtests *subtests, char *subtest)
{
size_t len = strlen(subtest);
+ size_t i;
if (len == 0)
return;
@@ -749,6 +750,11 @@ static void add_subtest(struct subtests *subtests, char *subtest)
if (subtest[len - 1] == '\n')
subtest[len - 1] = '\0';
+ /* Don't add if we already have this subtest */
+ for (i = 0; i < subtests->size; i++)
+ if (!strcmp(subtest, subtests->names[i]))
+ return;
+
subtests->size++;
subtests->names = realloc(subtests->names, sizeof(*subtests->names) * subtests->size);
subtests->names[subtests->size - 1] = subtest;