diff options
| author | Louis Burda <quent.burda@gmail.com> | 2024-10-02 03:59:21 +0200 |
|---|---|---|
| committer | Louis Burda <quent.burda@gmail.com> | 2024-10-02 03:59:21 +0200 |
| commit | 36c8d24c07ef3c6658f397fd156396f83b35ac27 (patch) | |
| tree | 1b3293264dca677a8d8e1ca44061aa7af191f839 /lib/libhmap/src/test.c | |
| parent | eff49100e4fca394a23973abd5001a4fde15d6e8 (diff) | |
| download | tabular-master.tar.gz tabular-master.zip | |
Diffstat (limited to 'lib/libhmap/src/test.c')
| -rw-r--r-- | lib/libhmap/src/test.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/libhmap/src/test.c b/lib/libhmap/src/test.c new file mode 100644 index 0000000..b248702 --- /dev/null +++ b/lib/libhmap/src/test.c @@ -0,0 +1,42 @@ +#include "hmap.h" + +#include <err.h> +#include <stdio.h> +#include <string.h> +#include <stdlib.h> + +#define LIBHMAP_ERR(rc) errx(1, "libhmap: %s", \ + rc < 0 ? strerror(-rc) : hmap_err[rc]) + +static const char *hmap_err[] = { + HMAP_STRERR_INIT +}; + +int +main(int argc, const char **argv) +{ + struct hmap hmap; + struct hmap_iter iter; + char *arg; + int i, rc; + + rc = hmap_init(&hmap, 10, hmap_str_hash, + hmap_str_keycmp, &stdlib_heap_allocator); + if (rc) LIBHMAP_ERR(rc); + + for (i = 1; i < argc; i++) { + arg = strdup(argv[i]); + rc = hmap_add(&hmap, (struct hmap_key) {.p = arg}, + (struct hmap_val) {.i = i}); + if (rc) LIBHMAP_ERR(rc); + } + + for (HMAP_ITER(&hmap, iter)) { + printf("%s: %i\n", (char *)iter.link->key.p, + iter.link->value.i); + } + + for (HMAP_ITER(&hmap, iter)) + free(iter.link->key._p); + hmap_deinit(&hmap); +} |
