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 {
|
||||
implementation(project(":quic"))
|
||||
implementation(libs.kotlinx.coroutines.core)
|
||||
implementation(libs.jackson.module.kotlin)
|
||||
|
||||
testImplementation(libs.kotlin.test)
|
||||
}
|
||||
|
||||
@@ -112,6 +112,15 @@ fi
|
||||
# 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.
|
||||
#
|
||||
# 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
|
||||
# (interface checksum offload toggles, route setup, container lifecycle,
|
||||
# the long Command: WAITFORSERVER=... line, the platform-mismatch warning
|
||||
|
||||
@@ -141,7 +141,12 @@ fun main() {
|
||||
"handshake", "chacha20", "handshakeloss",
|
||||
"transfer", "http3", "multiplexing",
|
||||
"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(
|
||||
requests = requests,
|
||||
|
||||
Reference in New Issue
Block a user