mirror of
https://github.com/cfal/shoes.git
synced 2026-11-06 08:14:11 +00:00
Broadens unit and integration coverage of WebSocket framing, ShadowTLS and REALITY ClientHello parsing, VLESS fallback, Hysteria2 and TUIC authentication, DNS, and connection budgets across reloads, and fixes the defects it exposed: WebSocket streams now accept control frames up to RFC 6455's 125-byte limit, no longer report EOF into partly filled read buffers, and flush buffered frames before shutting down; the shared ClientHello parser reassembles hellos split across TLS records, as Go TLS stacks do; and message-stream shutdown after EOF is bounded like the stream relay's. It also builds the binary on the library crate instead of compiling every module twice, removes the unused UdpMessageStream, moves ShadowTLS interop tests to local handshake servers, makes filtered CI test steps fail when they select no tests, consolidates the WebSocket payload-reading code, and documents how to measure coverage along with the remaining gaps, including why WebSocket Close frames stay unanswered.
13 lines
306 B
Bash
Executable File
13 lines
306 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Runs a filtered test command and fails if it ran no tests, e.g. after a rename.
|
|
set -euo pipefail
|
|
|
|
log=$(mktemp)
|
|
trap 'rm -f "$log"' EXIT
|
|
|
|
"$@" 2>&1 | tee "$log"
|
|
if ! grep -Eq '^test result: ok\. [1-9][0-9]* passed' "$log"; then
|
|
echo "::error::No tests ran: $*" >&2
|
|
exit 1
|
|
fi
|