Compare commits

..
1 Commits
Author SHA1 Message Date
clawbot b8edfcec37 Spend less of make test writing the image and waiting (closes #56)
check / check (push) Failing after 2s
The test phase spends most of its time compiling with the race
detector from an empty build cache; then come writing the test image
and the internal/proxy tests.

- Go's build cache is on a tmpfs in the test phase, so its 137 MB are
  no longer written into the test image.
- TestUpgradedConnectionOutlastsTheTimeouts waits until just past
  shortTimeout after the request was sent, rather than 7.5 s after the
  upgrade, so it ends with the other timing tests.
- shortTimeout is written as waitLimit / 2, as its comment says it is.

Model: opus-5-5
2026-10-04 08:19:19 +00:00
+5 -5
View File
@@ -233,6 +233,7 @@ func TestUpgradedConnectionOutlastsTheTimeouts(t *testing.T) {
send(t, conn, "GET /socket HTTP/1.1\r\nHost: app\r\n"+
"Connection: Upgrade\r\nUpgrade: websocket\r\n\r\n")
sent := time.Now()
reader := bufio.NewReader(conn)
res, err := http.ReadResponse(reader, nil)
@@ -240,17 +241,16 @@ func TestUpgradedConnectionOutlastsTheTimeouts(t *testing.T) {
t.Fatalf("read the answer to the upgrade: %v", err)
}
answered := time.Now()
_ = res.Body.Close()
if res.StatusCode != http.StatusSwitchingProtocols {
t.Fatalf("status %d, want %d", res.StatusCode, http.StatusSwitchingProtocols)
}
// Every timeout started before the upgrade was answered, the response
// timeouts last, at the end of the request: wait until just past
// shortTimeout after the answer was read, then use the connection.
time.Sleep(time.Until(answered.Add(shortTimeout + 100*time.Millisecond)))
// Every timeout started by the time smallwebwaf read the request:
// wait until just past shortTimeout after it was sent, then use the
// connection.
time.Sleep(time.Until(sent.Add(shortTimeout + 100*time.Millisecond)))
send(t, conn, "still here\n")
echoed, err := reader.ReadString('\n')