int main(int argc, char **argv) { char *me = argv[0]; char *lslash = strrchr(me, '/'); char root[1024]; int port = grpc_pick_unused_port_or_die(); char *args[10]; int status; gpr_subprocess *svr, *cli; /* figure out where we are */ if (lslash) { memcpy(root, me, (size_t)(lslash - me)); root[lslash - me] = 0; } else { strcpy(root, "."); } /* start the server */ gpr_asprintf(&args[0], "%s/fling_server%s", root, gpr_subprocess_binary_extension()); args[1] = "--bind"; gpr_join_host_port(&args[2], "::", port); args[3] = "--no-secure"; svr = gpr_subprocess_create(4, (const char **)args); gpr_free(args[0]); gpr_free(args[2]); /* start the client */ gpr_asprintf(&args[0], "%s/fling_client%s", root, gpr_subprocess_binary_extension()); args[1] = "--target"; gpr_join_host_port(&args[2], "127.0.0.1", port); args[3] = "--scenario=ping-pong-request"; args[4] = "--no-secure"; args[5] = 0; cli = gpr_subprocess_create(6, (const char **)args); gpr_free(args[0]); gpr_free(args[2]); /* wait for completion */ printf("waiting for client\n"); if ((status = gpr_subprocess_join(cli))) { gpr_subprocess_destroy(cli); gpr_subprocess_destroy(svr); return status; } gpr_subprocess_destroy(cli); gpr_subprocess_interrupt(svr); status = gpr_subprocess_join(svr); gpr_subprocess_destroy(svr); return status; }
int main(int argc, char **argv) { char *me = argv[0]; char *lslash = strrchr(me, '/'); char *lunder = strrchr(me, '_'); char *tmp; char root[1024]; char test[64]; int port = grpc_pick_unused_port_or_die(); char *args[10]; int status; size_t i; gpr_subprocess *svr; /* figure out where we are */ if (lslash) { memcpy(root, me, (size_t)(lslash - me)); root[lslash - me] = 0; } else { strcpy(root, "."); } if (argc == 2) { gpr_setenv("GRPC_DEFAULT_SSL_ROOTS_FILE_PATH", argv[1]); } /* figure out our test name */ tmp = lunder - 1; while (*tmp != '_') tmp--; tmp++; memcpy(test, tmp, (size_t)(lunder - tmp)); /* start the server */ gpr_asprintf(&args[0], "%s/bad_ssl_%s_server%s", root, test, gpr_subprocess_binary_extension()); args[1] = "--bind"; gpr_join_host_port(&args[2], "::", port); svr = gpr_subprocess_create(4, (const char **)args); gpr_free(args[0]); for (i = 3; i <= 4; i++) { grpc_init(); run_test(args[2], i); grpc_shutdown(); } gpr_free(args[2]); gpr_subprocess_interrupt(svr); status = gpr_subprocess_join(svr); gpr_subprocess_destroy(svr); return status; }