Skip to content

Commit dcbab04

Browse files
committed
Let expect_fail clear on refs that carry the fix via a fixed_on marker
1 parent 494bf68 commit dcbab04

2 files changed

Lines changed: 11 additions & 9 deletions

File tree

.github/examples-manifest.yml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -877,14 +877,11 @@ examples:
877877
<<: *stapling
878878
client: [./ocsp-client, --tls13]
879879
expect: "Client: TLS handshake success"
880-
# A wolfSSL bug, not an example bug, reproduced locally: the RFC 8446
881-
# 4.4.2 check in tls.c searches only ssl->extensions, but
882-
# wolfSSL_CTX_UseOCSPStapling leaves status_request on ctx->extensions,
883-
# so the server's staple is killed with unsupported_extension (-429).
884-
# wolfSSL's own TLSX_CheckUnsupportedExtension does that ctx fallback;
885-
# this call site does not. Fix filed as wolfSSL/wolfssl#10936; drop this
886-
# expect_fail when it merges.
880+
# wolfSSL bug (not the example): a CTX-set status_request is dropped from
881+
# the TLS1.3 Certificate msg (-429). Fixed on master by wolfSSL/wolfssl#10936,
882+
# still in v5.9.2-stable; drop expect_fail + fixed_on once a stable tag has it.
887883
expect_fail: "wolfSSL drops a CTX-set status_request in the TLS1.3 Certificate msg (-429)"
884+
fixed_on: [master]
888885

889886
- id: custom-io-file-client
890887
path: custom-io-callbacks/file-client

.github/scripts/run_example.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,7 @@ def attempt_step(step, cwd, env):
617617
return label, ok, detail, log
618618

619619

620-
def run_entry(entry, expect_sha, results):
620+
def run_entry(entry, expect_sha, results, wolfssl_ref):
621621
eid = entry["id"]
622622
cwd = REPO / entry["path"]
623623
env = dict(os.environ)
@@ -692,6 +692,11 @@ def run_entry(entry, expect_sha, results):
692692
detail = f"{n} runs ok" if ok else f"flaked on run {run_no}/{n}: {detail}"
693693

694694
xfail = step.get("expect_fail")
695+
# A fix lands in master before it ships in a stable tag, so the same bug is
696+
# known-fail on stable yet fixed on master; fixed_on lists the refs that
697+
# carry the fix and must therefore pass normally.
698+
if xfail and wolfssl_ref in (step.get("fixed_on") or []):
699+
xfail = None
695700
if xfail and not ok:
696701
status, detail = "xfail", f"known: {xfail}"
697702
ok = True
@@ -793,7 +798,7 @@ def main():
793798
results = []
794799
ok = True
795800
for entry in entries:
796-
ok = run_entry(entry, expect_sha, results) and ok
801+
ok = run_entry(entry, expect_sha, results, args.wolfssl_ref) and ok
797802

798803
for r in results:
799804
r["ref"] = args.wolfssl_ref

0 commit comments

Comments
 (0)