diff --git a/tests/SimpleDiskAndNetworkTest.cpp b/tests/SimpleDiskAndNetworkTest.cpp index f9caa677719e848b6c71099e557f6418ff145452..cf5ec5036c7a698769eac274d98abc5c2cf396e1 100644 --- a/tests/SimpleDiskAndNetworkTest.cpp +++ b/tests/SimpleDiskAndNetworkTest.cpp @@ -23,33 +23,7 @@ #define PORT 4243 #define MAX 1024 -static void server_func() { - int sockfd; - struct sockaddr_in servaddr; - - // socket create and varification - sockfd = socket(AF_INET, SOCK_STREAM, 0); - if (sockfd == -1) { - DIE_MSG_ERRNO("socket creation failed"); - } - memset(&servaddr, 0, sizeof(servaddr)); - - // assign IP, PORT - servaddr.sin_family = AF_INET; - servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); - servaddr.sin_port = htons(PORT); - - int reuseaddr = 1; - if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)) == -1) { - DIE_MSG_ERRNO("setsockopt failed"); - } - if (bind(sockfd, (sockaddr*)&servaddr, sizeof(servaddr)) == -1) { - DIE_MSG_ERRNO("bind failed"); - } - if (listen(sockfd, 1) != 0) { - DIE_MSG_ERRNO("listen failed"); - } - +static void server_func(int sockfd) { struct sockaddr_in clientaddr; socklen_t clientaddr_len = sizeof(clientaddr); auto client_fd = @@ -164,8 +138,34 @@ static void server_func() { } void emperTest() { + int sockfd; + struct sockaddr_in servaddr; + + // socket creation and verification + sockfd = socket(AF_INET, SOCK_STREAM, 0); + if (sockfd == -1) { + DIE_MSG_ERRNO("socket creation failed"); + } + memset(&servaddr, 0, sizeof(servaddr)); + + // assign IP, PORT + servaddr.sin_family = AF_INET; + servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); + servaddr.sin_port = htons(PORT); + + int reuseaddr = 1; + if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr)) == -1) { + DIE_MSG_ERRNO("setsockopt failed"); + } + if (bind(sockfd, (sockaddr*)&servaddr, sizeof(servaddr)) == -1) { + DIE_MSG_ERRNO("bind failed"); + } + if (listen(sockfd, 1) != 0) { + DIE_MSG_ERRNO("listen failed"); + } + CPS cps; - spawn(server_func, cps); + spawn([=] { server_func(sockfd); }, cps); spawn( [] {