wasm-bindgen/crates/macro
Alex Crichton 3efe51eb8b Reorganize and rewrite examples
This commit is a large-ish scale reorganization of our examples. The
main goal here is to have a dedicated section of the guide for example,
and all examples will be listed there. Each example's `README` is now
just boilerplate pointing at the guide along with a blurb about how to
run it.

Some examples like `math` and `smorgasboard` have been deleted as they
didn't really serve much purpose, and others like `closures` have been
rewritten with `web-sys` instead of hand-bound bindings.

Overall it's hoped that this puts us in a good and consistent state for
our examples, with all of them being described in the guide, excerpts
are in the guide, and they're all relatively idiomatically using
`web-sys`.
2018-09-20 16:45:30 -07:00
..
src Prepare to have targeted error diagnostics (#604) 2018-08-01 17:15:27 -05:00
ui-tests Reorganize and rewrite examples 2018-09-20 16:45:30 -07:00
Cargo.toml Bump to 0.2.21 2018-09-06 22:10:11 -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.