| use wasm_bindgen_test::*; |
| |
| pub mod same_function_different_locations_a { |
| use wasm_bindgen::prelude::*; |
| |
| #[wasm_bindgen(module = "tests/wasm/duplicates_a.js")] |
| extern "C" { |
| pub fn foo(); |
| pub static bar: JsValue; |
| } |
| } |
| |
| pub mod same_function_different_locations_b { |
| use wasm_bindgen::prelude::*; |
| |
| #[wasm_bindgen(module = "tests/wasm/duplicates_a.js")] |
| extern "C" { |
| pub fn foo(); |
| pub static bar: JsValue; |
| } |
| } |
| |
| #[wasm_bindgen_test] |
| fn same_function_different_locations() { |
| same_function_different_locations_a::foo(); |
| same_function_different_locations_b::foo(); |
| assert_eq!(*same_function_different_locations_a::bar, 3); |
| assert_eq!(*same_function_different_locations_a::bar, 3); |
| } |
| |
| pub mod same_function_different_modules_a { |
| use wasm_bindgen::prelude::*; |
| |
| #[wasm_bindgen(module = "tests/wasm/duplicates_b.js")] |
| extern "C" { |
| pub fn foo() -> bool; |
| pub static bar: JsValue; |
| } |
| } |
| |
| pub mod same_function_different_modules_b { |
| use wasm_bindgen::prelude::*; |
| |
| #[wasm_bindgen(module = "tests/wasm/duplicates_c.js")] |
| extern "C" { |
| pub fn foo() -> bool; |
| pub static bar: JsValue; |
| } |
| } |
| |
| #[wasm_bindgen_test] |
| fn same_function_different_modules() { |
| assert!(same_function_different_modules_a::foo()); |
| assert!(!same_function_different_modules_b::foo()); |
| assert_eq!(*same_function_different_modules_a::bar, 4); |
| assert_eq!(*same_function_different_modules_b::bar, 5); |
| } |