]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Thu Feb 12 14:27:12 CST 2009 Pekka Pessi <first.last@nokia.com>
authorMichael Jerris <mike@jerris.com>
Thu, 12 Feb 2009 21:18:20 +0000 (21:18 +0000)
committerMichael Jerris <mike@jerris.com>
Thu, 12 Feb 2009 21:18:20 +0000 (21:18 +0000)
  * s2tcase.c: allow multiple calls to s2_select_tests()

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@11953 d0543943-73ff-0310-b7d9-9358b9ac24b2

libs/sofia-sip/.update
libs/sofia-sip/s2check/s2check.h
libs/sofia-sip/s2check/s2tcase.c

index 23569485d85323c8896d0b7e0207fc690cd2be31..f5c54bb4e1d43c7d73ffb8415e7bde5023c4e61d 100644 (file)
@@ -1 +1 @@
-Thu Feb 12 15:17:34 CST 2009
+Thu Feb 12 15:18:14 CST 2009
index 772d09e94cc6e95d730f65bfd885b1b1102638c0..4197d5842054670a2a620b0d4ae96db11f90a455 100644 (file)
@@ -47,6 +47,8 @@ SOFIA_BEGIN_DECLS
 
 void s2_tcase_add_test(TCase *, TFun, char const *name);
 
+void s2_select_tests(char const *pattern);
+
 SOFIA_END_DECLS
 
 #endif /* S2CHECK_H */
index e7430197629e58abbe1266272657e1ba7bc1a407..285ec0278d49cbd3a50424d1ba57ac35f9d1a744 100644 (file)
@@ -30,6 +30,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
+#include <assert.h>
 
 #include <check.h>
 
@@ -79,7 +80,7 @@ void s2_tcase_add_test(TCase *tc, TFun tf, char const *name)
  */
 void s2_select_tests(char const *pattern)
 {
-  size_t i;
+  size_t i, n;
   char *cases, *s, **patterns;
 
   if (!pattern)
@@ -91,10 +92,22 @@ void s2_select_tests(char const *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;