--- libelwix/example/test_lrbuf.c 2026/02/10 15:54:16 1.1.2.1 +++ libelwix/example/test_lrbuf.c 2026/02/10 17:24:39 1.1.2.3 @@ -1,4 +1,5 @@ #include +#include #include @@ -6,10 +7,77 @@ int main(int argc, char **argv) { lrbuf_t lrb = { 0 }; - int res; + int res, len; + char line[STRSIZ]; res = lrb_init(&lrb, 32); printf("lrb_init(32) -> #%d\n", res); + + lrb_queued(&lrb, res); + printf("lrb_queued -> #%d\n", res); + lrb_unused(&lrb, res); + printf("lrb_unused -> #%d\n", res); + + while (fgets(line, sizeof line - 1, stdin)) { + if (!strcmp(line, ".\n")) + break; + printf("isempty() -> #%d\n", lrb_isempty(&lrb)); + printf("isfull() -> #%d\n", lrb_isfull(&lrb)); + + lrb_queued(&lrb, res); + printf("e1_lrb_queued -> #%d\n", res); + lrb_unused(&lrb, res); + printf("e1_lrb_unused -> #%d\n", res); + res = lrb_enqueue(&lrb, line, strlen(line), argc > 1); + printf("lrb_enqueue(%d, %d) -> #%d\n", strlen(line), argc > 1, res); + lrb_queued(&lrb, res); + printf("e2_lrb_queued -> #%d\n", res); + lrb_unused(&lrb, res); + printf("e2_lrb_unused -> #%d\n", res); + } + + lrb_queued(&lrb, res); + printf("lrb_queued -> #%d\n", res); + lrb_unused(&lrb, res); + printf("lrb_unused -> #%d\n", res); + + while (fgets(line, sizeof line - 1, stdin)) { + if (!strcmp(line, ".\n")) + break; + printf("isempty() -> #%d\n", lrb_isempty(&lrb)); + printf("isfull() -> #%d\n", lrb_isfull(&lrb)); + + lrb_queued(&lrb, res); + printf("d1_lrb_queued -> #%d\n", res); + lrb_unused(&lrb, res); + printf("d1_lrb_unused -> #%d\n", res); + len = strtol(line, NULL, 10); + memset(line, 0, sizeof line); + res = lrb_dequeue(&lrb, line, MIN(len, sizeof line)); + printf("lrb_dequeue(%d) -> #%d\n", len, res); + printf("LINE='%s'\n", line); + lrb_queued(&lrb, res); + printf("d2_lrb_queued -> #%d\n", res); + lrb_unused(&lrb, res); + printf("d2_lrb_unused -> #%d\n", res); + } + + lrb_queued(&lrb, res); + printf("lrb_queued -> #%d\n", res); + lrb_unused(&lrb, res); + printf("lrb_unused -> #%d\n", res); + + res = lrb_dequeue(&lrb, NULL, 2); + printf("lrb_dequeue(2) -> #%d\n", res); + + lrb_queued(&lrb, res); + printf("lrb_queued -> #%d\n", res); + lrb_unused(&lrb, res); + printf("lrb_unused -> #%d\n", res); + + lrb_purge(&lrb); + printf("isempty() -> #%d\n", lrb_isempty(&lrb)); + printf("isfull() -> #%d\n", lrb_isfull(&lrb)); lrb_free(&lrb); printf("Done.\n");