diff --git a/tests/build.rs b/tests/build.rs index 2999b9bd..1a7b1f6e 100644 --- a/tests/build.rs +++ b/tests/build.rs @@ -10,7 +10,8 @@ mod support; #[test] fn it_builds_debug() -> Result<()> { - let project = Project::new("foo")?; + let name = "foo_debug"; + let project = Project::new(name)?; project .cargo_component("build") @@ -18,7 +19,7 @@ fn it_builds_debug() -> Result<()> { .stderr(contains("Finished dev [unoptimized + debuginfo] target(s)")) .success(); - validate_component(&project.debug_wasm("foo"))?; + validate_component(&project.debug_wasm(name))?; // A lock file should only be generated for projects with // registry dependencies @@ -29,7 +30,8 @@ fn it_builds_debug() -> Result<()> { #[test] fn it_builds_a_bin_project_with_snake_case() -> Result<()> { - let project = Project::new_bin("hello_world")?; + let name = "hello_world"; + let project = Project::new_bin(name)?; project .cargo_component("build --release") @@ -37,14 +39,15 @@ fn it_builds_a_bin_project_with_snake_case() -> Result<()> { .stderr(contains("Finished release [optimized] target(s)")) .success(); - validate_component(&project.release_wasm("hello_world"))?; + validate_component(&project.release_wasm(name))?; Ok(()) } #[test] fn it_builds_a_bin_project() -> Result<()> { - let project = Project::new_bin("foo")?; + let name = "foo_bin_project"; + let project = Project::new_bin(name)?; project .cargo_component("build --release") @@ -52,7 +55,7 @@ fn it_builds_a_bin_project() -> Result<()> { .stderr(contains("Finished release [optimized] target(s)")) .success(); - validate_component(&project.release_wasm("foo"))?; + validate_component(&project.release_wasm(name))?; Ok(()) } @@ -112,7 +115,8 @@ edition = "2021" #[test] fn it_supports_wit_keywords() -> Result<()> { - let project = Project::new("interface")?; + let name = "interface"; + let project = Project::new(name)?; project .cargo_component("build --release") @@ -120,14 +124,15 @@ fn it_supports_wit_keywords() -> Result<()> { .stderr(contains("Finished release [optimized] target(s)")) .success(); - validate_component(&project.release_wasm("interface"))?; + validate_component(&project.release_wasm(name))?; Ok(()) } #[test] fn it_adds_a_producers_field() -> Result<()> { - let project = Project::new("foo")?; + let name = "foo_producer_section"; + let project = Project::new(name)?; project .cargo_component("build --release") @@ -135,7 +140,7 @@ fn it_adds_a_producers_field() -> Result<()> { .stderr(contains("Finished release [optimized] target(s)")) .success(); - let path = project.release_wasm("foo"); + let path = project.release_wasm(name); validate_component(&path)?; @@ -157,7 +162,8 @@ fn it_adds_a_producers_field() -> Result<()> { #[test] fn it_builds_wasm32_unknown_unknown() -> Result<()> { - let project = Project::new("foo")?; + let name = "foo_wasm32_unknown_unknown"; + let project = Project::new(name)?; project .cargo_component("build --target wasm32-unknown-unknown") @@ -170,7 +176,7 @@ fn it_builds_wasm32_unknown_unknown() -> Result<()> { .build_dir() .join("wasm32-unknown-unknown") .join("debug") - .join("foo.wasm"), + .join(format!("{name}.wasm")), )?; Ok(()) @@ -178,7 +184,8 @@ fn it_builds_wasm32_unknown_unknown() -> Result<()> { #[test] fn it_regenerates_target_if_wit_changed() -> Result<()> { - let project = Project::new("foo")?; + let name = "foo_if_wit_changed"; + let project = Project::new(name)?; project.update_manifest(|mut doc| { doc["package"]["metadata"]["component"]["target"]["world"] = value("example"); Ok(doc) @@ -190,7 +197,7 @@ fn it_regenerates_target_if_wit_changed() -> Result<()> { .stderr(contains("Finished dev [unoptimized + debuginfo] target(s)")) .success(); - validate_component(&project.debug_wasm("foo"))?; + validate_component(&project.debug_wasm(name))?; project .cargo_component("build") @@ -211,7 +218,8 @@ fn it_regenerates_target_if_wit_changed() -> Result<()> { #[test] fn it_builds_with_local_wit_deps() -> Result<()> { - let project = Project::new("foo")?; + let name = "foo_local_wit_deps"; + let project = Project::new(name)?; project.update_manifest(|mut doc| { let mut dependencies = Table::new(); dependencies["foo:bar"]["path"] = value("wit/deps/foo-bar"); @@ -296,14 +304,15 @@ bindings::export!(Component with_types_in bindings); .stderr(contains("Finished dev [unoptimized + debuginfo] target(s)")) .success(); - validate_component(&project.debug_wasm("foo"))?; + validate_component(&project.debug_wasm(name))?; Ok(()) } #[test] fn empty_world_with_dep_valid() -> Result<()> { - let project = Project::new("dep")?; + let name = "dep"; + let project = Project::new(name)?; fs::write( project.root().join("wit/world.wit"), @@ -340,7 +349,7 @@ fn empty_world_with_dep_valid() -> Result<()> { project.cargo_component("build").assert().success(); - let dep = project.debug_wasm("dep"); + let dep = project.debug_wasm(name); validate_component(&dep)?; let project = Project::with_dir(project.dir().clone(), "main", "")?; @@ -379,7 +388,8 @@ fn empty_world_with_dep_valid() -> Result<()> { #[test] fn it_builds_with_resources() -> Result<()> { - let project = Project::new("foo")?; + let name = "foo_resources"; + let project = Project::new(name)?; fs::write( project.root().join("wit/world.wit"), @@ -439,7 +449,7 @@ fn it_builds_with_resources() -> Result<()> { project.cargo_component("build").assert().success(); - let dep = project.debug_wasm("foo"); + let dep = project.debug_wasm(name); validate_component(&dep)?; Ok(()) @@ -447,7 +457,8 @@ fn it_builds_with_resources() -> Result<()> { #[test] fn it_builds_resources_with_specified_ownership_model() -> Result<()> { - let project = Project::new("foo")?; + let name = "foo_resources_with_specified_ownership_model"; + let project = Project::new(name)?; project.update_manifest(|mut doc| { doc["package"]["metadata"]["component"]["bindings"]["ownership"] = value("borrowing-duplicate-if-necessary"); @@ -512,7 +523,7 @@ fn it_builds_resources_with_specified_ownership_model() -> Result<()> { project.cargo_component("build").assert().success(); - let dep = project.debug_wasm("foo"); + let dep = project.debug_wasm(name); validate_component(&dep)?; Ok(()) @@ -638,7 +649,8 @@ bindings::export!(Component with_types_in bindings); #[test] fn it_builds_with_adapter() -> Result<()> { - let project = Project::new("foo")?; + let name = "foo_with_adapter"; + let project = Project::new(name)?; project.update_manifest(|mut doc| { doc["package"]["metadata"]["component"]["adapter"] = value("not-a-valid-path"); Ok(doc) @@ -650,7 +662,7 @@ fn it_builds_with_adapter() -> Result<()> { .stderr(contains("error: failed to read module adapter")) .failure(); - let project = Project::new("foo")?; + let project = Project::new(name)?; project.update_manifest(|mut doc| { doc["package"]["metadata"]["component"]["adapter"] = value(adapter_path().to_str().unwrap()); @@ -663,20 +675,22 @@ fn it_builds_with_adapter() -> Result<()> { .stderr(contains("Finished dev [unoptimized + debuginfo] target(s)")) .success(); - validate_component(&project.debug_wasm("foo"))?; + validate_component(&project.debug_wasm(name))?; Ok(()) } #[test] fn it_errors_if_adapter_is_not_wasm() -> Result<()> { - let project = Project::new("foo")?; + let name = "foo_errors_on_adapter"; + let file_name = format!("{name}.wasm"); + let project = Project::new(name)?; project.update_manifest(|mut doc| { - doc["package"]["metadata"]["component"]["adapter"] = value("foo.wasm"); + doc["package"]["metadata"]["component"]["adapter"] = value(&file_name); Ok(doc) })?; - fs::write(project.root().join("foo.wasm"), "not wasm")?; + fs::write(project.root().join(file_name), "not wasm")?; project .cargo_component("build") @@ -689,7 +703,8 @@ fn it_errors_if_adapter_is_not_wasm() -> Result<()> { #[test] fn it_adds_additional_derives() -> Result<()> { - let project = Project::new("foo")?; + let name = "foo_add_derives"; + let project = Project::new(name)?; project.update_manifest(|mut doc| { doc["package"]["metadata"]["component"]["bindings"]["derives"] = value(Array::from_iter(["serde::Serialize", "serde::Deserialize"])); @@ -754,14 +769,15 @@ bindings::export!(Component with_types_in bindings); .stderr(contains("Finished dev [unoptimized + debuginfo] target(s)")) .success(); - validate_component(&project.debug_wasm("foo"))?; + validate_component(&project.debug_wasm(name))?; Ok(()) } #[test] fn it_builds_with_versioned_wit() -> Result<()> { - let project = Project::new("foo")?; + let name = "foo_versioned_wit"; + let project = Project::new(name)?; fs::write( project.root().join("wit/world.wit"), @@ -796,7 +812,7 @@ fn it_builds_with_versioned_wit() -> Result<()> { project.cargo_component("build").assert().success(); - let dep = project.debug_wasm("foo"); + let dep = project.debug_wasm(name); validate_component(&dep)?; Ok(()) @@ -804,7 +820,8 @@ fn it_builds_with_versioned_wit() -> Result<()> { #[test] fn it_warns_on_proxy_setting_for_command() -> Result<()> { - let project = Project::new_bin("foo")?; + let name = "foo_warn_proxy"; + let project = Project::new_bin(name)?; project.update_manifest(|mut doc| { doc["package"]["metadata"]["component"]["proxy"] = value(true); Ok(doc) @@ -818,14 +835,15 @@ fn it_warns_on_proxy_setting_for_command() -> Result<()> { )) .success(); - validate_component(&project.debug_wasm("foo"))?; + validate_component(&project.debug_wasm(name))?; Ok(()) } #[test] fn it_warns_with_proxy_and_adapter_settings() -> Result<()> { - let project = Project::new("foo")?; + let name = "foo_warn_proxy_and_adapter"; + let project = Project::new(name)?; project.update_manifest(|mut doc| { doc["package"]["metadata"]["component"]["proxy"] = value(true); doc["package"]["metadata"]["component"]["adapter"] = @@ -839,15 +857,16 @@ fn it_warns_with_proxy_and_adapter_settings() -> Result<()> { .stderr(contains("warning: ignoring `proxy` setting due to `adapter` setting being present in `Cargo.toml`")) .success(); - validate_component(&project.debug_wasm("foo"))?; + validate_component(&project.debug_wasm(name))?; Ok(()) } #[test] fn it_builds_with_proxy_adapter() -> Result<()> { + let name = "foo_proxy"; let dir = Rc::new(TempDir::new()?); - let project = Project::with_dir(dir.clone(), "foo", "--proxy")?; + let project = Project::with_dir(dir.clone(), name, "--proxy")?; project .cargo_component("build") @@ -855,9 +874,9 @@ fn it_builds_with_proxy_adapter() -> Result<()> { .stderr(contains("Finished dev [unoptimized + debuginfo] target(s)")) .success(); - validate_component(&project.debug_wasm("foo"))?; + validate_component(&project.debug_wasm(name))?; - let text = wasmprinter::print_file(project.debug_wasm("foo"))?; + let text = wasmprinter::print_file(project.debug_wasm(name))?; assert!( !text.contains("wasi:cli/environment"), "proxy wasm should have no reference to `wasi:cli/environment`" @@ -868,9 +887,10 @@ fn it_builds_with_proxy_adapter() -> Result<()> { #[test] fn it_does_not_generate_bindings_for_cargo_projects() -> Result<()> { + let name = "foo_not_generate"; let dir = TempDir::new()?; - for (name, args) in [("foo", &["new", "--lib"] as &[_]), ("bar", &["new"])] { + for (name, args) in [(name, &["new", "--lib"] as &[_]), ("bar", &["new"])] { let mut cmd = Command::new("cargo"); cmd.current_dir(dir.path()); cmd.args(args);