Log PRD site rendering evidence
This commit is contained in:
@@ -58,6 +58,7 @@ fn assert_web_surfaces_render(cases: &[LiveSiteCase]) -> Result<(), Box<dyn Erro
|
||||
)?;
|
||||
|
||||
assert_prd_frame_is_ready(&frame, case);
|
||||
log_prd_frame("web-surface", &frame, case);
|
||||
store.finish(tab_id, WebSurfaceState::Ready(frame));
|
||||
let Some(WebSurfaceState::Ready(frame)) = store.state(tab.id()) else {
|
||||
return Err(format!("web surface state is not ready for {}", case.url).into());
|
||||
@@ -84,6 +85,21 @@ fn assert_prd_frame_is_ready(frame: &WebSurfaceFrame, case: &LiveSiteCase) {
|
||||
assert!(frame.sample_hash() > 0, "{}", case.url);
|
||||
}
|
||||
|
||||
fn log_prd_frame(label: &str, frame: &WebSurfaceFrame, case: &LiveSiteCase) {
|
||||
eprintln!(
|
||||
"prd-live-site {label} url={} loaded={} title={} state={} size={}x{} content_pixels={} non_white_pixels={} sample_hash={}",
|
||||
case.url,
|
||||
frame.url_label(),
|
||||
frame.title_label(),
|
||||
frame.render_state(),
|
||||
frame.size().width,
|
||||
frame.size().height,
|
||||
frame.content_pixel_count(),
|
||||
frame.non_white_pixel_count(),
|
||||
frame.sample_hash()
|
||||
);
|
||||
}
|
||||
|
||||
fn assert_render_state_is_open(state: &str, url: &str) {
|
||||
assert!(matches!(state, "complete" | "loading"), "{url} state: {state}");
|
||||
}
|
||||
|
||||
@@ -98,6 +98,8 @@ pub(super) fn snapshot_prd_site(
|
||||
assert!(report_field_as_u64(&report, "sample_hash")? > 0, "{}", case.url);
|
||||
assert_eq!(std::fs::metadata(&output_path)?.len(), size.width * size.height * 4);
|
||||
|
||||
log_prd_report(&report, case, size)?;
|
||||
|
||||
std::fs::remove_file(&output_path)?;
|
||||
Ok(report)
|
||||
}
|
||||
@@ -343,6 +345,26 @@ fn assert_report_state_is_renderable(report: &serde_json::Value) -> Result<(), B
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn log_prd_report(
|
||||
report: &serde_json::Value,
|
||||
case: &PrdSiteCompatibilityCase,
|
||||
size: FrameSize,
|
||||
) -> Result<(), Box<dyn Error>> {
|
||||
eprintln!(
|
||||
"prd-live-site servo-sidecar url={} loaded={} title={} state={} size={}x{} content_pixels={} non_white_pixels={} sample_hash={}",
|
||||
case.url,
|
||||
report_field_as_text(report, "loaded_url")?,
|
||||
report_field_as_text(report, "title")?,
|
||||
report_field_as_text(report, "state")?,
|
||||
size.width,
|
||||
size.height,
|
||||
report_field_as_u64(report, "content_pixel_count")?,
|
||||
report_field_as_u64(report, "non_white_pixel_count")?,
|
||||
report_field_as_u64(report, "sample_hash")?
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn report_field_as_text<'a>(
|
||||
report: &'a serde_json::Value,
|
||||
field: &'static str,
|
||||
|
||||
Reference in New Issue
Block a user