diff options
| author | William Casarin <jb55@jb55.com> | 2018-07-09 22:28:25 -0700 |
|---|---|---|
| committer | William Casarin <jb55@jb55.com> | 2018-07-09 22:31:48 -0700 |
| commit | 9593fc545950782ed75f12f53238b07885559b2b (patch) | |
| tree | 9c7c2f7cbb427c54e9184cb61eedce737a6cbc6f /ccan/take/test/run.c | |
| parent | bd8c223756d2f912526ecef53bae0cc8e0c63442 (diff) | |
remove ccan for now
Diffstat (limited to 'ccan/take/test/run.c')
| -rw-r--r-- | ccan/take/test/run.c | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/ccan/take/test/run.c b/ccan/take/test/run.c deleted file mode 100644 index ba170fb..0000000 --- a/ccan/take/test/run.c +++ /dev/null @@ -1,102 +0,0 @@ -#include <stdlib.h> -#include <stdbool.h> - -static bool fail_realloc; -static void *my_realloc(void *p, size_t len) -{ - if (fail_realloc) - return NULL; - return realloc(p, len); -} -#define realloc my_realloc - -#include <ccan/take/take.h> -#include <ccan/take/take.c> -#include <ccan/tap/tap.h> - -static int my_allocfail_called; -static void my_allocfail(const void *p UNNEEDED) -{ - my_allocfail_called++; -} - -static void recurse(const char *takeme, int count) -{ - if (count < 1000) - recurse(take(strdup(takeme)), count+1); - if (taken(takeme)) - free((char *)takeme); -} - -int main(void) -{ - const char *p = "hi"; - - plan_tests(43); - - /* We can take NULL. */ - ok1(take(NULL) == NULL); - ok1(is_taken(NULL)); - ok1(taken_any()); - ok1(taken(NULL)); /* Undoes take() */ - ok1(!is_taken(NULL)); - ok1(!taken(NULL)); - - /* We can take NULL twice! */ - ok1(take(NULL) == NULL); - ok1(take(NULL) == NULL); - ok1(is_taken(NULL)); - ok1(taken_any()); - ok1(taken(NULL)); /* Undoes take() */ - ok1(is_taken(NULL)); - ok1(taken_any()); - ok1(taken(NULL)); /* Undoes take() */ - ok1(!is_taken(NULL)); - ok1(!taken(NULL)); - ok1(!taken_any()); - - /* We can take a real pointer. */ - ok1(take(p) == p); - ok1(is_taken(p)); - ok1(taken_any()); - ok1(taken(p)); /* Undoes take() */ - ok1(!is_taken(p)); - ok1(!taken(p)); - ok1(!taken_any()); - - /* Force a failure. */ - ok1(!my_allocfail_called); - ok1(take(p) == p); - ok1(take(p+1) == p+1); - - fail_realloc = true; - /* Without a handler, must pass through and leak. */ - ok1(take(p+2) == p+2); - ok1(!taken(p+2)); - - /* Now, with a handler. */ - take_allocfail(my_allocfail); - ok1(take(p+2) == NULL); - - ok1(my_allocfail_called == 1); - ok1(taken_any()); - ok1(taken(p)); - ok1(taken(p+1)); - ok1(is_taken(NULL)); - ok1(taken(NULL)); - ok1(!taken(NULL)); - ok1(!taken_any()); - - /* Test some deep nesting. */ - fail_realloc = false; - recurse("hello", 0); - ok1(max_taken == 1000); - ok1(!taken_any()); - - take_cleanup(); - ok1(num_taken == 0); - ok1(max_taken == 0); - ok1(takenarr == NULL); - - return exit_status(); -} |
