int main(int argc, char **argv) { int num; char *name = argv[0]; if (argc < 3) usage(name); if (!strcmp(argv[1], "start")) { if (argc < 4) usage(name); num = atoi(argv[3]); if (num <= 0) usage(name); btrace_start(argv[2], num); } else if (!strcmp(argv[1], "stop")) { if (argc < 4) usage(name); btrace_stop(argv[2], argv[3]); } else if (!strcmp(argv[1], "reset")) { btrace_reset(argv[2]); } else if (!strcmp(argv[1], "dump")) { btrace_dump(argv[2]); } else usage(name); return EXIT_SUCCESS; }
int main() { int rc; ssize_t sz; char buf[200]; const char key[] = "01234567890123456789012345678901"; int h1[2]; rc = unix_pair(h1); assert(rc == 0); int h2_0 = btrace_start(h1[0]); assert(h2_0 >= 0); int h2_1 = btrace_start(h1[1]); assert(h2_1 >= 0); int h3_0 = bthrottler_start(h2_0, 1000, 10, 1000, 10); assert(h3_0 >= 0); int h3_1 = bthrottler_start(h2_1, 1000, 10, 1000, 10); assert(h3_1 >= 0); int h4_0 = nagle_start(h3_0, 2000, 100); assert(h4_0 >= 0); int h4_1 = nagle_start(h3_1, 2000, 100); assert(h4_0 >= 0); int h5_0 = pfx_start(h4_0); assert(h5_0 >= 0); int h5_1 = pfx_start(h4_1); assert(h5_1 >= 0); int h6_0 = keepalive_start(h5_0, 50, 150); assert(h6_0 >= 0); int h6_1 = keepalive_start(h5_1, 50, 150); assert(h6_0 >= 0); int h7_0 = nacl_start(h6_0, key, 32, -1); assert(h7_0 >= 0); int h7_1 = nacl_start(h6_1, key, 32, -1); assert(h7_1 >= 0); int h8_0 = lz4_start(h7_0); assert(h8_0 >= 0); int h8_1 = lz4_start(h7_1); assert(h8_1 >= 0); rc = msend(h8_0, "ABC", 3, -1); assert(rc == 0); rc = msend(h8_0, "DEF", 3, -1); assert(rc == 0); sz = mrecv(h8_1, buf, 3, -1); assert(sz == 3); assert(buf[0] == 'A' && buf[1] == 'B' && buf[2] == 'C'); sz = mrecv(h8_1, buf, 3, -1); assert(sz == 3); assert(buf[0] == 'D' && buf[1] == 'E' && buf[2] == 'F'); rc = msend(h8_1, "GHI", 3, -1); assert(rc == 0); /* Allow some keepalives to be sent. */ rc = msleep(500); assert(rc == 0); sz = mrecv(h8_0, buf, 3, -1); assert(sz == 3); assert(buf[0] == 'G' && buf[1] == 'H' && buf[2] == 'I'); rc = hclose(h8_1); assert(rc == 0); rc = hclose(h8_0); assert(rc == 0); return 0; }