v0.3.6-pre.010
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
// file: crates/ksp-job-backfill-lib/tests/release_completeness.rs
|
||||
// version: 7
|
||||
// version: 9
|
||||
|
||||
//! Completeness canaries through the `pre.009` concrete cancellation and latest-value runtime tranche.
|
||||
//! Completeness canaries through the `pre.010` hardening and external-canary tranche.
|
||||
|
||||
#[test]
|
||||
fn pre_009_production_module_inventory_is_exact() -> std::io::Result<()> {
|
||||
fn pre_010_production_module_inventory_is_exact() -> std::io::Result<()> {
|
||||
let source_root = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("src");
|
||||
let entries = match std::fs::read_dir(source_root) {
|
||||
std::result::Result::Ok(value) => value,
|
||||
@@ -51,7 +51,7 @@ fn pre_009_production_module_inventory_is_exact() -> std::io::Result<()> {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_009_surface_closes_concrete_cancellation_and_latest_value_runtime() {
|
||||
fn pre_010_surface_closes_concrete_cancellation_and_latest_value_runtime() {
|
||||
let root = include_str!("../src/lib.rs");
|
||||
for required in [
|
||||
"BackfillCandidate",
|
||||
@@ -84,7 +84,7 @@ fn pre_009_surface_closes_concrete_cancellation_and_latest_value_runtime() {
|
||||
"BACKFILL_JOB_KIND_CODE",
|
||||
"ERROR_CODE_BACKFILL_RUNTIME_INVALID",
|
||||
] {
|
||||
assert!(root.contains(required), "required pre.009 public contract missing: {required}");
|
||||
assert!(root.contains(required), "required pre.010 public contract missing: {required}");
|
||||
}
|
||||
for forbidden in ["tokio::", "FuturesUnordered", "watch::Receiver", "watch::Sender"] {
|
||||
assert!(!root.contains(forbidden), "runtime implementation detail leaked into public root: {forbidden}");
|
||||
@@ -92,3 +92,22 @@ fn pre_009_surface_closes_concrete_cancellation_and_latest_value_runtime() {
|
||||
assert!(!root.contains("pub mod "));
|
||||
return;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_010_external_hardening_suite_is_present_and_scoped() {
|
||||
let hardening = include_str!("hardening.rs");
|
||||
for required in [
|
||||
"pre_010_external_error_codes_are_stable_unique_and_domain_scoped",
|
||||
"pre_010_external_request_adversarial_bounds_return_stable_codes",
|
||||
"pre_010_scope_fingerprint_is_network_sensitive_and_transport_source_independent",
|
||||
"pre_010_debug_surfaces_redact_signature_fingerprint_and_runtime_snapshot_payloads",
|
||||
"pre_010_external_runtime_handle_starts_created_and_cancellation_is_idempotent",
|
||||
"pre_010_manifest_dependency_surface_is_exact_and_backend_neutral",
|
||||
"pre_010_source_visibility_contract_uses_crate_root_for_shared_items",
|
||||
"pre_010_lower_layers_have_no_dependency_return_to_job",
|
||||
"pre_010_public_root_exposes_no_runtime_or_backend_implementation_types",
|
||||
] {
|
||||
assert!(hardening.contains(required), "required pre.010 hardening canary missing: {required}");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user