#include <stdlib.h>
#include <string.h>
#include <stdio.h>
+#include <assert.h>
#include <check.h>
*/
void s2_select_tests(char const *pattern)
{
- size_t i;
+ size_t i, n;
char *cases, *s, **patterns;
if (!pattern)
for (i = 2, s = cases; (s = strchr(s, ',')); s++)
i++;
- patterns = calloc(i, sizeof *patterns);
+ if (test_patterns != default_patterns) {
+ patterns = (char **)test_patterns;
+ for (n = 0; patterns[n]; n++)
+ ;
+ patterns = realloc(patterns, (n + i) * (sizeof *patterns));
+ }
+ else {
+ n = 0;
+ patterns = malloc(i * (sizeof *patterns));
+ }
+
+ assert(patterns);
+ memset(&patterns[n], 0, i * (sizeof *patterns));
/* Split by commas */
- for (i = 0, s = cases;; i++) {
+ for (i = n, s = cases;; i++) {
patterns[i] = s;
if (s == NULL)
break;