d1af300bd4
Exercise malformed parameter manifests, handler patterns, app diagnostics, and registration guards; delete an unreachable empty-handler branch and narrowly classify quote-owned parse invariants. req: derive_app/001 req: component/003 req: derive_handler/003 req: test/020 req: test/021 req: test/022 req: test/023
59 lines
4.6 KiB
TOML
59 lines
4.6 KiB
TOML
# Explicit infrastructure/invariant classifications for the package-native release gate.
|
|
# - test_process_try_wait: OS process-status failures cannot be injected portably.
|
|
# - test_process_poll_delay: poll cadence is operational; readiness and timeout are integration-proven.
|
|
# - Drop for TestProcess: mutating reaping leaks helper processes beyond the test lifecycle.
|
|
# - inspection_fingerprint: deliberately unobservable test-harness metadata.
|
|
# - BuildFingerprint::from_parts loop-progress mutations: syntactically valid but
|
|
# non-terminating const-loop mutants; deterministic hash outputs are asserted.
|
|
# - Infallible header parsing and multipart byte collection: adjacent public tests
|
|
# prove exact ETag/runtime headers and streamed multipart errors; unwrap mutants
|
|
# are behaviorally equivalent at these validated boundaries.
|
|
# - hemx-build source inspection delegates to hemplate's currently infallible
|
|
# Surface parser; file I/O and invalid Rust-context errors remain explicitly proven.
|
|
# The direct surface_for_heml_source unwrap mutant is equivalent for the same seam.
|
|
# - AppBuilder reuses that same parser seam. Directory-open and recursive errors are
|
|
# proven, while a per-entry readdir fault cannot be injected portably after a
|
|
# successful read_dir; its unwrap mutant is classified as infrastructure-only.
|
|
# - write_if_changed propagates non-NotFound read errors; for ordinary filesystem
|
|
# paths, attempting the same write returns the same OS error, so the guard mutant
|
|
# is externally equivalent while create/update/no-op behavior is mutation-proven.
|
|
# - stylesheet_class_tokens loop-progress mutants are deterministically
|
|
# non-terminating; sorted, deduplicated, boundary-aware outputs are asserted.
|
|
# - context path words are filtered non-empty before extracting their first char;
|
|
# `?` and `unwrap` are equivalent under that local iterator invariant.
|
|
# - Rust-fact named fields always carry identifiers by syn's type contract. Per-entry
|
|
# and recursive read_dir errors cannot be injected portably after the parent opens;
|
|
# parent-open, source-read, and parse failures remain explicitly proven.
|
|
# - Registry-helper syntax is emitted entirely from quote-owned static tokens. Its
|
|
# parse succeeds by construction; expect/unwrap and expect-message mutations are
|
|
# equivalent, while exact generated registration and public diagnostics are proven.
|
|
exclude_re = [
|
|
"test_process_try_wait",
|
|
"test_process_poll_delay",
|
|
"delete statement std::thread::sleep\\(Duration::from_millis\\(25\\)\\)",
|
|
"<impl Drop for TestProcess>::drop",
|
|
"inspection_fingerprint",
|
|
"replace \\+= with \\*= in BuildFingerprint::from_parts",
|
|
"replace 1 with 0 in BuildFingerprint::from_parts",
|
|
"replace field \\.bytes\\(\\) \\.await \\.map_err.* with field.bytes\\(\\).await.map_err.*unwrap\\(\\) in InteractionForm::parse_multipart",
|
|
"replace String::from_utf8.* with String::from_utf8.*unwrap\\(\\) in InteractionForm::parse_multipart",
|
|
"replace HeaderValue::from_str.*runtime_js_hash.* with HeaderValue::from_str.*unwrap\\(\\) in <impl IntoResponse for RuntimeJs>::into_response",
|
|
'replace "runtime hash is a valid ETag" with "" in <impl IntoResponse for RuntimeJs>::into_response',
|
|
"replace build_ast.* with build_ast.*unwrap\\(\\) in surface_for_heml_source",
|
|
"replace surface_for_heml_source.* with surface_for_heml_source.*unwrap\\(\\) in diagnostics_for_heml_source",
|
|
"replace surface_for_heml_source.* with surface_for_heml_source.*unwrap\\(\\) in generated_targets_for_heml_source",
|
|
"replace surface_for_heml_source.* with surface_for_heml_source.*unwrap\\(\\) in template_context_facts_for_heml_source",
|
|
"replace surface_for_heml_source.* with surface_for_heml_source.*unwrap\\(\\) in AppBuilder::run",
|
|
"replace entry\\? with entry.unwrap\\(\\) in collect_input_files_into",
|
|
"replace match guard error.kind\\(\\) == io::ErrorKind::NotFound with true in write_if_changed",
|
|
"replace \\+= with (?:-=|\\*=) in stylesheet_class_tokens",
|
|
"replace 1 with 0 in stylesheet_class_tokens",
|
|
"replace chars.next\\(\\)\\? with chars.next\\(\\).unwrap\\(\\) in context_type_for_heml_path",
|
|
"replace entry\\? with entry.unwrap\\(\\) in collect_rust_struct_facts",
|
|
"replace collect_rust_struct_facts.*\\? with collect_rust_struct_facts.*unwrap\\(\\) in collect_rust_struct_facts",
|
|
'replace syn::parse2.* with syn::parse2.*unwrap\(\) in add_app_registry_helper',
|
|
'replace "generated app registry helper parses" with "" in add_app_registry_helper',
|
|
'replace "generated component register helper parses" with "" in add_component_register_helper',
|
|
'replace "generated component state register helper parses" with "" in add_component_register_helper',
|
|
]
|