fix(ci): wait for async certstore after listener create in smoke-runtime

Listener TLS PEMs are written during debounced GenerateFinalConfig/ApplyConfig.
Smoke was asserting listener-certs immediately after POST /listeners and failed on amd64/arm64 pre builds.
fix(ci): wait for async certstore after listener create in smoke-runtime
Listener TLS PEMs are written during debounced GenerateFinalConfig/ApplyConfig.
Smoke was asserting listener-certs immediately after POST /listeners and failed on amd64/arm64 pre builds.
fix(ci): wait for async certstore after listener create in smoke-runtime
Listener TLS PEMs are written during debounced GenerateFinalConfig/ApplyConfig.
Smoke was asserting listener-certs immediately after POST /listeners and failed on amd64/arm64 pre builds.
fix(ci): wait for async certstore after listener create in smoke-runtime
Listener TLS PEMs are written during debounced GenerateFinalConfig/ApplyConfig.
Smoke was asserting listener-certs immediately after POST /listeners and failed on amd64/arm64 pre builds.
fix(ci): wait for async certstore after listener create in smoke-runtime
Listener TLS PEMs are written during debounced GenerateFinalConfig/ApplyConfig.
Smoke was asserting listener-certs immediately after POST /listeners and failed on amd64/arm64 pre builds.
fix(ci): wait for async certstore after listener create in smoke-runtime
Listener TLS PEMs are written during debounced GenerateFinalConfig/ApplyConfig.
Smoke was asserting listener-certs immediately after POST /listeners and failed on amd64/arm64 pre builds.
fix(ci): wait for async certstore after listener create in smoke-runtime
Listener TLS PEMs are written during debounced GenerateFinalConfig/ApplyConfig.
Smoke was asserting listener-certs immediately after POST /listeners and failed on amd64/arm64 pre builds.
fix(ci): wait for async certstore after listener create in smoke-runtime
Listener TLS PEMs are written during debounced GenerateFinalConfig/ApplyConfig.
Smoke was asserting listener-certs immediately after POST /listeners and failed on amd64/arm64 pre builds.
fix(ci): wait for async certstore after listener create in smoke-runtime
Listener TLS PEMs are written during debounced GenerateFinalConfig/ApplyConfig.
Smoke was asserting listener-certs immediately after POST /listeners and failed on amd64/arm64 pre builds.
fix(ci): wait for async certstore after listener create in smoke-runtime
Listener TLS PEMs are written during debounced GenerateFinalConfig/ApplyConfig.
Smoke was asserting listener-certs immediately after POST /listeners and failed on amd64/arm64 pre builds.
fix(ci): wait for async certstore after listener create in smoke-runtime
Listener TLS PEMs are written during debounced GenerateFinalConfig/ApplyConfig.
Smoke was asserting listener-certs immediately after POST /listeners and failed on amd64/arm64 pre builds.
fix(ci): wait for async certstore after listener create in smoke-runtime
Listener TLS PEMs are written during debounced GenerateFinalConfig/ApplyConfig.
Smoke was asserting listener-certs immediately after POST /listeners and failed on amd64/arm64 pre builds.
This commit is contained in:
風雪 committed 2026-09-15 11:29:07 +08:00
1 parent 0ab07066ba
commit 7f664a5d1a
1 file changed
+13 -2
+13 -2
View File
@@ -117,10 +117,21 @@ def main():
else:
raise AssertionError("Bundled core did not start")
# Persist real listener certificates as well as the Shadowsocks node.
# Create returns after the panel DB write; Mihomo generate/Apply (and
# certstore.Save) is debounced asynchronously — poll briefly.
api("listeners", {"name": "certificate-smoke", "protocol": "trojan", "port": str(free_port()),
"bind_address": "127.0.0.1", "enabled": True, "config": "{}"})
certificates = {str(p.relative_to(data)): hashlib.sha256(p.read_bytes()).hexdigest()
for p in (data / "listener-certs").rglob("*") if p.is_file()}
certificates = {}
for _ in range(40):
cert_dir = data / "listener-certs"
if cert_dir.is_dir():
certificates = {
str(p.relative_to(data)): hashlib.sha256(p.read_bytes()).hexdigest()
for p in cert_dir.rglob("*") if p.is_file()
}
if certificates:
break
time.sleep(0.25)
assert certificates, "Listener certificates were not persisted"
class Target(http.server.BaseHTTPRequestHandler):