Skip to content

Commit dddba0b

Browse files
committed
chore: reintroduce wave tests
1 parent 962683b commit dddba0b

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed

tools/wave/tests/test_wave.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# mypy: allow-untyped-defs
2+
3+
import errno
4+
import os
5+
import socket
6+
import subprocess
7+
import time
8+
9+
from urllib.request import urlopen
10+
from urllib.error import URLError
11+
12+
from tools.wpt import wpt
13+
14+
def is_port_8080_in_use():
15+
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
16+
try:
17+
s.bind(("127.0.0.1", 8080))
18+
except socket.error as e:
19+
if e.errno == errno.EADDRINUSE:
20+
return True
21+
else:
22+
raise e
23+
finally:
24+
s.close()
25+
return False
26+
27+
def test_serve():
28+
if is_port_8080_in_use():
29+
assert False, "WAVE Test Runner failed: Port 8080 already in use."
30+
31+
p = subprocess.Popen([os.path.join(wpt.localpaths.repo_root, "wpt"),
32+
"serve-wave",
33+
"--config",
34+
os.path.join(wpt.localpaths.repo_root, "tools/wave/tests/config.json")],
35+
preexec_fn=os.setsid)
36+
37+
start = time.time()
38+
try:
39+
while True:
40+
if p.poll() is not None:
41+
assert False, "WAVE Test Runner failed: Server not running."
42+
if time.time() - start > 60:
43+
assert False, "WAVE Test Runner failed: Server did not start responding within 60s."
44+
try:
45+
resp = urlopen("http://web-platform.test:8080/_wave/api/sessions/public")
46+
print(resp)
47+
except URLError:
48+
print("URLError")
49+
time.sleep(1)
50+
else:
51+
assert resp.code == 200
52+
break
53+
finally:
54+
os.killpg(p.pid, 15)

tools/wave/tox.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[tox]
2-
envlist = py38,py39,py310,py311,py312,py312
2+
envlist = py39,py310,py311,py312,py312
33
skipsdist=True
44
skip_missing_interpreters = False
55

0 commit comments

Comments
 (0)