X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Fjson_escape%2Ftest%2Frun-take.c;fp=ccan%2Fjson_escape%2Ftest%2Frun-take.c;h=f3b62a7945e028f7d7964c92e9f78324f9f9b48b;hb=3ceb24bf19adbe59bf8aeda9cc1426b4ba2244c2;hp=0000000000000000000000000000000000000000;hpb=45f9ce170fe09bca014d874ffaa13b900c8285ba;p=ccan diff --git a/ccan/json_escape/test/run-take.c b/ccan/json_escape/test/run-take.c new file mode 100644 index 00000000..f3b62a79 --- /dev/null +++ b/ccan/json_escape/test/run-take.c @@ -0,0 +1,35 @@ +#include +/* Include the C files directly. */ +#include +#include + +int main(void) +{ + const tal_t *ctx = tal(NULL, char); + struct json_escape *e; + char *p; + + /* This is how many tests you plan to run */ + plan_tests(5); + + /* This should simply be tal_steal */ + p = tal_dup_arr(NULL, char, "Hello", 6, 0); + e = json_escape(ctx, take(p)); + ok1(!strcmp(e->s, "Hello")); + ok1((void *)e == (void *)p); + ok1(tal_parent(e) == ctx); + + /* This can't be tal_steal, but still should be freed. */ + p = tal_dup_arr(NULL, char, + "\\\b\f\n\r\t\"" + "\\\\\\b\\f\\n\\r\\t\\\"", 22, 0); + e = json_escape(ctx, take(p)); + ok1(tal_parent(e) == ctx); + ok1(!strcmp(e->s, + "\\\\\\b\\f\\n\\r\\t\\\"" + "\\\\\\\\\\\\b\\\\f\\\\n\\\\r\\\\t\\\\\\\"")); + tal_free(ctx); + + /* This exits depending on whether all tests passed */ + return exit_status(); +}