Migrate to trybuild from compiletest

This migrates our UI tests to the recently published `trybuild` crate
which should hopefully be a bit more robust than `compiletest` over
time!
This commit is contained in:
Alex Crichton
2019-05-15 14:46:03 -07:00
parent 79dba40e61
commit 4cc730fc41
34 changed files with 189 additions and 283 deletions

View File

@ -51,7 +51,6 @@ members = [
"benchmarks", "benchmarks",
"crates/cli", "crates/cli",
"crates/js-sys", "crates/js-sys",
"crates/macro/ui-tests",
"crates/test", "crates/test",
"crates/test/sample", "crates/test/sample",
"crates/typescript-tests", "crates/typescript-tests",

View File

@ -115,7 +115,7 @@ jobs:
toolchain: beta toolchain: beta
- template: ci/azure-install-node.yml - template: ci/azure-install-node.yml
- template: ci/azure-install-sccache.yml - template: ci/azure-install-sccache.yml
- script: cargo test -p ui-tests - script: cargo test -p wasm-bindgen-macro
- job: test_wasm_interpreter - job: test_wasm_interpreter
displayName: "Run wasm-bindgen-wasm-interpreter tests" displayName: "Run wasm-bindgen-wasm-interpreter tests"

View File

@ -22,3 +22,7 @@ strict-macro = ["wasm-bindgen-macro-support/strict-macro"]
[dependencies] [dependencies]
wasm-bindgen-macro-support = { path = "../macro-support", version = "=0.2.43" } wasm-bindgen-macro-support = { path = "../macro-support", version = "=0.2.43" }
quote = "0.6" quote = "0.6"
[dev-dependencies]
trybuild = "1.0"
wasm-bindgen = { path = "../..", version = "0.2.43", features = ['strict-macro'] }

5
crates/macro/tests/ui.rs Normal file
View File

@ -0,0 +1,5 @@
#[test]
fn ui() {
let t = trybuild::TestCases::new();
t.compile_fail("ui-tests/*.rs");
}

View File

@ -1,15 +0,0 @@
[package]
name = "ui-tests"
version = "0.1.0"
authors = ["The wasm-bindgen Developers"]
[lib]
path = "test.rs"
doctest = false
harness = false
[dependencies]
wasm-bindgen = { path = "../../..", features = ["strict-macro"] }
[dev-dependencies]
compiletest_rs = { version = "0.3", features = ['stable'] }

View File

@ -1,8 +1,6 @@
#![crate_type = "rlib"]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
#[wasm_bindgen(nonsense)] #[wasm_bindgen(nonsense)]
pub fn foo() {} pub fn foo() {}
fn main() {}

View File

@ -1,8 +1,5 @@
error: unknown attribute error: unknown attribute
--> $DIR/attribute-fails-to-parse.rs:7:16 --> $DIR/attribute-fails-to-parse.rs:3:16
| |
7 | #[wasm_bindgen(nonsense)] 3 | #[wasm_bindgen(nonsense)]
| ^^^^^^^^ | ^^^^^^^^
error: aborting due to previous error

View File

@ -1,7 +1,3 @@
#![crate_type = "rlib"]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
#[wasm_bindgen] #[wasm_bindgen]
@ -13,3 +9,5 @@ extern "C" {
fn foo() -> &u32; fn foo() -> &u32;
} }
fn main() {}

View File

@ -1,20 +1,17 @@
error: cannot return a borrowed ref with #[wasm_bindgen] error: cannot return a borrowed ref with #[wasm_bindgen]
--> $DIR/bad-signatures.rs:8:17 --> $DIR/bad-signatures.rs:4:17
| |
8 | pub fn foo() -> &u32 {} 4 | pub fn foo() -> &u32 {}
| ^^^^ | ^^^^
error: unsupported pattern in #[wasm_bindgen] imported function error: unsupported pattern in #[wasm_bindgen] imported function
--> $DIR/bad-signatures.rs:12:12 --> $DIR/bad-signatures.rs:8:12
| |
12 | fn foo(Foo(x): Foo); 8 | fn foo(Foo(x): Foo);
| ^^^^^^ | ^^^^^^
error: cannot return references in #[wasm_bindgen] imports yet error: cannot return references in #[wasm_bindgen] imports yet
--> $DIR/bad-signatures.rs:14:17 --> $DIR/bad-signatures.rs:10:17
| |
14 | fn foo() -> &u32; 10 | fn foo() -> &u32;
| ^^^^ | ^^^^
error: aborting due to 3 previous errors

View File

@ -1,5 +1,3 @@
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
#[wasm_bindgen(module = "./foo.js")] #[wasm_bindgen(module = "./foo.js")]
@ -9,7 +7,7 @@ extern {
#[wasm_bindgen(module = "../foo.js")] #[wasm_bindgen(module = "../foo.js")]
extern { extern {
fn wut(); fn wut2();
} }
fn main() {} fn main() {}

View File

@ -1,14 +1,11 @@
error: relative module paths aren't supported yet error: relative module paths aren't supported yet
--> $DIR/import-local.rs:5:25 --> $DIR/import-local.rs:3:25
| |
5 | #[wasm_bindgen(module = "./foo.js")] 3 | #[wasm_bindgen(module = "./foo.js")]
| ^^^^^^^^^^ | ^^^^^^^^^^
error: relative module paths aren't supported yet error: relative module paths aren't supported yet
--> $DIR/import-local.rs:10:25 --> $DIR/import-local.rs:8:25
| |
10 | #[wasm_bindgen(module = "../foo.js")] 8 | #[wasm_bindgen(module = "../foo.js")]
| ^^^^^^^^^^^ | ^^^^^^^^^^^
error: aborting due to 2 previous errors

View File

@ -1,7 +1,3 @@
#![crate_type = "rlib"]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
#[wasm_bindgen(x)] #[wasm_bindgen(x)]
@ -15,3 +11,5 @@ extern "C" {
#[wasm_bindgen { }] #[wasm_bindgen { }]
fn bar(); fn bar();
} }
fn main() {}

View File

@ -1,20 +1,17 @@
error: unknown attribute error: unknown attribute
--> $DIR/invalid-attr.rs:7:16 --> $DIR/invalid-attr.rs:3:16
| |
7 | #[wasm_bindgen(x)] 3 | #[wasm_bindgen(x)]
| ^ | ^
error: unknown attribute error: unknown attribute
--> $DIR/invalid-attr.rs:12:20 --> $DIR/invalid-attr.rs:8:20
| |
12 | #[wasm_bindgen(y)] 8 | #[wasm_bindgen(y)]
| ^ | ^
error: malformed #[wasm_bindgen] attribute error: malformed #[wasm_bindgen] attribute
--> $DIR/invalid-attr.rs:15:5 --> $DIR/invalid-attr.rs:11:5
| |
15 | #[wasm_bindgen { }] 11 | #[wasm_bindgen { }]
| ^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^
error: aborting due to 3 previous errors

View File

@ -1,7 +1,3 @@
#![crate_type = "rlib"]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
#[wasm_bindgen] #[wasm_bindgen]
@ -21,3 +17,5 @@ pub enum C {
pub enum D { pub enum D {
X = 4294967296, X = 4294967296,
} }
fn main() {}

View File

@ -1,26 +1,23 @@
error: only public enums are allowed with #[wasm_bindgen] error: only public enums are allowed with #[wasm_bindgen]
--> $DIR/invalid-enums.rs:8:1 --> $DIR/invalid-enums.rs:4:1
| |
8 | enum A {} 4 | enum A {}
| ^^^^^^^^^ | ^^^^^^^^^
error: only C-Style enums allowed with #[wasm_bindgen] error: only C-Style enums allowed with #[wasm_bindgen]
--> $DIR/invalid-enums.rs:12:6 --> $DIR/invalid-enums.rs:8:6
| |
12 | D(u32), 8 | D(u32),
| ^^^^^ | ^^^^^
error: enums with #[wasm_bidngen] may only have number literal values error: enums with #[wasm_bidngen] may only have number literal values
--> $DIR/invalid-enums.rs:17:9 --> $DIR/invalid-enums.rs:13:9
| |
17 | X = 1 + 3, 13 | X = 1 + 3,
| ^^^^^ | ^^^^^
error: enums with #[wasm_bindgen] can only support numbers that can be represented as u32 error: enums with #[wasm_bindgen] can only support numbers that can be represented as u32
--> $DIR/invalid-enums.rs:22:9 --> $DIR/invalid-enums.rs:18:9
| |
22 | X = 4294967296, 18 | X = 4294967296,
| ^^^^^^^^^^ | ^^^^^^^^^^
error: aborting due to 4 previous errors

View File

@ -1,7 +1,3 @@
#![crate_type = "rlib"]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
#[wasm_bindgen] #[wasm_bindgen]
@ -41,3 +37,5 @@ extern "C" {
#[wasm_bindgen(catch)] #[wasm_bindgen(catch)]
fn f() -> Result<'a>; fn f() -> Result<'a>;
} }
fn main() {}

View File

@ -1,92 +1,89 @@
error: it is currently not sound to use lifetimes in function signatures error: it is currently not sound to use lifetimes in function signatures
--> $DIR/invalid-imports.rs:11:16 --> $DIR/invalid-imports.rs:7:16
| |
11 | fn f() -> &'static u32; 7 | fn f() -> &'static u32;
| ^^^^^^^ | ^^^^^^^
error: imported methods must have at least one argument error: imported methods must have at least one argument
--> $DIR/invalid-imports.rs:14:5 --> $DIR/invalid-imports.rs:10:5
| |
14 | fn f1(); 10 | fn f1();
| ^^^^^^^^ | ^^^^^^^^
error: first argument of method must be a shared reference error: first argument of method must be a shared reference
--> $DIR/invalid-imports.rs:16:14 --> $DIR/invalid-imports.rs:12:14
| |
16 | fn f2(x: u32); 12 | fn f2(x: u32);
| ^^^ | ^^^
error: first argument of method must be a path error: first argument of method must be a path
--> $DIR/invalid-imports.rs:18:14 --> $DIR/invalid-imports.rs:14:14
| |
18 | fn f3(x: &&u32); 14 | fn f3(x: &&u32);
| ^^^^^ | ^^^^^
error: multi-segment paths are not supported yet error: multi-segment paths are not supported yet
--> $DIR/invalid-imports.rs:20:15 --> $DIR/invalid-imports.rs:16:15
| |
20 | fn f4(x: &foo::Bar); 16 | fn f4(x: &foo::Bar);
| ^^^^^^^^ | ^^^^^^^^
error: global paths are not supported yet error: global paths are not supported yet
--> $DIR/invalid-imports.rs:22:15 --> $DIR/invalid-imports.rs:18:15
| |
22 | fn f4(x: &::Bar); 18 | fn f4(x: &::Bar);
| ^^^^^ | ^^^^^
error: paths with type parameters are not supported yet error: paths with type parameters are not supported yet
--> $DIR/invalid-imports.rs:24:15 --> $DIR/invalid-imports.rs:20:15
| |
24 | fn f4(x: &Bar<T>); 20 | fn f4(x: &Bar<T>);
| ^^^^^^ | ^^^^^^
error: paths with type parameters are not supported yet error: paths with type parameters are not supported yet
--> $DIR/invalid-imports.rs:26:15 --> $DIR/invalid-imports.rs:22:15
| |
26 | fn f4(x: &Fn(T)); 22 | fn f4(x: &Fn(T));
| ^^^^^ | ^^^^^
error: constructor returns must be bare types error: constructor returns must be bare types
--> $DIR/invalid-imports.rs:29:5 --> $DIR/invalid-imports.rs:25:5
| |
29 | fn f(); 25 | fn f();
| ^^^^^^^ | ^^^^^^^
error: global paths are not supported yet error: global paths are not supported yet
--> $DIR/invalid-imports.rs:31:15 --> $DIR/invalid-imports.rs:27:15
| |
31 | fn f() -> ::Bar; 27 | fn f() -> ::Bar;
| ^^^^^ | ^^^^^
error: return value of constructor must be a bare path error: return value of constructor must be a bare path
--> $DIR/invalid-imports.rs:33:5 --> $DIR/invalid-imports.rs:29:5
| |
33 | fn f() -> &Bar; 29 | fn f() -> &Bar;
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
error: must be Result<...> error: must be Result<...>
--> $DIR/invalid-imports.rs:36:15 --> $DIR/invalid-imports.rs:32:15
| |
36 | fn f() -> u32; 32 | fn f() -> u32;
| ^^^ | ^^^
error: must be Result<...> error: must be Result<...>
--> $DIR/invalid-imports.rs:38:15 --> $DIR/invalid-imports.rs:34:15
| |
38 | fn f() -> &u32; 34 | fn f() -> &u32;
| ^^^^ | ^^^^
error: must have at least one generic parameter error: must have at least one generic parameter
--> $DIR/invalid-imports.rs:40:15 --> $DIR/invalid-imports.rs:36:15
| |
40 | fn f() -> Result<>; 36 | fn f() -> Result<>;
| ^^^^^^^^ | ^^^^^^^^
error: it is currently not sound to use lifetimes in function signatures error: it is currently not sound to use lifetimes in function signatures
--> $DIR/invalid-imports.rs:42:22 --> $DIR/invalid-imports.rs:38:22
| |
42 | fn f() -> Result<'a>; 38 | fn f() -> Result<'a>;
| ^^ | ^^
error: aborting due to 15 previous errors

View File

@ -1,7 +1,3 @@
#![crate_type = "rlib"]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
#[wasm_bindgen] #[wasm_bindgen]
@ -36,3 +32,5 @@ pub fn foo6<'a, T>() {}
#[wasm_bindgen] #[wasm_bindgen]
trait X {} trait X {}
fn main() {}

View File

@ -1,68 +1,65 @@
error: can only #[wasm_bindgen] public functions error: can only #[wasm_bindgen] public functions
--> $DIR/invalid-items.rs:8:1 --> $DIR/invalid-items.rs:4:1
| |
8 | fn foo() {} 4 | fn foo() {}
| ^^^^^^^^^^^ | ^^^^^^^^^^^
error: can only #[wasm_bindgen] safe functions error: can only #[wasm_bindgen] safe functions
--> $DIR/invalid-items.rs:11:5 --> $DIR/invalid-items.rs:7:5
| |
11 | pub unsafe fn foo1() {} 7 | pub unsafe fn foo1() {}
| ^^^^^^ | ^^^^^^
error: can only #[wasm_bindgen] non-const functions error: can only #[wasm_bindgen] non-const functions
--> $DIR/invalid-items.rs:14:5 --> $DIR/invalid-items.rs:10:5
| |
14 | pub const fn foo2() {} 10 | pub const fn foo2() {}
| ^^^^^ | ^^^^^
error: structs with #[wasm_bindgen] cannot have lifetime or type parameters currently error: structs with #[wasm_bindgen] cannot have lifetime or type parameters currently
--> $DIR/invalid-items.rs:17:11 --> $DIR/invalid-items.rs:13:11
| |
17 | struct Foo<T>(T); 13 | struct Foo<T>(T);
| ^^^ | ^^^
error: cannot import mutable globals yet error: cannot import mutable globals yet
--> $DIR/invalid-items.rs:21:12 --> $DIR/invalid-items.rs:17:12
| |
21 | static mut FOO: u32; 17 | static mut FOO: u32;
| ^^^ | ^^^
error: can't #[wasm_bindgen] variadic functions error: can't #[wasm_bindgen] variadic functions
--> $DIR/invalid-items.rs:23:25 --> $DIR/invalid-items.rs:19:25
| |
23 | pub fn foo3(x: i32, ...); 19 | pub fn foo3(x: i32, ...);
| ^^^ | ^^^
error: only foreign mods with the `C` ABI are allowed error: only foreign mods with the `C` ABI are allowed
--> $DIR/invalid-items.rs:27:8 --> $DIR/invalid-items.rs:23:8
| |
27 | extern "system" { 23 | extern "system" {
| ^^^^^^^^ | ^^^^^^^^
error: can't #[wasm_bindgen] functions with lifetime or type parameters
--> $DIR/invalid-items.rs:27:12
|
27 | pub fn foo4<T>() {}
| ^^^
error: can't #[wasm_bindgen] functions with lifetime or type parameters
--> $DIR/invalid-items.rs:29:12
|
29 | pub fn foo5<'a>() {}
| ^^^^
error: can't #[wasm_bindgen] functions with lifetime or type parameters error: can't #[wasm_bindgen] functions with lifetime or type parameters
--> $DIR/invalid-items.rs:31:12 --> $DIR/invalid-items.rs:31:12
| |
31 | pub fn foo4<T>() {} 31 | pub fn foo6<'a, T>() {}
| ^^^
error: can't #[wasm_bindgen] functions with lifetime or type parameters
--> $DIR/invalid-items.rs:33:12
|
33 | pub fn foo5<'a>() {}
| ^^^^
error: can't #[wasm_bindgen] functions with lifetime or type parameters
--> $DIR/invalid-items.rs:35:12
|
35 | pub fn foo6<'a, T>() {}
| ^^^^^^^ | ^^^^^^^
error: #[wasm_bindgen] can only be applied to a function, struct, enum, impl, or extern block error: #[wasm_bindgen] can only be applied to a function, struct, enum, impl, or extern block
--> $DIR/invalid-items.rs:38:1 --> $DIR/invalid-items.rs:34:1
| |
38 | trait X {} 34 | trait X {}
| ^^^^^^^^^^ | ^^^^^^^^^^
error: aborting due to 11 previous errors

View File

@ -1,7 +1,3 @@
#![crate_type = "rlib"]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
#[wasm_bindgen] #[wasm_bindgen]
@ -47,3 +43,5 @@ impl A {
impl A { impl A {
pub unsafe fn foo() {} pub unsafe fn foo() {}
} }
fn main() {}

View File

@ -1,62 +1,67 @@
error: #[wasm_bindgen] default impls are not supported error: #[wasm_bindgen] default impls are not supported
--> $DIR/invalid-methods.rs:11:1 --> $DIR/invalid-methods.rs:7:1
| |
11 | default impl A { 7 | default impl A {
| ^^^^^^^ | ^^^^^^^
error: #[wasm_bindgen] unsafe impls are not supported error: #[wasm_bindgen] unsafe impls are not supported
--> $DIR/invalid-methods.rs:15:1 --> $DIR/invalid-methods.rs:11:1
| |
15 | unsafe impl A { 11 | unsafe impl A {
| ^^^^^^ | ^^^^^^
error: #[wasm_bindgen] trait impls are not supported error: #[wasm_bindgen] trait impls are not supported
--> $DIR/invalid-methods.rs:19:6 --> $DIR/invalid-methods.rs:15:6
| |
19 | impl Clone for A { 15 | impl Clone for A {
| ^^^^^ | ^^^^^
error: #[wasm_bindgen] generic impls aren't supported error: #[wasm_bindgen] generic impls aren't supported
--> $DIR/invalid-methods.rs:23:5 --> $DIR/invalid-methods.rs:19:5
| |
23 | impl<T> A { 19 | impl<T> A {
| ^^^ | ^^^
error: unsupported self type in #[wasm_bindgen] impl error: unsupported self type in #[wasm_bindgen] impl
--> $DIR/invalid-methods.rs:27:6 --> $DIR/invalid-methods.rs:23:6
| |
27 | impl &'static A { 23 | impl &'static A {
| ^^^^^^^^^^ | ^^^^^^^^^^
error: const definitions aren't supported with #[wasm_bindgen] error: const definitions aren't supported with #[wasm_bindgen]
--> $DIR/invalid-methods.rs:34:5 --> $DIR/invalid-methods.rs:30:5
| |
34 | const X: u32 = 3; 30 | const X: u32 = 3;
| ^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^
error: type definitions in impls aren't supported with #[wasm_bindgen] error: type definitions in impls aren't supported with #[wasm_bindgen]
--> $DIR/invalid-methods.rs:35:5 --> $DIR/invalid-methods.rs:31:5
| |
35 | type Y = u32; 31 | type Y = u32;
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: macros in impls aren't supported error: macros in impls aren't supported
--> $DIR/invalid-methods.rs:36:5 --> $DIR/invalid-methods.rs:32:5
| |
36 | x!(); 32 | x!();
| ^^^^^ | ^^^^^
error: can only #[wasm_bindgen] non-const functions error: can only #[wasm_bindgen] non-const functions
--> $DIR/invalid-methods.rs:43:9 --> $DIR/invalid-methods.rs:39:9
| |
43 | pub const fn foo() {} 39 | pub const fn foo() {}
| ^^^^^ | ^^^^^
error: can only bindgen safe functions error: can only bindgen safe functions
--> $DIR/invalid-methods.rs:48:9 --> $DIR/invalid-methods.rs:44:9
| |
48 | pub unsafe fn foo() {} 44 | pub unsafe fn foo() {}
| ^^^^^^ | ^^^^^^
error: aborting due to 10 previous errors warning: unused macro definition
--> $DIR/invalid-methods.rs:26:1
|
26 | macro_rules! x { () => () }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: #[warn(unused_macros)] on by default

View File

@ -1,6 +1,3 @@
#![crate_type = "rlib"]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;

View File

@ -1,8 +1,5 @@
error: setters must start with `set_`, found: a error: setters must start with `set_`, found: a
--> $DIR/invalid-setter.rs:12:8 --> $DIR/invalid-setter.rs:9:8
| |
12 | fn a(this: &A, b: i32); 9 | fn a(this: &A, b: i32);
| ^ | ^
error: aborting due to previous error

View File

@ -1,8 +1,6 @@
#![crate_type = "rlib"]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
#[wasm_bindgen] #[wasm_bindgen]
fn foo() {} fn foo() {}
fn main() {}

View File

@ -1,8 +1,5 @@
error: can only #[wasm_bindgen] public functions error: can only #[wasm_bindgen] public functions
--> $DIR/non-public-function.rs:8:1 --> $DIR/non-public-function.rs:4:1
| |
8 | fn foo() {} 4 | fn foo() {}
| ^^^^^^^^^^^ | ^^^^^^^^^^^
error: aborting due to previous error

View File

@ -1,10 +1,8 @@
#![crate_type = "rlib"]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
#[wasm_bindgen] #[wasm_bindgen]
pub struct A { pub struct A {
pub field: String, pub field: String,
} }
fn main() {}

View File

@ -1,15 +1,13 @@
error[E0277]: the trait bound `std::string::String: std::marker::Copy` is not satisfied error[E0277]: the trait bound `std::string::String: std::marker::Copy` is not satisfied
--> $DIR/pub-not-copy.rs:9:16 --> $DIR/pub-not-copy.rs:5:16
| |
9 | pub field: String, 5 | pub field: String,
| ^^^^^^ the trait `std::marker::Copy` is not implemented for `std::string::String` | ^^^^^^ the trait `std::marker::Copy` is not implemented for `std::string::String`
| |
note: required by `__wbg_get_a_field::assert_copy` note: required by `__wbg_get_a_field::assert_copy`
--> $DIR/pub-not-copy.rs:7:1 --> $DIR/pub-not-copy.rs:3:1
| |
7 | #[wasm_bindgen] 3 | #[wasm_bindgen]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
error: aborting due to previous error
For more information about this error, try `rustc --explain E0277`. For more information about this error, try `rustc --explain E0277`.

View File

@ -1,7 +1,3 @@
#![crate_type = "rlib"]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
#[wasm_bindgen(start)] #[wasm_bindgen(start)]
@ -12,3 +8,5 @@ pub fn foo2(x: u32) {}
#[wasm_bindgen(start)] #[wasm_bindgen(start)]
pub fn foo3<T>() {} pub fn foo3<T>() {}
fn main() {}

View File

@ -1,14 +1,11 @@
error: the start function cannot have arguments error: the start function cannot have arguments
--> $DIR/start-function.rs:11:13 --> $DIR/start-function.rs:7:13
| |
11 | pub fn foo2(x: u32) {} 7 | pub fn foo2(x: u32) {}
| ^^^^^^ | ^^^^^^
error: the start function cannot have generics error: the start function cannot have generics
--> $DIR/start-function.rs:14:12 --> $DIR/start-function.rs:10:12
| |
14 | pub fn foo3<T>() {} 10 | pub fn foo3<T>() {}
| ^^^ | ^^^
error: aborting due to 2 previous errors

View File

@ -1,7 +1,3 @@
#![crate_type = "rlib"]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
#[wasm_bindgen] #[wasm_bindgen]
@ -11,3 +7,5 @@ extern "C" {
#[wasm_bindgen(method, structural, final)] #[wasm_bindgen(method, structural, final)]
fn bar(this: &Foo); fn bar(this: &Foo);
} }
fn main() {}

View File

@ -1,8 +1,5 @@
error: cannot specify both `structural` and `final` error: cannot specify both `structural` and `final`
--> $DIR/structural-and-final.rs:11:40 --> $DIR/structural-and-final.rs:7:40
| |
11 | #[wasm_bindgen(method, structural, final)] 7 | #[wasm_bindgen(method, structural, final)]
| ^^^^^ | ^^^^^
error: aborting due to previous error

View File

@ -1,25 +0,0 @@
// ignore-test - not a test
#![cfg(test)]
extern crate compiletest_rs as compiletest;
use std::env;
use std::fs;
use std::path::PathBuf;
fn main() {
let mut config = compiletest::Config::default();
config.mode = "ui".parse().expect("invalid mode");
let mut me = env::current_exe().unwrap();
me.pop();
config.target_rustcflags = Some(format!("-L {}", me.display()));
let src = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
config.src_base = src;
me.pop();
me.pop();
config.build_base = me.join("tests/ui");
drop(fs::remove_dir_all(&config.build_base));
compiletest::run_tests(&config);
}

View File

@ -1,7 +1,3 @@
#![crate_type = "rlib"]
extern crate wasm_bindgen;
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
struct A; struct A;
@ -13,3 +9,5 @@ impl A {
pub fn foo() { pub fn foo() {
} }
} }
fn main() {}

View File

@ -1,14 +1,11 @@
error: unused #[wasm_bindgen] attribute error: unused #[wasm_bindgen] attribute
--> $DIR/unused-attributes.rs:11:20 --> $DIR/unused-attributes.rs:7:20
| |
11 | #[wasm_bindgen(method)] 7 | #[wasm_bindgen(method)]
| ^^^^^^ | ^^^^^^
error: unused #[wasm_bindgen] attribute error: unused #[wasm_bindgen] attribute
--> $DIR/unused-attributes.rs:12:20 --> $DIR/unused-attributes.rs:8:20
| |
12 | #[wasm_bindgen(method)] 8 | #[wasm_bindgen(method)]
| ^^^^^^ | ^^^^^^
error: aborting due to 2 previous errors