|
|
@@ -1,6 +1,7 @@
|
|
|
+#include "string/string.h"
|
|
|
#include <stdlib.h>
|
|
|
#include <stdio.h>
|
|
|
-#include "string/string.h"
|
|
|
+#include "string/string.c"
|
|
|
#include "tap/tap.h"
|
|
|
|
|
|
/* FIXME: ccanize */
|
|
|
@@ -21,6 +22,8 @@ static char *strdup_rev(const char *s)
|
|
|
int main(int argc, char *argv[])
|
|
|
{
|
|
|
unsigned int i, j, n;
|
|
|
+ char **split;
|
|
|
+ void *ctx;
|
|
|
char *strings[ARRAY_SIZE(substrings) * ARRAY_SIZE(substrings)];
|
|
|
|
|
|
n = 0;
|
|
|
@@ -33,7 +36,7 @@ int main(int argc, char *argv[])
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- plan_tests(n * n * 5);
|
|
|
+ plan_tests(n * n * 5 + 16);
|
|
|
for (i = 0; i < n; i++) {
|
|
|
for (j = 0; j < n; j++) {
|
|
|
unsigned int k, identical = 0;
|
|
|
@@ -73,5 +76,34 @@ int main(int argc, char *argv[])
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ split = strsplit(NULL, "hello world", " ", &n);
|
|
|
+ ok1(n == 3);
|
|
|
+ ok1(streq(split[0], "hello"));
|
|
|
+ ok1(streq(split[1], ""));
|
|
|
+ ok1(streq(split[2], "world"));
|
|
|
+ ok1(split[3] == NULL);
|
|
|
+ talloc_free(split);
|
|
|
+
|
|
|
+ split = strsplit(NULL, "hello world", " ", NULL);
|
|
|
+ ok1(streq(split[0], "hello"));
|
|
|
+ ok1(streq(split[1], ""));
|
|
|
+ ok1(streq(split[2], "world"));
|
|
|
+ ok1(split[3] == NULL);
|
|
|
+ talloc_free(split);
|
|
|
+
|
|
|
+ split = strsplit(NULL, "hello world", "o ", NULL);
|
|
|
+ ok1(streq(split[0], "hell"));
|
|
|
+ ok1(streq(split[1], ""));
|
|
|
+ ok1(streq(split[2], ""));
|
|
|
+ ok1(streq(split[3], "w"));
|
|
|
+ ok1(streq(split[4], "rld"));
|
|
|
+ ok1(split[5] == NULL);
|
|
|
+
|
|
|
+ ctx = split;
|
|
|
+ split = strsplit(ctx, "hello world", "o ", NULL);
|
|
|
+ ok1(talloc_parent(split) == ctx);
|
|
|
+ talloc_free(ctx);
|
|
|
+
|
|
|
return exit_status();
|
|
|
}
|