Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 6 additions & 11 deletions utils/ort/src/funTest/kotlin/storage/HttpFileStorageFunTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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<String, String>()
val requests = ConcurrentHashMap<String, String>()

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" -> {
Expand All @@ -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)
}
}
}
Expand All @@ -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()
Expand Down
15 changes: 5 additions & 10 deletions utils/ort/src/funTest/kotlin/storage/S3FileStorageFunTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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<String, String>()
val requests = ConcurrentHashMap<String, String>()

override fun handle(exchange: HttpExchange) {
when (exchange.requestMethod) {
Expand All @@ -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" -> {
Expand Down Expand Up @@ -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()
}
Expand All @@ -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"
)

Expand Down
Loading