html/template — validation proof
Go’s own html/template test suite, converted to C# by go2cs, built against the converted standard
library, run under the Go-semantics test host, and compared verdict for verdict against a clean
go test -json baseline of the same sources. This page is generated by the converter from that
comparison — it is the evidence behind the html/template row in
Validated Test Packages.
Validated 2026-08-25 · converter a338d351d
243 matched · 0 disclosed — Go 1.23.12, windows/amd64, converted package
src/core/html/template.
Both runtimes skip 2 of the matched tests identically.
Verdicts
| Test | go test |
go2cs |
|---|---|---|
TestAddParseTreeHTML |
pass | pass |
TestAddParseTreeToUnparsedTemplate |
pass | pass |
TestAddrOfIndex |
pass | pass |
TestAliasedParseTreeDoesNotOverescape |
pass | pass |
TestBadFuncNames |
pass | pass |
TestBlock |
pass | pass |
TestCSSEscaper |
pass | pass |
TestCSSValueFilter |
pass | pass |
TestClone |
pass | pass |
TestCloneCrash |
pass | pass |
TestCloneGrowth |
pass | pass |
TestClonePipe |
pass | pass |
TestCloneRedefinedName |
pass | pass |
TestCloneThenParse |
pass | pass |
TestComparison |
pass | pass |
TestDecodeCSS |
pass | pass |
TestDelims |
pass | pass |
TestEmptyTemplate |
pass | pass |
TestEmptyTemplateCloneCrash |
pass | pass |
TestEmptyTemplateHTML |
pass | pass |
TestEndsWithCSSKeyword |
pass | pass |
TestEnsurePipelineContains |
pass | pass |
TestErrorOnUndefined |
pass | pass |
TestErrors |
pass | pass |
TestEscape |
pass | pass |
TestEscape/CSS_attr_block_comment |
pass | pass |
TestEscape/CSS_attr_line_comment |
pass | pass |
TestEscape/CSS_comments |
pass | pass |
TestEscape/Comment_ends_flush_with_start |
pass | pass |
TestEscape/HTML_comment |
pass | pass |
TestEscape/HTML_comment_not_first_<_in_text_node. |
pass | pass |
TestEscape/HTML_doctype_not_case-insensitive |
pass | pass |
TestEscape/HTML_doctype_not_normalized |
pass | pass |
TestEscape/HTML_normalization_1 |
pass | pass |
TestEscape/HTML_normalization_2 |
pass | pass |
TestEscape/HTML_normalization_3 |
pass | pass |
TestEscape/HTML_substitution_commented_out |
pass | pass |
TestEscape/JS_HTML-like_comments |
pass | pass |
TestEscape/JS_attr_block_comment |
pass | pass |
TestEscape/JS_attr_line_comment |
pass | pass |
TestEscape/JS_block_comment_flush_with_mathematical_division |
pass | pass |
TestEscape/JS_hashbang_comment |
pass | pass |
TestEscape/JS_line_comment |
pass | pass |
TestEscape/JS_mixed_comments |
pass | pass |
TestEscape/JS_multiline_block_comment |
pass | pass |
TestEscape/JS_single-line_block_comment |
pass | pass |
TestEscape/JS_template_lit,_nested_JS |
pass | pass |
TestEscape/JS_template_lit_special_characters |
pass | pass |
TestEscape/JS_template_lit_special_characters,_nested_lit |
pass | pass |
TestEscape/No_RCDATA_end_tag_injection |
pass | pass |
TestEscape/No_comment_injection |
pass | pass |
TestEscape/No_doctype_injection |
pass | pass |
TestEscape/No_tag_injection |
pass | pass |
TestEscape/Special_tags_in_<script>_regex_literals_(mixed_case) |
pass | pass |
TestEscape/Special_tags_in_<script>_string_literals |
pass | pass |
TestEscape/Special_tags_in_<script>_string_literals_(mixed_case) |
pass | pass |
TestEscape/Split_HTML_comment |
pass | pass |
TestEscape/assignment |
pass | pass |
TestEscape/badMarshaler |
pass | pass |
TestEscape/bad_dynamic_attribute_name_1 |
pass | pass |
TestEscape/bad_dynamic_attribute_name_2 |
pass | pass |
TestEscape/bad_dynamic_attribute_name_3 |
pass | pass |
TestEscape/bad_dynamic_attribute_name_4 |
pass | pass |
TestEscape/bad_dynamic_element_name |
pass | pass |
TestEscape/conditional_dynamic_valueless_attr_name_1 |
pass | pass |
TestEscape/conditional_dynamic_valueless_attr_name_2 |
pass | pass |
TestEscape/conditional_valueless_attr_name |
pass | pass |
TestEscape/constant |
pass | pass |
TestEscape/dangerousURLStart |
pass | pass |
TestEscape/dangerousURLStart2 |
pass | pass |
TestEscape/dynamic_attribute_name |
pass | pass |
TestEscape/dynamic_element_name |
pass | pass |
TestEscape/else |
pass | pass |
TestEscape/if |
pass | pass |
TestEscape/jsBoolValue |
pass | pass |
TestEscape/jsMarshaler |
pass | pass |
TestEscape/jsNilValueTyped |
pass | pass |
TestEscape/jsNilValueUntyped |
pass | pass |
TestEscape/jsNumericValue |
pass | pass |
TestEscape/jsObjValue |
pass | pass |
TestEscape/jsObjValueNotOverEscaped |
pass | pass |
TestEscape/jsObjValueScript |
pass | pass |
TestEscape/jsRe |
pass | pass |
TestEscape/jsReAmbigOk |
pass | pass |
TestEscape/jsReBlank |
pass | pass |
TestEscape/jsStr |
pass | pass |
TestEscape/jsStrNotUnderEscaped |
pass | pass |
TestEscape/jsStrValue |
pass | pass |
TestEscape/multipleAttrs |
pass | pass |
TestEscape/nonHierURL |
pass | pass |
TestEscape/nonStringValue |
pass | pass |
TestEscape/optional_attrs |
pass | pass |
TestEscape/overescaping1 |
pass | pass |
TestEscape/overescaping2 |
pass | pass |
TestEscape/overescaping3 |
pass | pass |
TestEscape/pathRelativeURLStart |
pass | pass |
TestEscape/protocolRelativeURLStart |
pass | pass |
TestEscape/quoted_empty_attribute_value |
pass | pass |
TestEscape/rangeBody |
pass | pass |
TestEscape/rangeElse |
pass | pass |
TestEscape/range_in_textarea |
pass | pass |
TestEscape/srcset_bad_URL_in_second_position |
pass | pass |
TestEscape/srcset_buffer_growth |
pass | pass |
TestEscape/styleBidiKeywordPassed |
pass | pass |
TestEscape/styleBidiPropNamePassed |
pass | pass |
TestEscape/styleClassPassed |
pass | pass |
TestEscape/styleColorPassed |
pass | pass |
TestEscape/styleExpressionBlocked |
pass | pass |
TestEscape/styleFontNameString |
pass | pass |
TestEscape/styleFontNameString#01 |
pass | pass |
TestEscape/styleFontNameUnquoted |
pass | pass |
TestEscape/styleIDPassed |
pass | pass |
TestEscape/styleMozBindingBlocked |
pass | pass |
TestEscape/styleObfuscatedExpressionBlocked |
pass | pass |
TestEscape/styleObfuscatedMozBindingBlocked |
pass | pass |
TestEscape/stylePctPassed |
pass | pass |
TestEscape/stylePropertyPairPassed |
pass | pass |
TestEscape/styleQuantityPassed |
pass | pass |
TestEscape/styleQuotedURLQueryEncoded |
pass | pass |
TestEscape/styleStrBadProtocolBlocked |
pass | pass |
TestEscape/styleStrEncodedProtocolEncoded |
pass | pass |
TestEscape/styleStrGoodProtocolPassed |
pass | pass |
TestEscape/styleStrQueryEncoded |
pass | pass |
TestEscape/styleStrSpecialsEncoded |
pass | pass |
TestEscape/styleTagSelectorPassed |
pass | pass |
TestEscape/styleURLBadProtocolBlocked |
pass | pass |
TestEscape/styleURLEncodedForHTMLInAttr |
pass | pass |
TestEscape/styleURLGoodProtocolPassed |
pass | pass |
TestEscape/styleURLMixedCase |
pass | pass |
TestEscape/styleURLNotEncodedForHTMLInCdata |
pass | pass |
TestEscape/styleURLQueryEncoded |
pass | pass |
TestEscape/styleURLSpecialsEncoded |
pass | pass |
TestEscape/typedNilValue |
pass | pass |
TestEscape/typed_HTML_in_RCDATA |
pass | pass |
TestEscape/typed_HTML_in_attribute |
pass | pass |
TestEscape/typed_HTML_in_script |
pass | pass |
TestEscape/typed_HTML_in_text |
pass | pass |
TestEscape/unquoted_empty_attribute_value_(plaintext) |
pass | pass |
TestEscape/unquoted_empty_attribute_value_(url) |
pass | pass |
TestEscape/untypedNilValue |
pass | pass |
TestEscape/urlBranch |
pass | pass |
TestEscape/urlBranchConflictMoot |
pass | pass |
TestEscape/urlFragment |
pass | pass |
TestEscape/urlPath |
pass | pass |
TestEscape/urlQuery |
pass | pass |
TestEscape/urlStartAbsOk |
pass | pass |
TestEscape/urlStartRel |
pass | pass |
TestEscape/withBody |
pass | pass |
TestEscape/withElse |
pass | pass |
TestEscapeErrorsNotIgnorable |
pass | pass |
TestEscapeMalformedPipelines |
pass | pass |
TestEscapeMap |
pass | pass |
TestEscapeRace |
pass | pass |
TestEscapeSet |
pass | pass |
TestEscapeSetErrorsNotIgnorable |
pass | pass |
TestEscapeText |
pass | pass |
TestEscapersOnLower7AndSelectHighCodepoints |
pass | pass |
TestEscapingNilNonemptyInterfaces |
pass | pass |
TestEvalFieldErrors |
pass | pass |
TestEvalFieldErrors/ExistingFieldOnNil |
pass | pass |
TestEvalFieldErrors/MissingFieldOnNil |
pass | pass |
TestEvalFieldErrors/MissingFieldOnNonNil |
pass | pass |
TestEvalFieldErrors/MissingKeyOnMapPtrToNil |
pass | pass |
TestEvalFieldErrors/MissingKeyOnNilMap |
pass | pass |
TestEvalFieldErrors/MissingKeyOnNilMapPtr |
pass | pass |
TestExecError |
pass | pass |
TestExecute |
pass | pass |
TestExecuteError |
pass | pass |
TestExecuteGivesExecError |
pass | pass |
TestExecuteOnNewTemplate |
pass | pass |
TestExecutePanicDuringCall |
pass | pass |
TestFinalForPrintf |
pass | pass |
TestFindEndTag |
pass | pass |
TestFuncMapWorksAfterClone |
pass | pass |
TestGoodFuncNames |
pass | pass |
TestHTMLNospaceEscaper |
pass | pass |
TestHexDecode |
pass | pass |
TestIdempotentExecute |
pass | pass |
TestIndirectPrint |
pass | pass |
TestInterfaceValues |
pass | pass |
TestIsCSSNmchar |
pass | pass |
TestIsJsMimeType |
pass | pass |
TestIssue19294 |
pass | pass |
TestIssue31810 |
skip | skip |
TestJSEscaping |
pass | pass |
TestJSRegexpEscaper |
pass | pass |
TestJSStrEscaper |
pass | pass |
TestJSValEscaper |
pass | pass |
TestMaxExecDepth |
pass | pass |
TestMessageForExecuteEmpty |
pass | pass |
TestMissingMapKey |
pass | pass |
TestMultiExecute |
pass | pass |
TestNextJsCtx |
pass | pass |
TestNumbers |
pass | pass |
TestOrphanedTemplate |
pass | pass |
TestParse |
pass | pass |
TestParseFS |
pass | pass |
TestParseFiles |
pass | pass |
TestParseFilesWithData |
pass | pass |
TestParseGlob |
pass | pass |
TestParseGlobWithData |
pass | pass |
TestParseZipFS |
pass | pass |
TestPipeToMethodIsEscaped |
pass | pass |
TestRecursiveExecute |
pass | pass |
TestRecursiveExecuteViaMethod |
pass | pass |
TestRedefineAfterNamedExecution |
pass | pass |
TestRedefineAfterNonExecution |
pass | pass |
TestRedefineEmptyAfterExecution |
pass | pass |
TestRedefineNestedByNameAfterExecution |
pass | pass |
TestRedefineNestedByTemplateAfterExecution |
pass | pass |
TestRedefineNonEmptyAfterExecution |
pass | pass |
TestRedefineOtherParsers |
pass | pass |
TestRedefineSafety |
pass | pass |
TestRedefineTopUse |
pass | pass |
TestRedefinition |
pass | pass |
TestRedundantFuncs |
pass | pass |
TestSkipCSSSpace |
pass | pass |
TestSkipEscapeComments |
pass | pass |
TestSrcsetFilter |
pass | pass |
TestStringer |
pass | pass |
TestStringsInScriptsWithJsonContentTypeAreCorrectlyEscaped |
pass | pass |
TestStringsInScriptsWithJsonContentTypeAreCorrectlyEscaped/ASCII_letters |
pass | pass |
TestStringsInScriptsWithJsonContentTypeAreCorrectlyEscaped/Pizza |
pass | pass |
TestStringsInScriptsWithJsonContentTypeAreCorrectlyEscaped/Unicode |
pass | pass |
TestStringsInScriptsWithJsonContentTypeAreCorrectlyEscaped/empty |
pass | pass |
TestStringsInScriptsWithJsonContentTypeAreCorrectlyEscaped/gt_and_lt |
pass | pass |
TestStringsInScriptsWithJsonContentTypeAreCorrectlyEscaped/invalid |
pass | pass |
TestStringsInScriptsWithJsonContentTypeAreCorrectlyEscaped/null |
pass | pass |
TestStringsInScriptsWithJsonContentTypeAreCorrectlyEscaped/quotes |
pass | pass |
TestStringsInScriptsWithJsonContentTypeAreCorrectlyEscaped/tab |
pass | pass |
TestStringsInScriptsWithJsonContentTypeAreCorrectlyEscaped/unit_separator |
pass | pass |
TestStripTags |
pass | pass |
TestTemplateClone |
pass | pass |
TestTemplateCloneExecuteRace |
pass | pass |
TestTemplateCloneLookup |
pass | pass |
TestTemplateFuncsAfterClone |
pass | pass |
TestTemplateLookUp |
skip | skip |
TestTemplates |
pass | pass |
TestTree |
pass | pass |
TestTypedContent |
pass | pass |
TestURLFilters |
pass | pass |
TestURLNormalizer |
pass | pass |
TestUnterminatedStringError |
pass | pass |
Excluded declarations
Declarations filtered from both sides of the comparison, and therefore not claimed above:
Benchmark, Fuzz and Example declarations the converted host does not execute, plus any
test requiring a capability the managed runtime does not provide — a testing member the host
has not implemented, or a platform behavior it provably cannot reproduce. Each is named with
the capability it needs.
- BenchmarkCSSEscaper (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkCSSEscaperNoSpecials (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkCSSValueFilter (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkCSSValueFilterOk (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkDecodeCSS (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkDecodeCSSNoSpecials (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkEscapedExecute (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkHTMLNospaceEscaper (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkHTMLNospaceEscaperNoSpecials (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkJSRegexpEscaper (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkJSRegexpEscaperNoSpecials (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkJSStrEscaper (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkJSStrEscaperNoSpecials (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkJSValEscaperWithNum (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkJSValEscaperWithObj (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkJSValEscaperWithObjNoSpecials (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkJSValEscaperWithStr (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkJSValEscaperWithStrNoSpecials (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkSrcsetFilter (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkSrcsetFilterNoSpecials (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkStripTags (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkStripTagsNoSpecials (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkTemplateSpecialTags (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkURLEscaper (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkURLEscaperNoSpecials (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkURLNormalizer (benchmark): benchmark execution is deferred to Phase 4D
- BenchmarkURLNormalizerNoSpecials (benchmark): benchmark execution is deferred to Phase 4D
- Example (example): example execution is deferred to Phase 4D
- ExampleTemplate_Delims (example): example execution is deferred to Phase 4D
- ExampleTemplate_block (example): example execution is deferred to Phase 4D
- ExampleTemplate_glob (example): example execution is deferred to Phase 4D
- ExampleTemplate_helpers (example): example execution is deferred to Phase 4D
- ExampleTemplate_parsefiles (example): example execution is deferred to Phase 4D
- ExampleTemplate_share (example): example execution is deferred to Phase 4D
- Example_autoescaping (example): example execution is deferred to Phase 4D
- Example_escape (example): example execution is deferred to Phase 4D