diff options
Diffstat (limited to 'test cases')
-rw-r--r-- | test cases/failing/54 wrong shared crate type/test.json | 2 | ||||
-rw-r--r-- | test cases/rust/18 proc-macro/meson.build | 19 | ||||
-rw-r--r-- | test cases/rust/18 proc-macro/proc.rs | 7 | ||||
-rw-r--r-- | test cases/rust/18 proc-macro/use.rs | 8 |
4 files changed, 35 insertions, 1 deletions
diff --git a/test cases/failing/54 wrong shared crate type/test.json b/test cases/failing/54 wrong shared crate type/test.json index 5cced6f..a5b7961 100644 --- a/test cases/failing/54 wrong shared crate type/test.json +++ b/test cases/failing/54 wrong shared crate type/test.json @@ -1,7 +1,7 @@ { "stdout": [ { - "line": "test cases/failing/54 wrong shared crate type/meson.build:7:0: ERROR: Crate type \"staticlib\" invalid for dynamic libraries; must be \"dylib\" or \"cdylib\"" + "line": "test cases/failing/54 wrong shared crate type/meson.build:7:0: ERROR: Crate type \"staticlib\" invalid for dynamic libraries; must be \"dylib\", \"cdylib\", or \"proc-macro\"" } ] } diff --git a/test cases/rust/18 proc-macro/meson.build b/test cases/rust/18 proc-macro/meson.build new file mode 100644 index 0000000..01c4cbe --- /dev/null +++ b/test cases/rust/18 proc-macro/meson.build @@ -0,0 +1,19 @@ +project('rust proc-macro', 'rust') + +if build_machine.system() != 'linux' + error('MESON_SKIP_TEST, this test only works on Linux. Patches welcome.') +endif + +pm = shared_library( + 'proc_macro_examples', + 'proc.rs', + rust_crate_type : 'proc-macro', +) + +main = executable( + 'main', + 'use.rs', + link_with : pm +) + +test('main_test', main) diff --git a/test cases/rust/18 proc-macro/proc.rs b/test cases/rust/18 proc-macro/proc.rs new file mode 100644 index 0000000..53935e4 --- /dev/null +++ b/test cases/rust/18 proc-macro/proc.rs @@ -0,0 +1,7 @@ +extern crate proc_macro; +use proc_macro::TokenStream; + +#[proc_macro] +pub fn make_answer(_item: TokenStream) -> TokenStream { + "fn answer() -> u32 { 42 }".parse().unwrap() +} diff --git a/test cases/rust/18 proc-macro/use.rs b/test cases/rust/18 proc-macro/use.rs new file mode 100644 index 0000000..0b6342b --- /dev/null +++ b/test cases/rust/18 proc-macro/use.rs @@ -0,0 +1,8 @@ +extern crate proc_macro_examples; +use proc_macro_examples::make_answer; + +make_answer!(); + +fn main() { + assert_eq!(42, answer()); +} |