Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 21 additions & 5 deletions llm-test
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,14 @@ for f in lib/*.llm; do
fi
done

# Start background mock HTTP server for standard library testing
# Start background mock HTTP server for standard library testing.
# ThreadingHTTPServer + a per-connection timeout so a stray idle connection
# (e.g. a port prober on CI runners) cannot wedge the accept loop and stall
# real requests behind it.
python3 -c '
from http.server import HTTPServer, BaseHTTPRequestHandler
from http.server import ThreadingHTTPServer, BaseHTTPRequestHandler
class Handler(BaseHTTPRequestHandler):
timeout = 5
def log_message(self, format, *args):
pass
def do_GET(self):
Expand All @@ -64,7 +68,8 @@ class Handler(BaseHTTPRequestHandler):
self.send_header("Content-Type", "text/plain")
self.end_headers()
self.wfile.write(b"Echo: " + body)
server = HTTPServer(("127.0.0.1", 8080), Handler)
server = ThreadingHTTPServer(("127.0.0.1", 8080), Handler)
server.daemon_threads = True
server.serve_forever()
' >/dev/null 2>&1 &
MOCK_PID=$!
Expand All @@ -76,8 +81,19 @@ cleanup() {
}
trap cleanup EXIT

# Wait a brief moment for the server to bind
sleep 0.5
# Wait until the mock server is actually answering requests (up to 10s)
SERVER_READY=false
for _ in $(seq 1 40); do
if curl -s --max-time 1 http://127.0.0.1:8080/ 2>/dev/null | grep -q "Hello from local mock server"; then
SERVER_READY=true
break
fi
sleep 0.25
done
if [ "$SERVER_READY" = false ]; then
echo "WARNING: mock HTTP server on 127.0.0.1:8080 is not responding; port state:"
lsof -nP -i :8080 2>/dev/null || true
fi

echo "Running llmlang self-hosted tests..."
echo "------------------------------------"
Expand Down
Loading