W14: pin K49 void-elements spec fix; discover sx_render.ml regen drift (test-only)
K49: area/base/embed/param/track were in VOID_ELEMENTS but missing from
HTML_TAGS — render fell through to "Undefined symbol: base". dc7aa709 fixed
spec/render.sx; add suite gate-K49-void-elements-renderable (3 tests): the
spec registry contains all five, and render-to-html renders each as a
self-closing void. 264 passed / 0 failed under OCaml run_tests.
DISCOVERY (recorded in the briefing's Blocked section): the generated
hosts/ocaml/lib/sx_render.ml was never regenerated after the spec fix — its
stale html_tags_list still lacks the five tags, so the runner's native
render-html path STILL errors. Fix is a bootstrap_render.py regen (hosts
lane, out of scope for this test-only loop). Live evidence for F13
(regen-diff CI gate). Pin covers the spec side only for now.
Also corrects the checklist label: K49 = void elements; the depth/cycle
guard is K16 (OPEN, W8).
Test-only: no semantics edits, no push.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -119,3 +119,45 @@
|
||||
(deftest
|
||||
"do with a single IIFE form returns its value"
|
||||
(assert= (do ((fn () 42))) 42)))
|
||||
|
||||
;; --------------------------------------------------------------------------
|
||||
;; K49 [W8, med] Five void elements (area base embed param track) were in
|
||||
;; VOID_ELEMENTS but missing from HTML_TAGS — render fell through to
|
||||
;; function-call dispatch: (render-to-html '(base :href "x")) threw
|
||||
;; "Undefined symbol: base". dc7aa709 fixed the SPEC registry
|
||||
;; (spec/render.sx). NB: the generated OCaml render library
|
||||
;; (hosts/ocaml/lib/sx_render.ml, bootstrap_render.py output) still carries
|
||||
;; a STALE html_tags_list without these five — the runner's native
|
||||
;; `render-html` convenience therefore still errors. That regen drift is
|
||||
;; W14 item F13 (regen-diff gate); this suite pins the spec side only.
|
||||
;; --------------------------------------------------------------------------
|
||||
(defsuite
|
||||
"gate-K49-void-elements-renderable"
|
||||
(deftest
|
||||
"spec HTML_TAGS registry contains all five void elements"
|
||||
(for-each
|
||||
(fn
|
||||
(t)
|
||||
(assert (contains? HTML_TAGS t) (str "HTML_TAGS missing " t)))
|
||||
(list "area" "base" "embed" "param" "track")))
|
||||
(deftest
|
||||
"spec render-to-html renders base self-closing with attr"
|
||||
(assert-equal
|
||||
"<base href=\"x\" />"
|
||||
(render-to-html (quote (base :href "x")) (make-env))))
|
||||
(deftest
|
||||
"spec render-to-html renders all five as self-closing voids"
|
||||
(for-each
|
||||
(fn
|
||||
(form)
|
||||
(let
|
||||
((html (render-to-html form (make-env))))
|
||||
(assert
|
||||
(string-contains? html "/>")
|
||||
(str (first form) " not self-closing: " html))))
|
||||
(list
|
||||
(quote (area))
|
||||
(quote (base))
|
||||
(quote (embed))
|
||||
(quote (param))
|
||||
(quote (track))))))
|
||||
|
||||
Reference in New Issue
Block a user