diff --git a/wasmtime-api/tests/examples.rs b/wasmtime-api/tests/examples.rs new file mode 100644 index 0000000000..3f6468f9a9 --- /dev/null +++ b/wasmtime-api/tests/examples.rs @@ -0,0 +1,39 @@ +use std::env; +use std::process::{Command, Stdio}; + +fn run_example(name: &'static str) { + let cargo = env::var("CARGO").unwrap_or("cargo".to_string()); + let pkg_dir = env!("CARGO_MANIFEST_DIR"); + assert!( + Command::new(cargo) + .current_dir(pkg_dir) + .stdout(Stdio::null()) + .args(&["run", "-q", "--example", name]) + .status() + .expect("success") + .success(), + "failed to execute the example '{}'", + name, + ); +} + +#[test] +fn test_run_hello_example() { + run_example("hello"); +} + +#[test] +fn test_run_gcd_example() { + run_example("gcd"); +} + +#[test] +fn test_run_memory_example() { + run_example("memory"); +} + +#[cfg(not(target_os = "windows"))] +#[test] +fn test_run_multi_example() { + run_example("multi"); +}