20260715 add configurable max CA depth
This commit is contained in:
@@ -253,6 +253,7 @@ fn tree_enqueues_children_for_fresh_and_current_instance_vcir_results() {
|
||||
fn tree_respects_max_depth_and_max_instances() {
|
||||
let root_manifest = "rsync://example.test/repo/root.mft";
|
||||
let child_manifest = "rsync://example.test/repo/child.mft";
|
||||
let grandchild_manifest = "rsync://example.test/repo/grandchild.mft";
|
||||
|
||||
let runner = MockRunner::default()
|
||||
.with(
|
||||
@@ -301,6 +302,32 @@ fn tree_respects_max_depth_and_max_instances() {
|
||||
audit: PublicationPointAudit::default(),
|
||||
cir_fresh_objects: Vec::new(),
|
||||
cir_cached_objects: Vec::new(),
|
||||
discovered_children: vec![discovered_child(child_manifest, grandchild_manifest)],
|
||||
},
|
||||
)
|
||||
.with(
|
||||
grandchild_manifest,
|
||||
PublicationPointRunResult {
|
||||
source: PublicationPointSource::Fresh,
|
||||
snapshot: Some(empty_snapshot(
|
||||
grandchild_manifest,
|
||||
"rsync://example.test/repo/grandchild/",
|
||||
)),
|
||||
warnings: Vec::new(),
|
||||
objects: ObjectsOutput {
|
||||
vrps: Vec::new(),
|
||||
aspas: Vec::new(),
|
||||
router_keys: Vec::new(),
|
||||
local_outputs_cache: Vec::new(),
|
||||
warnings: Vec::new(),
|
||||
stats: ObjectsStats::default(),
|
||||
audit: Vec::new(),
|
||||
roa_cache_stats: Default::default(),
|
||||
roa_cache_object_meta: Vec::new(),
|
||||
},
|
||||
audit: PublicationPointAudit::default(),
|
||||
cir_fresh_objects: Vec::new(),
|
||||
cir_cached_objects: Vec::new(),
|
||||
discovered_children: Vec::new(),
|
||||
},
|
||||
);
|
||||
@@ -324,6 +351,62 @@ fn tree_respects_max_depth_and_max_instances() {
|
||||
.expect("run tree depth-limited");
|
||||
assert_eq!(out.instances_processed, 1);
|
||||
assert_eq!(out.instances_failed, 0);
|
||||
assert_eq!(runner.called(), vec![root_manifest]);
|
||||
|
||||
let out = run_tree_serial(
|
||||
ca_handle(root_manifest),
|
||||
&runner,
|
||||
&TreeRunConfig {
|
||||
max_depth: Some(1),
|
||||
max_instances: None,
|
||||
compact_audit: false,
|
||||
persist_vcir: true,
|
||||
build_ccr_accumulator: true,
|
||||
enable_roa_validation_cache: false,
|
||||
enable_child_certificate_validation_cache: false,
|
||||
publication_point_cache_observe_only: false,
|
||||
enable_publication_point_validation_cache: false,
|
||||
enable_transport_request_prefetch: false,
|
||||
},
|
||||
)
|
||||
.expect("run tree depth-one-limited");
|
||||
assert_eq!(out.instances_processed, 2);
|
||||
assert_eq!(out.instances_failed, 0);
|
||||
assert_eq!(
|
||||
runner.called(),
|
||||
vec![root_manifest, root_manifest, child_manifest]
|
||||
);
|
||||
|
||||
let out = run_tree_serial(
|
||||
ca_handle(root_manifest),
|
||||
&runner,
|
||||
&TreeRunConfig {
|
||||
max_depth: Some(2),
|
||||
max_instances: None,
|
||||
compact_audit: false,
|
||||
persist_vcir: true,
|
||||
build_ccr_accumulator: true,
|
||||
enable_roa_validation_cache: false,
|
||||
enable_child_certificate_validation_cache: false,
|
||||
publication_point_cache_observe_only: false,
|
||||
enable_publication_point_validation_cache: false,
|
||||
enable_transport_request_prefetch: false,
|
||||
},
|
||||
)
|
||||
.expect("run tree depth-two-limited");
|
||||
assert_eq!(out.instances_processed, 3);
|
||||
assert_eq!(out.instances_failed, 0);
|
||||
assert_eq!(
|
||||
runner.called(),
|
||||
vec![
|
||||
root_manifest,
|
||||
root_manifest,
|
||||
child_manifest,
|
||||
root_manifest,
|
||||
child_manifest,
|
||||
grandchild_manifest,
|
||||
]
|
||||
);
|
||||
|
||||
let out = run_tree_serial(
|
||||
ca_handle(root_manifest),
|
||||
|
||||
Reference in New Issue
Block a user