#include <ccan/tal/str/str.h>
#include <ccan/tal/str/str.c>
#include <ccan/tap/tap.h>
+#include "helper.h"
static bool find_parent(tal_t *child, tal_t *parent)
{
return false;
}
-int main(int argc, char *argv[])
+int main(void)
{
void *ctx = tal_strdup(NULL, "toplevel");
char *a, *b;
/* If it accesses this, it will crash. */
char **invalid = (char **)1L;
- plan_tests(40);
+ plan_tests(41);
/* Simple matching. */
ok1(tal_strreg(ctx, "hello world!", "hello") == true);
ok1(tal_strreg(ctx, "hello world!", "hi") == false);
tal_free(a);
/* No leaks! */
- ok1(!tal_first(ctx));
+ ok1(no_children(ctx));
/* NULL arg with take means always fail. */
ok1(tal_strreg(ctx, take(NULL), "((hello|goodbye) world)",
ok1(streq(b, "hello"));
ok1(tal_parent(b) == ctx);
tal_free(b);
- ok1(tal_first(ctx) == NULL);
+ ok1(no_children(ctx));
/* Take regex. */
a = tal_strdup(ctx, "([a-z]+)");
ok1(streq(b, "hello"));
ok1(tal_parent(b) == ctx);
tal_free(b);
- ok1(tal_first(ctx) == NULL);
+ ok1(no_children(ctx));
/* Take both. */
a = tal_strdup(ctx, "([a-z]+)");
ok1(streq(b, "hello"));
ok1(tal_parent(b) == ctx);
tal_free(b);
- ok1(tal_first(ctx) == NULL);
+ ok1(no_children(ctx));
/* ... even if we fail to match. */
a = tal_strdup(ctx, "([a-z]+)");
ok1(tal_strreg(ctx, take(tal_strdup(ctx, "HELLO WORLD!")),
take(a), &b, invalid) == false);
- ok1(tal_first(ctx) == NULL);
+ ok1(no_children(ctx));
tal_free(ctx);
+ /* Don't get fooled by \(! */
+ ok1(tal_strreg(ctx, "(hello) (world)!", "\\([a-z]*\\) \\([a-z]+\\)",
+ invalid) == true);
+
return exit_status();
}