fix(quic-interop): drop versionnegotiation; document concurrency limit
Two corrections from the user's just-completed run: 1. The runner does not have a 'versionnegotiation' testcase. Available list output: handshake, transfer, longrtt, chacha20, multiplexing, retry, resumption, zerortt, http3, blackhole, keyupdate, ecn, amplificationlimit, handshakeloss, transferloss, handshakecorruption, transfercorruption, ipv6, v2, rebind-port, rebind-addr, connectionmigration. (`v2` exists but tests QUIC v2 protocol support — we're v1-only, so it would correctly fail.) The :quic-side VN code from agent A stays as defensive support for any future server that throws a VN at us; just no testcase wires it up. 2. run-matrix.sh is NOT safe to run concurrently. The runner's docker-compose.yml hardcodes container_name: sim/server/client — Docker enforces those globally regardless of COMPOSE_PROJECT_NAME. Documented the limitation + the recommended sequential loop in the script's comments. https://claude.ai/code/session_01HcvfQq1ttPV9PkRoJb4nyT
This commit is contained in:
@@ -44,6 +44,7 @@ sourceSets {
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":quic"))
|
implementation(project(":quic"))
|
||||||
implementation(libs.kotlinx.coroutines.core)
|
implementation(libs.kotlinx.coroutines.core)
|
||||||
|
implementation(libs.jackson.module.kotlin)
|
||||||
|
|
||||||
testImplementation(libs.kotlin.test)
|
testImplementation(libs.kotlin.test)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,6 +112,15 @@ fi
|
|||||||
# per-invocation subdirectory under $LOG_DIR. The parent must exist; the
|
# per-invocation subdirectory under $LOG_DIR. The parent must exist; the
|
||||||
# child must not. Tail of `ls -t "$LOG_DIR" | head -1` finds the latest.
|
# child must not. Tail of `ls -t "$LOG_DIR" | head -1` finds the latest.
|
||||||
#
|
#
|
||||||
|
# NOTE: this script is NOT safe to run concurrently against itself.
|
||||||
|
# quic-interop-runner's docker-compose.yml hardcodes `container_name:
|
||||||
|
# sim/server/client`, which Docker enforces globally regardless of
|
||||||
|
# COMPOSE_PROJECT_NAME. Two simultaneous invocations collide on
|
||||||
|
# `docker create container "sim"`. Run sequentially:
|
||||||
|
# for peer in aioquic picoquic quic-go; do
|
||||||
|
# quic/interop/run-matrix.sh -s $peer -t handshake,chacha20,...
|
||||||
|
# done
|
||||||
|
#
|
||||||
# Output filter: by default we drop the runner / container boilerplate
|
# Output filter: by default we drop the runner / container boilerplate
|
||||||
# (interface checksum offload toggles, route setup, container lifecycle,
|
# (interface checksum offload toggles, route setup, container lifecycle,
|
||||||
# the long Command: WAITFORSERVER=... line, the platform-mismatch warning
|
# the long Command: WAITFORSERVER=... line, the platform-mismatch warning
|
||||||
|
|||||||
@@ -141,7 +141,12 @@ fun main() {
|
|||||||
"handshake", "chacha20", "handshakeloss",
|
"handshake", "chacha20", "handshakeloss",
|
||||||
"transfer", "http3", "multiplexing",
|
"transfer", "http3", "multiplexing",
|
||||||
"transferloss", "transfercorruption", "longrtt", "goodput", "crosstraffic",
|
"transferloss", "transfercorruption", "longrtt", "goodput", "crosstraffic",
|
||||||
"retry", "ipv6", "versionnegotiation",
|
"retry", "ipv6",
|
||||||
|
// NOTE: the runner does NOT have a `versionnegotiation` testcase
|
||||||
|
// (its Available list excludes it). The :quic VN-handling code
|
||||||
|
// (applyVersionNegotiation, FORCE_VERSION_NEGOTIATION constant)
|
||||||
|
// stays as defensive support for any server that decides to
|
||||||
|
// send a VN packet at us, but no testcase exercises it directly.
|
||||||
-> {
|
-> {
|
||||||
runTransferTest(
|
runTransferTest(
|
||||||
requests = requests,
|
requests = requests,
|
||||||
|
|||||||
Reference in New Issue
Block a user