diff --git a/test/test_file_transmission.cpp b/test/test_file_transmission.cpp index 790555eb7b..9481be3e46 100644 --- a/test/test_file_transmission.cpp +++ b/test/test_file_transmission.cpp @@ -45,6 +45,25 @@ TEST(Transmission, FileUpload) sa_lsn.sin_addr.s_addr = INADDR_ANY; sa_lsn.sin_port = htons(5555); + // Find unused a port not used by any other service. + // Otherwise srt_connect may actually connect. + int bind_res = -1; + for (int port = 5000; port <= 5555; ++port) + { + sa_lsn.sin_port = htons(port); + bind_res = srt_bind(sock_lsn, (sockaddr*)&sa_lsn, sizeof sa_lsn); + if (bind_res == 0) + { + std::cout << "Running test on port " << port << "\n"; + break; + } + + ASSERT_TRUE(bind_res == SRT_EINVOP) << "Bind failed not due to an occupied port. Result " << bind_res; + + } + + ASSERT_GE(bind_res, 0); + srt_bind(sock_lsn, (sockaddr*)&sa_lsn, sizeof sa_lsn); int optval = 0; @@ -110,7 +129,7 @@ TEST(Transmission, FileUpload) sockaddr_in sa = sockaddr_in(); sa.sin_family = AF_INET; - sa.sin_port = htons(5555); + sa.sin_port = sa_lsn.sin_port; ASSERT_EQ(inet_pton(AF_INET, "127.0.0.1", &sa.sin_addr), 1); srt_connect(sock_clr, (sockaddr*)&sa, sizeof(sa));