| 702 | } |
| 703 | |
| 704 | fn rustc(src: &str) -> Vec<u8> { |
| 705 | let td = tempfile::TempDir::new().unwrap(); |
| 706 | let output = td.path().join("foo.wasm"); |
| 707 | let input = td.path().join("input.rs"); |
| 708 | std::fs::write(&input, src).unwrap(); |
| 709 | let result = Command::new("rustc") |
| 710 | .arg(&input) |
| 711 | .arg("-o") |
| 712 | .arg(&output) |
| 713 | .arg("--target") |
| 714 | .arg("wasm32-wasip1") |
| 715 | .arg("-g") |
| 716 | .output() |
| 717 | .unwrap(); |
| 718 | if result.status.success() { |
| 719 | return std::fs::read(&output).unwrap(); |
| 720 | } |
| 721 | panic!( |
| 722 | "rustc failed: {}\n{}", |
| 723 | result.status, |
| 724 | String::from_utf8_lossy(&result.stderr) |
| 725 | ); |
| 726 | } |
| 727 | |
| 728 | #[test] |
| 729 | fn parse_dwarf_info() -> Result<()> { |