[go: up one dir, main page]

File: basic.c

package info (click to toggle)
critnib 1.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, trixie
  • size: 188 kB
  • sloc: ansic: 1,414; sh: 100; makefile: 3
file content (30 lines) | stat: -rw-r--r-- 785 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <critnib.h>
#include <stdio.h>

static int bad=0;

#define PUT(x) if (critnib_insert(c, (x), (void*)(uintptr_t)(x), 0)) \
    {fprintf(stderr, "insert(%zu) failed\n", (uintptr_t)(x));bad=1;}
#define CHECK(op,x,y) {uintptr_t z=(uintptr_t)critnib_##op(c,x); \
    if ((y)!=z) {fprintf(stderr, "FAIL: %s(%zu) should be %zu is %zu\n", #op, (uintptr_t)(x), (uintptr_t)(y), z);bad=1;}}

int main()
{
    critnib *c = critnib_new();
    PUT(1);
    PUT(2);
    PUT(17);
    CHECK(get, 1, 1);
    CHECK(get, 2, 2);
    CHECK(get, 3, 0);
    CHECK(get, 16, 0);
    CHECK(get, 17, 17);
    CHECK(find_le, 1, 1);
    CHECK(find_le, 5, 2);
    CHECK(find_le, -1, 17);
    CHECK(remove, 3, 0);
    CHECK(remove, 17, 17);
    CHECK(find_le, -1, 2);
    critnib_delete(c);
    return bad;
}