wasm-bindgen/crates/macro
Alex Crichton a6fe0cefa8 Migrate all crates to the 2018 edition
Most of the CLI crates were already in the 2018 edition, and it turns
out that one of the macro crates was already in the 2018 edition so we
may as well move everything to the 2018 edition!

Always nice to remove those `extern crate` statements nowadays!

This commit also does a `cargo fmt --all` to make sure we're conforming
with style again.
2019-03-26 08:10:53 -07:00
..
src Migrate all crates to the 2018 edition 2019-03-26 08:10:53 -07:00
ui-tests Enable the stable feature of compiletest_rs 2019-03-22 07:26:23 -07:00
Cargo.toml Migrate all crates to the 2018 edition 2019-03-26 08:10:53 -07:00
LICENSE-APACHE Rename directories to remove "wasm-bindgen-" prefix in sub-crates 2018-03-29 08:28:25 -07:00
LICENSE-MIT Rename directories to remove "wasm-bindgen-" prefix in sub-crates 2018-03-29 08:28:25 -07:00
README.md Prepare to have targeted error diagnostics (#604) 2018-08-01 17:15:27 -05:00

wasm-bindgen-macro

Implementation of the #[wasm_bindgen] attribute. See the wasm-bindgen documentation for more information about what this macro does.

Testing

Testing of this macro is done through "ui tests" in the ui-tests subdirectory of this crate. Each Rust file in this folder is compiled with the wasm_bindgen crate, and the *.stderr file sitting next to it is the asserted output of the compiler. If the output matches, the test passes, and if the output doesn't match the test fails. Note that it is also considered a failure if a test actually compiles successfully.

To add a test:

  • Create ui-tests/my-awesome-test.rs
  • Write an invalid #[wasm_bindgen] invocation, testing the error you're generating
  • Execute cargo test -p ui-tests, the test will fail
  • From within the ui-tests folder, execute ./update-all-references.sh. This should create a my-awesome-test.stderr file.
  • Inspect my-awesome-test.stderr to make sure it looks ok
  • Rerun cargo test -p ui-tests and your tests should pass!

Testing here is a work in progress, see #601 for more information.