Annotation of libelwix/example/test_rbuf.c, revision 1.2.4.1

1.2       misho       1: #include <stdio.h>
                      2: #include <stdlib.h>
                      3: #include <string.h>
                      4: #include <sys/types.h>
                      5: #include <elwix.h>
                      6: 
                      7: 
                      8: int
                      9: main(int argc, char **argv)
                     10: {
                     11:        ringbuf_t rbuf;
1.2.4.1 ! misho      12:        struct iovec *iov;
1.2       misho      13:        int res, i;
                     14: 
                     15:        argc--;
                     16:        argv++;
                     17: 
                     18:        if (rbuf_init(&rbuf, argc ? strtol(argv[0], NULL, 10) : 0)) {
                     19:                printf("Error:: rbuf_init(%d) #%d - %s\n", argc, elwix_GetErrno(), elwix_GetError());
                     20:        }
                     21: 
                     22:        argc--;
                     23:        argv++;
                     24: 
                     25:        printf("Result must be 1==%d empty buffer\n", rbuf_dequeue(&rbuf, NULL));
                     26:        printf("Buffer is empty? %d\n", rbuf_isempty(&rbuf));
                     27:        printf("Buffer is full? %d\n", rbuf_isfull(&rbuf));
                     28:        printf("Result enqueue %d\n", rbuf_enqueue(&rbuf, argv[0], argv[0] ? strlen(argv[0]) : 0));
                     29:        printf("Buffer is empty? %d\n", rbuf_isempty(&rbuf));
                     30:        printf("Buffer is full? %d\n", rbuf_isfull(&rbuf));
                     31:        printf("Result dequeue %d\n", (res = rbuf_dequeue(&rbuf, &iov)));
                     32:        if (!res)
1.2.4.1 ! misho      33:                printf("iov.iov_base=%p==%p iov.iov_size=%zu==%u\n", iov->iov_base, argv[0], iov->iov_len, (u_int) (argv[0] ? strlen(argv[0]) : 0));
1.2       misho      34:        printf("Buffer is empty? %d\n", rbuf_isempty(&rbuf));
                     35:        printf("Buffer is full? %d\n", rbuf_isfull(&rbuf));
                     36: 
                     37:        for (i = 0; i < argc; i++)
                     38:                printf("Result enqueue arg#%d %d\n", i, rbuf_enqueue(&rbuf, argv[i], argv[i] ? strlen(argv[i]) : 0));
                     39:        printf("Buffer is empty? %d\n", rbuf_isempty(&rbuf));
                     40:        printf("Buffer is full? %d\n", rbuf_isfull(&rbuf));
                     41:        for (i = 0; i < argc && !(res = rbuf_dequeue(&rbuf, &iov)); i++)
1.2.4.1 ! misho      42:                printf("Result dequeue arg#%d %d = (%zu)/%s\n", i, res, iov->iov_len, (char*) iov->iov_base);
1.2       misho      43:        printf("Buffer must be empty? 1==%d\n", rbuf_isempty(&rbuf));
                     44:        printf("Buffer is full? %d\n", rbuf_isfull(&rbuf));
                     45: 
                     46:        for (i = 0; i < argc; i++)
                     47:                printf("Result enqueue arg#%d %d\n", i, rbuf_enqueue(&rbuf, argv[i], argv[i] ? strlen(argv[i]) : 0));
                     48:        printf("Buffer is empty? %d\n", rbuf_isempty(&rbuf));
                     49:        printf("Buffer is full? %d\n", rbuf_isfull(&rbuf));
                     50:        printf("Purge buffer test\n");
                     51:        rbuf_purge(&rbuf);
                     52:        printf("Buffer must be empty? 1==%d\n", rbuf_isempty(&rbuf));
                     53:        printf("Buffer is full? %d\n", rbuf_isfull(&rbuf));
                     54: 
                     55:        rbuf_free(&rbuf);
                     56:        printf("Result enqueue after free! -1==%d\n", rbuf_enqueue(&rbuf, argv[0], argv[0] ? strlen(argv[0]) : 0));
                     57:        printf("Result dequeue after free! -1==%d\n", rbuf_dequeue(&rbuf, &iov));
                     58:        return 0;
                     59: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>