diff --git a/utils/ort/src/funTest/kotlin/storage/HttpFileStorageFunTest.kt b/utils/ort/src/funTest/kotlin/storage/HttpFileStorageFunTest.kt index 7d0033b69a07a..e8022d6bcee94 100644 --- a/utils/ort/src/funTest/kotlin/storage/HttpFileStorageFunTest.kt +++ b/utils/ort/src/funTest/kotlin/storage/HttpFileStorageFunTest.kt @@ -34,24 +34,19 @@ import java.io.IOException import java.net.HttpURLConnection import java.net.InetAddress import java.net.InetSocketAddress - -import kotlin.random.Random - -import org.apache.logging.log4j.kotlin.logger +import java.util.concurrent.ConcurrentHashMap class HttpFileStorageFunTest : WordSpec() { private val loopback = InetAddress.getLoopbackAddress() - private val port = Random.nextInt(1024, 49152) // See https://en.wikipedia.org/wiki/Registered_port. - .also { logger.debug { "Using port $it for HTTP server." } } private val handler = object : HttpHandler { - val requests = mutableMapOf() + val requests = ConcurrentHashMap() override fun handle(exchange: HttpExchange) { when (exchange.requestMethod) { "PUT" -> { - exchange.sendResponseHeaders(HttpURLConnection.HTTP_CREATED, 0) requests[exchange.requestURI.toString()] = exchange.requestBody.reader().use { it.readText() } + exchange.sendResponseHeaders(HttpURLConnection.HTTP_CREATED, -1) } "GET" -> { @@ -60,7 +55,7 @@ class HttpFileStorageFunTest : WordSpec() { exchange.sendResponseHeaders(HttpURLConnection.HTTP_OK, 0) exchange.responseBody.writer().use { it.write(data) } } else { - exchange.sendResponseHeaders(HttpURLConnection.HTTP_NOT_FOUND, 0) + exchange.sendResponseHeaders(HttpURLConnection.HTTP_NOT_FOUND, -1) } } } @@ -69,12 +64,12 @@ class HttpFileStorageFunTest : WordSpec() { } // Start the local HTTP server with the system default value for queued incoming connections. - private val server = HttpServer.create(InetSocketAddress(loopback, port), 0).apply { + private val server = HttpServer.create(InetSocketAddress(loopback, 0), 0).apply { createContext("/", handler) start() } - private val storage = HttpFileStorage("http://${loopback.hostAddress}:$port") + private val storage = HttpFileStorage("http://${loopback.hostAddress}:${server.address.port}") override suspend fun afterEach(testCase: TestCase, result: TestResult) { handler.requests.clear() diff --git a/utils/ort/src/funTest/kotlin/storage/S3FileStorageFunTest.kt b/utils/ort/src/funTest/kotlin/storage/S3FileStorageFunTest.kt index 13ae534215422..9f493a46b69f7 100644 --- a/utils/ort/src/funTest/kotlin/storage/S3FileStorageFunTest.kt +++ b/utils/ort/src/funTest/kotlin/storage/S3FileStorageFunTest.kt @@ -34,21 +34,16 @@ import io.kotest.matchers.shouldBe import java.net.HttpURLConnection import java.net.InetAddress import java.net.InetSocketAddress - -import kotlin.random.Random - -import org.apache.logging.log4j.kotlin.logger +import java.util.concurrent.ConcurrentHashMap class S3FileStorageFunTest : WordSpec() { private val loopback = InetAddress.getLoopbackAddress() private val protocol = "http" - private val port = Random.nextInt(1024, 49152) // See https://en.wikipedia.org/wiki/Registered_port. - .also { logger.debug { "Using port $it for S3 Mock server." } } private val bucket = "ort-scan-results" private val handler = object : HttpHandler { - val requests = mutableMapOf() + val requests = ConcurrentHashMap() override fun handle(exchange: HttpExchange) { when (exchange.requestMethod) { @@ -65,7 +60,7 @@ class S3FileStorageFunTest : WordSpec() { "PUT" -> { val key = exchange.requestURI.toString().removePrefix("/$bucket/") requests[key] = exchange.requestBody.reader().use { it.readText() }.split('\n')[1].trimEnd() - exchange.sendResponseHeaders(HttpURLConnection.HTTP_OK, 0) + exchange.sendResponseHeaders(HttpURLConnection.HTTP_OK, -1) } "GET" -> { @@ -95,7 +90,7 @@ class S3FileStorageFunTest : WordSpec() { } // Start a local HTTP server to mock S3 with the system default value for queued incoming connections. - private val server = HttpServer.create(InetSocketAddress(loopback, port), 0).apply { + private val server = HttpServer.create(InetSocketAddress(loopback, 0), 0).apply { createContext("/", handler) start() } @@ -105,7 +100,7 @@ class S3FileStorageFunTest : WordSpec() { awsRegion = "us-east-1", bucketName = bucket, compression = false, - customEndpoint = "$protocol://${loopback.hostAddress}:$port", + customEndpoint = "$protocol://${loopback.hostAddress}:${server.address.port}", secretAccessKey = "secret" )