chore(quic-interop): drop the smoke target — runner is the canonical path
make smoke was the bisector for "is the bug in :quic or in the runner
environment?" while we were debugging the initial close-path / PTO /
padding issues. Now that the runner reliably runs the matrix end-to-end
(handshake + chacha20 green vs aioquic), smoke's only job — running
picoquic outside the runner — is unneeded, and the picoquic image
keeps changing its entrypoint / required args in ways that make smoke
finicky to maintain.
Removes:
- make smoke / smoke-down targets
- SMOKE_NET / SMOKE_PICOQUIC / SMOKE_CLIENT vars
- SMOKE_MODE handling in run_endpoint.sh (just always tolerates
/setup.sh failure now — same effect, less ceremony)
- Plan doc note about make smoke updated to reflect removal.
If we ever need a non-runner bisector again, it's two `docker run`
commands; not worth permanent maintenance.
https://claude.ai/code/session_01HcvfQq1ttPV9PkRoJb4nyT
This commit is contained in:
+7
-42
@@ -1,21 +1,16 @@
|
|||||||
# Local iteration loop for the quic-interop-runner endpoint image.
|
# Local iteration loop for the quic-interop-runner endpoint image.
|
||||||
#
|
#
|
||||||
# make build # compile JVM dist + build Docker image
|
# make build # compile JVM dist + build Docker image
|
||||||
# make smoke # quick handshake test against a local picoquic
|
|
||||||
# make smoke-down # tear down the smoke environment
|
|
||||||
# make image-name # print the image tag (for use in implementations_quic.json)
|
# make image-name # print the image tag (for use in implementations_quic.json)
|
||||||
|
# make clean # nuke the dist + image
|
||||||
#
|
#
|
||||||
# These targets are deliberately thin wrappers — the real harness is the
|
# Real testing happens via the runner: clone quic-interop-runner separately
|
||||||
# `quic-interop-runner` repo (clone separately and register `amethyst` with
|
# and drive it with `quic/interop/run-matrix.sh -s <peer> -t <tests>`.
|
||||||
# image=amethyst-quic-interop:latest, role=client).
|
IMAGE ?= amethyst-quic-interop:latest
|
||||||
IMAGE ?= amethyst-quic-interop:latest
|
REPO_ROOT := $(shell git rev-parse --show-toplevel)
|
||||||
REPO_ROOT := $(shell git rev-parse --show-toplevel)
|
DIST_DIR := build/install/quic-interop
|
||||||
DIST_DIR := build/install/quic-interop
|
|
||||||
SMOKE_NET := amethyst-quic-interop-smoke-net
|
|
||||||
SMOKE_PICOQUIC := amethyst-quic-interop-smoke-picoquic
|
|
||||||
SMOKE_CLIENT := amethyst-quic-interop-smoke-client
|
|
||||||
|
|
||||||
.PHONY: build dist docker smoke smoke-down image-name clean
|
.PHONY: build dist docker image-name clean
|
||||||
|
|
||||||
build: docker
|
build: docker
|
||||||
|
|
||||||
@@ -25,36 +20,6 @@ dist:
|
|||||||
docker: dist
|
docker: dist
|
||||||
cd $(REPO_ROOT) && docker build -t $(IMAGE) -f quic/interop/Dockerfile .
|
cd $(REPO_ROOT) && docker build -t $(IMAGE) -f quic/interop/Dockerfile .
|
||||||
|
|
||||||
# Stand up picoquic + our endpoint on a private Docker bridge network. This
|
|
||||||
# avoids `--network host`, which on Docker Desktop for Mac is misleadingly
|
|
||||||
# *not* the Mac host's network — it's the LinuxKit VM's, and port forwarding
|
|
||||||
# trickery makes 127.0.0.1 unreliable.
|
|
||||||
#
|
|
||||||
# We pass the resolved IP directly rather than relying on Docker's embedded
|
|
||||||
# DNS — the base image (martenseemann/quic-network-simulator-endpoint) ships
|
|
||||||
# a /etc/resolv.conf primed for the runner's sim that breaks bridge-network
|
|
||||||
# name resolution from the JVM.
|
|
||||||
smoke: docker smoke-down
|
|
||||||
docker network create $(SMOKE_NET) >/dev/null 2>&1 || true
|
|
||||||
docker run -d --name $(SMOKE_PICOQUIC) \
|
|
||||||
--network $(SMOKE_NET) \
|
|
||||||
--entrypoint /picoquic/picoquicdemo \
|
|
||||||
privateoctopus/picoquic:latest -p 4433 >/dev/null
|
|
||||||
@PICOQUIC_IP=$$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(SMOKE_PICOQUIC)); \
|
|
||||||
echo "picoquic at $$PICOQUIC_IP:4433 (in $(SMOKE_NET))"; \
|
|
||||||
docker run --rm --name $(SMOKE_CLIENT) \
|
|
||||||
--network $(SMOKE_NET) \
|
|
||||||
-e SMOKE_MODE=1 \
|
|
||||||
-e ROLE=client \
|
|
||||||
-e TESTCASE=handshake \
|
|
||||||
-e REQUESTS="https://$$PICOQUIC_IP:4433/" \
|
|
||||||
$(IMAGE)
|
|
||||||
@$(MAKE) smoke-down
|
|
||||||
|
|
||||||
smoke-down:
|
|
||||||
@docker rm -f $(SMOKE_PICOQUIC) $(SMOKE_CLIENT) >/dev/null 2>&1 || true
|
|
||||||
@docker network rm $(SMOKE_NET) >/dev/null 2>&1 || true
|
|
||||||
|
|
||||||
image-name:
|
image-name:
|
||||||
@echo $(IMAGE)
|
@echo $(IMAGE)
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,10 @@ reorder / migration scenarios that are awkward to reproduce in unit tests.
|
|||||||
OpenJDK 21 runtime, copies the `installDist` output.
|
OpenJDK 21 runtime, copies the `installDist` output.
|
||||||
- `run_endpoint.sh` sources the base image's `/setup.sh` then execs our JVM
|
- `run_endpoint.sh` sources the base image's `/setup.sh` then execs our JVM
|
||||||
binary.
|
binary.
|
||||||
- `Makefile` wrappers: `make build`, `make smoke`, `make clean`.
|
- `Makefile` wrappers: `make build`, `make clean`. (A `make smoke`
|
||||||
|
target previously stood up picoquic + our endpoint on a private Docker
|
||||||
|
bridge to bisect runner failures from impl failures; dropped once
|
||||||
|
the runner reliably exercised both paths.)
|
||||||
|
|
||||||
## Local iteration loop
|
## Local iteration loop
|
||||||
|
|
||||||
|
|||||||
@@ -2,19 +2,14 @@
|
|||||||
# quic-interop-runner endpoint entry point.
|
# quic-interop-runner endpoint entry point.
|
||||||
#
|
#
|
||||||
# The base image (martenseemann/quic-network-simulator-endpoint) provides
|
# The base image (martenseemann/quic-network-simulator-endpoint) provides
|
||||||
# /setup.sh, which configures routing for the runner's ns-3 sim. We source
|
# /setup.sh, which configures routing for the runner's ns-3 sim. Source it
|
||||||
# it inside the runner — but for `make smoke` runs against a plain Docker
|
# inside the runner; tolerate failure (e.g. missing NET_ADMIN cap) so the
|
||||||
# bridge network, sourcing /setup.sh succeeds AND breaks DNS resolution
|
# JVM client still launches if a caller invokes the image outside the
|
||||||
# (it points the resolver at the sim's nameserver which doesn't exist
|
# runner — they get default container networking instead.
|
||||||
# in smoke mode). Set SMOKE_MODE=1 to skip /setup.sh entirely.
|
|
||||||
set -uo pipefail
|
set -uo pipefail
|
||||||
|
|
||||||
if [ "${SMOKE_MODE:-0}" = "1" ]; then
|
# shellcheck disable=SC1091
|
||||||
echo "(smoke mode — skipping /setup.sh, using container default networking)" >&2
|
source /setup.sh 2>/dev/null || echo "(setup.sh skipped — not under the runner sim)" >&2
|
||||||
else
|
|
||||||
# shellcheck disable=SC1091
|
|
||||||
source /setup.sh 2>/dev/null || echo "(setup.sh skipped — running outside the runner sim)" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user