diff options
| author | Valentin Popov <valentin@popov.link> | 2026-06-23 22:48:31 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-06-23 22:48:31 +0300 |
| commit | ed2b540abfc3166285fbc986f4c6427a59173d23 (patch) | |
| tree | 567468278182b7d72f7833635c6f9ed6cb0819f2 | |
| parent | 00ae9067d89a8e8eaa0238e8131ed2aee8121d4d (diff) | |
| download | fparkan-ed2b540abfc3166285fbc986f4c6427a59173d23.tar.xz fparkan-ed2b540abfc3166285fbc986f4c6427a59173d23.zip | |
feat: add target triple to native smoke report
| -rw-r--r-- | apps/fparkan-vulkan-smoke/src/main.rs | 24 | ||||
| -rw-r--r-- | fixtures/acceptance/coverage.tsv | 1 | ||||
| -rw-r--r-- | fixtures/acceptance/stage_0_2_roadmap.md | 1 |
3 files changed, 26 insertions, 0 deletions
diff --git a/apps/fparkan-vulkan-smoke/src/main.rs b/apps/fparkan-vulkan-smoke/src/main.rs index 5c0e7e3..088054c 100644 --- a/apps/fparkan-vulkan-smoke/src/main.rs +++ b/apps/fparkan-vulkan-smoke/src/main.rs @@ -523,6 +523,7 @@ fn render_smoke_report_json( " \"schema_version\": \"{}\",\n", " \"commit_sha\": \"{}\",\n", " \"rust_toolchain\": \"{}\",\n", + " \"target_triple\": \"{}\",\n", " \"platform\": \"{}\",\n", " \"status\": \"{}\",\n", " \"frames\": {},\n", @@ -548,6 +549,7 @@ fn render_smoke_report_json( SCHEMA_VERSION, json_escape(¤t_git_commit_sha()), RUST_TOOLCHAIN, + json_escape(¤t_rustc_host_triple()), options.platform.as_str(), options.status.as_str(), options.frames, @@ -594,6 +596,22 @@ fn current_git_commit_sha() -> String { .unwrap_or_else(|| "unknown".to_string()) } +fn current_rustc_host_triple() -> String { + Command::new("rustc") + .arg("-vV") + .output() + .ok() + .filter(|output| output.status.success()) + .and_then(|output| String::from_utf8(output.stdout).ok()) + .and_then(|output| { + output + .lines() + .find_map(|line| line.strip_prefix("host: ").map(ToString::to_string)) + }) + .filter(|value| !value.trim().is_empty()) + .unwrap_or_else(|| "unknown".to_string()) +} + fn json_string(value: &str) -> String { format!("\"{}\"", json_escape(value)) } @@ -952,6 +970,7 @@ mod tests { )?; assert!(json.contains("\"schema_version\": \"fparkan-native-smoke-v1\"")); + assert!(json.contains("\"target_triple\": \"")); assert!(json.contains("\"platform\": \"macos\"")); assert!(json.contains("\"status\": \"blocked\"")); assert!(json.contains("\"swapchain_recreate_count\": 0")); @@ -1030,4 +1049,9 @@ mod tests { fn formats_vulkan_api_version() { assert_eq!(format_api_version((1 << 22) | (3 << 12) | 280), "1.3.280"); } + + #[test] + fn reports_rustc_host_triple() { + assert!(!current_rustc_host_triple().trim().is_empty()); + } } diff --git a/fixtures/acceptance/coverage.tsv b/fixtures/acceptance/coverage.tsv index 9abf379..f826c08 100644 --- a/fixtures/acceptance/coverage.tsv +++ b/fixtures/acceptance/coverage.tsv @@ -56,6 +56,7 @@ S0-VK-024 covered cargo test -p fparkan-vulkan-smoke --offline rejects_passed_wi S0-VK-025 covered cargo test -p fparkan-vulkan-smoke --offline rejects_passed_without_instance_probe parses_instance_probe_as_loader_probe S0-VK-026 covered cargo test -p fparkan-vulkan-smoke --offline rejects_passed_without_window_probe rejects_passed_without_surface_probe parses_surface_probe_as_instance_probe S0-VK-027 covered cargo test -p fparkan-vulkan-smoke --offline rejects_passed_without_swapchain_recreation blocked_report_includes_shader_manifest_and_bootstrap_status +S0-VK-028 covered cargo test -p fparkan-vulkan-smoke --offline reports_rustc_host_triple blocked_report_includes_shader_manifest_and_bootstrap_status S0-LIMIT-001 covered cargo test -p fparkan-binary --offline rejects_count_stride_overflow S0-LIMIT-002 covered cargo test -p fparkan-binary --offline rejects_oversized_declared_allocation_before_read L1-P1-NRES-001 covered cargo test -p fparkan-nres --offline licensed_corpora_nres_roundtrip_gates diff --git a/fixtures/acceptance/stage_0_2_roadmap.md b/fixtures/acceptance/stage_0_2_roadmap.md index b1d28d8..7308e10 100644 --- a/fixtures/acceptance/stage_0_2_roadmap.md +++ b/fixtures/acceptance/stage_0_2_roadmap.md @@ -56,6 +56,7 @@ `S0-VK-025` `S0-VK-026` `S0-VK-027` +`S0-VK-028` `S0-LIMIT-001` `S0-LIMIT-002` `L1-P1-NRES-001` |
