20260427_2 移除parallel phase开关,默认全量并行
This commit is contained in:
@@ -25,7 +25,6 @@ fn run_case(
|
||||
"rpki".to_string(),
|
||||
"--db".to_string(),
|
||||
db_dir.path().to_string_lossy().to_string(),
|
||||
"--parallel-phase1".to_string(),
|
||||
"--disable-rrdp".to_string(),
|
||||
"--rsync-local-dir".to_string(),
|
||||
fixture("tests/fixtures/repository")
|
||||
|
||||
@@ -4,7 +4,7 @@ fn fixture_path(rel: &str) -> PathBuf {
|
||||
PathBuf::from(env!("CARGO_MANIFEST_DIR")).join(rel)
|
||||
}
|
||||
|
||||
fn run_offline_case(parallel_phase1: bool, parallel_phase2: bool) -> (serde_json::Value, Vec<u8>) {
|
||||
fn run_offline_case(phase2_workers: Option<usize>) -> (serde_json::Value, Vec<u8>) {
|
||||
let db_dir = tempfile::tempdir().expect("db tempdir");
|
||||
let out_dir = tempfile::tempdir().expect("out tempdir");
|
||||
let report_path = out_dir.path().join("report.json");
|
||||
@@ -38,13 +38,9 @@ fn run_offline_case(parallel_phase1: bool, parallel_phase2: bool) -> (serde_json
|
||||
"--ccr-out".to_string(),
|
||||
ccr_path.to_string_lossy().to_string(),
|
||||
];
|
||||
if parallel_phase1 {
|
||||
argv.push("--parallel-phase1".to_string());
|
||||
}
|
||||
if parallel_phase2 {
|
||||
argv.push("--parallel-phase2".to_string());
|
||||
if let Some(workers) = phase2_workers {
|
||||
argv.push("--parallel-phase2-object-workers".to_string());
|
||||
argv.push("4".to_string());
|
||||
argv.push(workers.to_string());
|
||||
argv.push("--parallel-phase2-worker-queue-capacity".to_string());
|
||||
argv.push("64".to_string());
|
||||
}
|
||||
@@ -58,61 +54,56 @@ fn run_offline_case(parallel_phase1: bool, parallel_phase2: bool) -> (serde_json
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn offline_serial_and_parallel_phase1_match_compare_views() {
|
||||
let (serial_report, serial_ccr_bytes) = run_offline_case(false, false);
|
||||
let (parallel_report, parallel_ccr_bytes) = run_offline_case(true, false);
|
||||
fn offline_default_parallel_and_configured_phase2_match_compare_views() {
|
||||
let (default_report, default_ccr_bytes) = run_offline_case(None);
|
||||
let (configured_report, configured_ccr_bytes) = run_offline_case(Some(4));
|
||||
|
||||
let serial_ccr = rpki::ccr::decode_content_info(&serial_ccr_bytes).expect("decode serial ccr");
|
||||
let parallel_ccr =
|
||||
rpki::ccr::decode_content_info(¶llel_ccr_bytes).expect("decode parallel ccr");
|
||||
let default_ccr =
|
||||
rpki::ccr::decode_content_info(&default_ccr_bytes).expect("decode default ccr");
|
||||
let configured_ccr =
|
||||
rpki::ccr::decode_content_info(&configured_ccr_bytes).expect("decode configured ccr");
|
||||
|
||||
let (serial_vrps, serial_vaps) =
|
||||
rpki::bundle::decode_ccr_compare_views(&serial_ccr, "apnic").expect("serial compare view");
|
||||
let (parallel_vrps, parallel_vaps) =
|
||||
rpki::bundle::decode_ccr_compare_views(¶llel_ccr, "apnic")
|
||||
.expect("parallel compare view");
|
||||
let (default_vrps, default_vaps) =
|
||||
rpki::bundle::decode_ccr_compare_views(&default_ccr, "apnic")
|
||||
.expect("default compare view");
|
||||
let (configured_vrps, configured_vaps) =
|
||||
rpki::bundle::decode_ccr_compare_views(&configured_ccr, "apnic")
|
||||
.expect("configured compare view");
|
||||
|
||||
assert_eq!(serial_vrps, parallel_vrps, "VRP compare views must match");
|
||||
assert_eq!(serial_vaps, parallel_vaps, "VAP compare views must match");
|
||||
|
||||
let serial_points = serial_report["publication_points"]
|
||||
.as_array()
|
||||
.expect("serial publication_points");
|
||||
let parallel_points = parallel_report["publication_points"]
|
||||
.as_array()
|
||||
.expect("parallel publication_points");
|
||||
assert_eq!(
|
||||
serial_points.len(),
|
||||
parallel_points.len(),
|
||||
default_vrps, configured_vrps,
|
||||
"VRP compare views must match"
|
||||
);
|
||||
assert_eq!(
|
||||
default_vaps, configured_vaps,
|
||||
"VAP compare views must match"
|
||||
);
|
||||
|
||||
let default_points = default_report["publication_points"]
|
||||
.as_array()
|
||||
.expect("default publication_points");
|
||||
let configured_points = configured_report["publication_points"]
|
||||
.as_array()
|
||||
.expect("configured publication_points");
|
||||
assert_eq!(
|
||||
default_points.len(),
|
||||
configured_points.len(),
|
||||
"publication point counts must match"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn offline_serial_and_parallel_phase2_match_compare_views() {
|
||||
let (serial_report, serial_ccr_bytes) = run_offline_case(false, false);
|
||||
let (phase2_report, phase2_ccr_bytes) = run_offline_case(true, true);
|
||||
|
||||
let serial_ccr = rpki::ccr::decode_content_info(&serial_ccr_bytes).expect("decode serial ccr");
|
||||
let phase2_ccr = rpki::ccr::decode_content_info(&phase2_ccr_bytes).expect("decode phase2 ccr");
|
||||
|
||||
let (serial_vrps, serial_vaps) =
|
||||
rpki::bundle::decode_ccr_compare_views(&serial_ccr, "apnic").expect("serial compare view");
|
||||
let (phase2_vrps, phase2_vaps) =
|
||||
rpki::bundle::decode_ccr_compare_views(&phase2_ccr, "apnic").expect("phase2 compare view");
|
||||
|
||||
assert_eq!(serial_vrps, phase2_vrps, "VRP compare views must match");
|
||||
assert_eq!(serial_vaps, phase2_vaps, "VAP compare views must match");
|
||||
|
||||
let serial_points = serial_report["publication_points"]
|
||||
.as_array()
|
||||
.expect("serial publication_points");
|
||||
let phase2_points = phase2_report["publication_points"]
|
||||
.as_array()
|
||||
.expect("phase2 publication_points");
|
||||
assert_eq!(
|
||||
serial_points.len(),
|
||||
phase2_points.len(),
|
||||
"publication point counts must match"
|
||||
fn offline_default_parallel_emits_online_ccr_accumulator_output() {
|
||||
let (report, ccr_bytes) = run_offline_case(None);
|
||||
let ccr = rpki::ccr::decode_content_info(&ccr_bytes).expect("decode ccr");
|
||||
let (_vrps, _vaps) =
|
||||
rpki::bundle::decode_ccr_compare_views(&ccr, "apnic").expect("compare view");
|
||||
assert!(
|
||||
report["publication_points"]
|
||||
.as_array()
|
||||
.expect("publication_points")
|
||||
.len()
|
||||
> 0,
|
||||
"default parallel replay must process publication points"
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user