diff --git a/crates/test-programs/Cargo.toml b/crates/test-programs/Cargo.toml index 09806f5176..3912199035 100644 --- a/crates/test-programs/Cargo.toml +++ b/crates/test-programs/Cargo.toml @@ -22,3 +22,4 @@ pretty_env_logger = "0.3.0" tempfile = "3.1.0" os_pipe = "0.9" anyhow = "1.0.19" +wat = "1.0.2" diff --git a/crates/test-programs/build.rs b/crates/test-programs/build.rs index e2ddc946a4..04c0a2841d 100644 --- a/crates/test-programs/build.rs +++ b/crates/test-programs/build.rs @@ -127,7 +127,7 @@ fn write_testsuite_tests(out: &mut File, dir_entry: DirEntry, testsuite: &str) - " let path = std::path::Path::new(r#\"{}\"#);", path.display() )?; - writeln!(out, " let data = utils::read_wasm(path)?;")?; + writeln!(out, " let data = wat::parse_file(path)?;")?; writeln!( out, " let bin_name = utils::extract_exec_name_from_path(path)?;" diff --git a/crates/test-programs/tests/wasm_tests/utils.rs b/crates/test-programs/tests/wasm_tests/utils.rs index 104f914838..c8b35f92d9 100644 --- a/crates/test-programs/tests/wasm_tests/utils.rs +++ b/crates/test-programs/tests/wasm_tests/utils.rs @@ -1,16 +1,6 @@ -use std::fs; use std::path::Path; use tempfile::{Builder, TempDir}; -pub fn read_wasm(path: &Path) -> anyhow::Result> { - let data = fs::read(path)?; - if data.starts_with(&[b'\0', b'a', b's', b'm']) { - Ok(data) - } else { - anyhow::bail!("Invalid Wasm file encountered") - } -} - pub fn prepare_workspace(exe_name: &str) -> anyhow::Result { let prefix = format!("wasi_common_{}", exe_name); let tempdir = Builder::new().prefix(&prefix).tempdir()?; diff --git a/src/bin/wasm2obj.rs b/src/bin/wasm2obj.rs index c057ed254f..0a1ef33f41 100644 --- a/src/bin/wasm2obj.rs +++ b/src/bin/wasm2obj.rs @@ -38,11 +38,9 @@ use faerie::Artifact; use serde::Deserialize; use std::error::Error; use std::fmt::format; -use std::fs::File; -use std::io::prelude::*; use std::path::{Path, PathBuf}; use std::str::FromStr; -use std::{io, process, str}; +use std::{process, str}; use target_lexicon::Triple; use wasmtime_cli::pick_compilation_strategy; use wasmtime_debug::{emit_debugsections, read_debuginfo}; @@ -104,13 +102,6 @@ struct Args { flag_optimize: bool, } -fn read_wasm_file(path: PathBuf) -> Result, io::Error> { - let mut buf: Vec = Vec::new(); - let mut file = File::open(path)?; - file.read_to_end(&mut buf)?; - Ok(buf) -} - fn main() { let version = env!("CARGO_PKG_VERSION"); let args: Args = Docopt::new(USAGE) @@ -189,7 +180,7 @@ fn handle_module( cranelift: bool, lightbeam: bool, ) -> Result<(), String> { - let data = match read_wasm_file(path) { + let data = match wat::parse_file(path) { Ok(data) => data, Err(err) => { return Err(String::from(err.description()));