summaryrefslogtreecommitdiff
path: root/ccan/tal/str/test/run-strreg.c
diff options
context:
space:
mode:
authorWilliam Casarin <jb55@jb55.com>2018-07-09 22:28:25 -0700
committerWilliam Casarin <jb55@jb55.com>2018-07-09 22:31:48 -0700
commit9593fc545950782ed75f12f53238b07885559b2b (patch)
tree9c7c2f7cbb427c54e9184cb61eedce737a6cbc6f /ccan/tal/str/test/run-strreg.c
parentbd8c223756d2f912526ecef53bae0cc8e0c63442 (diff)
remove ccan for now
Diffstat (limited to 'ccan/tal/str/test/run-strreg.c')
-rw-r--r--ccan/tal/str/test/run-strreg.c124
1 files changed, 0 insertions, 124 deletions
diff --git a/ccan/tal/str/test/run-strreg.c b/ccan/tal/str/test/run-strreg.c
deleted file mode 100644
index 93b8602..0000000
--- a/ccan/tal/str/test/run-strreg.c
+++ /dev/null
@@ -1,124 +0,0 @@
-#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)
-{
- tal_t *i;
-
- for (i = child; i; i = tal_parent(i))
- if (i == parent)
- return true;
-
- return false;
-}
-
-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(41);
- /* Simple matching. */
- ok1(tal_strreg(ctx, "hello world!", "hello") == true);
- ok1(tal_strreg(ctx, "hello world!", "hi") == false);
-
- /* No parentheses means we don't use any extra args. */
- ok1(tal_strreg(ctx, "hello world!", "hello", invalid) == true);
- ok1(tal_strreg(ctx, "hello world!", "hi", invalid) == false);
-
- ok1(tal_strreg(ctx, "hello world!", "[a-z]+", invalid) == true);
- ok1(tal_strreg(ctx, "hello world!", "([a-z]+)", &a, invalid) == true);
- /* Found string */
- ok1(streq(a, "hello"));
- /* Allocated off ctx */
- ok1(find_parent(a, ctx));
- tal_free(a);
-
- ok1(tal_strreg(ctx, "hello world!", "([a-z]*) ([a-z]+)",
- &a, &b, invalid) == true);
- ok1(streq(a, "hello"));
- ok1(streq(b, "world"));
- ok1(find_parent(a, ctx));
- ok1(find_parent(b, ctx));
- tal_free(a);
- tal_free(b);
-
- /* * after parentheses returns last match. */
- ok1(tal_strreg(ctx, "hello world!", "([a-z])* ([a-z]+)",
- &a, &b, invalid) == true);
- ok1(streq(a, "o"));
- ok1(streq(b, "world"));
- tal_free(a);
- tal_free(b);
-
- /* Nested parentheses are ordered by open brace. */
- ok1(tal_strreg(ctx, "hello world!", "(([a-z]*) world)",
- &a, &b, invalid) == true);
- ok1(streq(a, "hello world"));
- ok1(streq(b, "hello"));
- tal_free(a);
- tal_free(b);
-
- /* Nested parentheses are ordered by open brace. */
- ok1(tal_strreg(ctx, "hello world!", "(([a-z]*) world)",
- &a, &b, invalid) == true);
- ok1(streq(a, "hello world"));
- ok1(streq(b, "hello"));
- tal_free(a);
- tal_free(b);
-
- /* NULL means we're not interested. */
- ok1(tal_strreg(ctx, "hello world!", "((hello|goodbye) world)",
- &a, NULL, invalid) == true);
- ok1(streq(a, "hello world"));
- tal_free(a);
-
- /* No leaks! */
- ok1(no_children(ctx));
-
- /* NULL arg with take means always fail. */
- ok1(tal_strreg(ctx, take(NULL), "((hello|goodbye) world)",
- &b, NULL, invalid) == false);
-
- /* Take string. */
- a = tal_strdup(ctx, "hello world!");
- ok1(tal_strreg(ctx, take(a), "([a-z]+)", &b, invalid) == true);
- ok1(streq(b, "hello"));
- ok1(tal_parent(b) == ctx);
- tal_free(b);
- ok1(no_children(ctx));
-
- /* Take regex. */
- a = tal_strdup(ctx, "([a-z]+)");
- ok1(tal_strreg(ctx, "hello world!", take(a), &b, invalid) == true);
- ok1(streq(b, "hello"));
- ok1(tal_parent(b) == ctx);
- tal_free(b);
- ok1(no_children(ctx));
-
- /* Take both. */
- a = tal_strdup(ctx, "([a-z]+)");
- ok1(tal_strreg(ctx, take(tal_strdup(ctx, "hello world!")),
- take(a), &b, invalid) == true);
- ok1(streq(b, "hello"));
- ok1(tal_parent(b) == ctx);
- tal_free(b);
- 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(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();
-}