From d038cf2a996febda0f6e52d29441de287f8dc3b2 Mon Sep 17 00:00:00 2001 From: Lokesh Muthuraj Date: Mon, 2 Mar 2026 07:05:30 +0000 Subject: [PATCH 1/4] Removing sync_listener variable and adding 1000ms timeout for epoll_wait to wake up --- src/endpointsync.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/endpointsync.c b/src/endpointsync.c index 9e6f9b9..2fe7824 100644 --- a/src/endpointsync.c +++ b/src/endpointsync.c @@ -281,7 +281,6 @@ void *create_receiver_sync_socket(void *ptr) struct ntttcp_test *test = tep->test; struct ntttcp_stream_server *ss; - int sync_listener = 0; int answer_to_send = 0; /* the int to be sent */ int converted = 0; int request_received = 0; /* the int to be received */ @@ -307,7 +306,7 @@ void *create_receiver_sync_socket(void *ptr) ss->server_port = test->server_base_port - 1; ss->protocol = TCP; /* no matter what test will be executed, the synch thread always uses TCP */ ss->listener = ntttcp_server_listen(ss); - if (sync_listener == -1) { + if (ss->listener == -1) { PRINT_ERR("receiver: failed to listen on sync port"); return NULL; } @@ -360,7 +359,7 @@ void *create_receiver_sync_socket(void *ptr) break; /* we are notified by epoll_wait() */ - n_fds = epoll_wait(efd, events, ss->max_fd + 1, -1); + n_fds = epoll_wait(efd, events, ss->max_fd + 1, 1000); if (n_fds < 0 && errno != EINTR) { ASPRINTF(&log, "error happened when epoll_wait(), errno=%d, n_fds=%d", errno, n_fds); PRINT_ERR_FREE(log); From 670b6694e4852352905905622638405f8b9201cf Mon Sep 17 00:00:00 2001 From: Lokesh Muthuraj Date: Mon, 2 Mar 2026 07:15:42 +0000 Subject: [PATCH 2/4] Fixing typos; Fixing warnings in tests; Updating ports for test_mapping_option testcase in functional_test.py --- test/functional_test.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test/functional_test.py b/test/functional_test.py index 8fda30c..9f88e93 100644 --- a/test/functional_test.py +++ b/test/functional_test.py @@ -57,11 +57,11 @@ def combine_command( sender_cmd = f"{sender_cmd} {sender_option}" return receiver_cmd, sender_cmd - def setup(self): + def setup_method(self): time.sleep(1) print("\n") - def teardown(self): + def teardown_method(self): subprocess.run("killall ntttcp", shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) def test_daemon(self) -> None: @@ -97,7 +97,7 @@ def test_multi_port_threads(self) -> None: throughput = parse_result.get_throughput_Gbps() assert throughput >= self.expected_throughput - def test_running_with_warmup_cooldowm_time(self) -> None: + def test_running_with_warmup_cooldown_time(self) -> None: set_warmup_time = 3 set_cooldown_time = 4 common_option = f"-W {set_warmup_time} -C {set_cooldown_time}" @@ -179,13 +179,13 @@ def test_starting_port_number(self) -> None: assert throughput >= self.expected_throughput def test_mapping_option(self) -> None: - ports = 200 - defualt_threads = 4 - receiver_cmd = f"ulimit -n 10240 && ./src/ntttcp -D -r -m {ports},*,{self.loopback_interface} -D -t 5" + ports = 50 + default_threads = 4 + receiver_cmd = f"ulimit -n 10240 && ./src/ntttcp -D -r -m {ports},*,{self.loopback_interface} -t 5" sender_cmd = f"ulimit -n 10240 && ./src/ntttcp -s{self.loopback_interface} -P {ports} -t 5" result = self.run_test(receiver_cmd, sender_cmd) parse_result = ntttcp_output.NtttcpOutput(result.receiver_stdout, result.sender_stdout) - assert parse_result.get_ports_numbers() == ports * defualt_threads + assert parse_result.get_ports_numbers() == ports * default_threads throughput = parse_result.get_throughput_Gbps() assert throughput >= self.expected_throughput From 3a70b880433d5359ec63b0eb3a170e8eda2a52a4 Mon Sep 17 00:00:00 2001 From: Lokesh Muthuraj Date: Mon, 2 Mar 2026 08:26:55 +0000 Subject: [PATCH 3/4] Trigger CI rebuild From 6fcbaafdbc2882a79b04f552f0e12aa7b2b73081 Mon Sep 17 00:00:00 2001 From: Lokesh Muthuraj Date: Sun, 29 Mar 2026 11:09:25 +0000 Subject: [PATCH 4/4] Addressing review comments --- src/endpointsync.c | 3 ++- test/functional_test.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/endpointsync.c b/src/endpointsync.c index 2fe7824..9e21313 100644 --- a/src/endpointsync.c +++ b/src/endpointsync.c @@ -308,6 +308,7 @@ void *create_receiver_sync_socket(void *ptr) ss->listener = ntttcp_server_listen(ss); if (ss->listener == -1) { PRINT_ERR("receiver: failed to listen on sync port"); + free(ss); return NULL; } @@ -359,7 +360,7 @@ void *create_receiver_sync_socket(void *ptr) break; /* we are notified by epoll_wait() */ - n_fds = epoll_wait(efd, events, ss->max_fd + 1, 1000); + n_fds = epoll_wait(efd, events, MAX_EPOLL_EVENTS, 1000); if (n_fds < 0 && errno != EINTR) { ASPRINTF(&log, "error happened when epoll_wait(), errno=%d, n_fds=%d", errno, n_fds); PRINT_ERR_FREE(log); diff --git a/test/functional_test.py b/test/functional_test.py index 9f88e93..30639c1 100644 --- a/test/functional_test.py +++ b/test/functional_test.py @@ -57,11 +57,11 @@ def combine_command( sender_cmd = f"{sender_cmd} {sender_option}" return receiver_cmd, sender_cmd - def setup_method(self): + def setup_method(self, method): time.sleep(1) print("\n") - def teardown_method(self): + def teardown_method(self, method): subprocess.run("killall ntttcp", shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) def test_daemon(self) -> None: