aboutsummaryrefslogtreecommitdiff
path: root/proc-macro-error/test-crate/tests
diff options
context:
space:
mode:
Diffstat (limited to 'proc-macro-error/test-crate/tests')
-rw-r--r--proc-macro-error/test-crate/tests/macro-errors.rs6
-rw-r--r--proc-macro-error/test-crate/tests/ok.rs9
-rw-r--r--proc-macro-error/test-crate/tests/ui/abort.rs6
-rw-r--r--proc-macro-error/test-crate/tests/ui/abort.stderr8
-rw-r--r--proc-macro-error/test-crate/tests/ui/call_site.rs6
-rw-r--r--proc-macro-error/test-crate/tests/ui/call_site.stderr8
-rw-r--r--proc-macro-error/test-crate/tests/ui/direct_abort.rs6
-rw-r--r--proc-macro-error/test-crate/tests/ui/direct_abort.stderr5
-rw-r--r--proc-macro-error/test-crate/tests/ui/dummy.rs16
-rw-r--r--proc-macro-error/test-crate/tests/ui/dummy.stderr5
-rw-r--r--proc-macro-error/test-crate/tests/ui/multi-error.rs6
-rw-r--r--proc-macro-error/test-crate/tests/ui/multi-error.stderr32
-rw-r--r--proc-macro-error/test-crate/tests/ui/not_proc_macro.rs4
-rw-r--r--proc-macro-error/test-crate/tests/ui/not_proc_macro.stderr8
-rw-r--r--proc-macro-error/test-crate/tests/ui/option_expect.rs6
-rw-r--r--proc-macro-error/test-crate/tests/ui/option_expect.stderr5
-rw-r--r--proc-macro-error/test-crate/tests/ui/result_expect.rs6
-rw-r--r--proc-macro-error/test-crate/tests/ui/result_expect.stderr5
-rw-r--r--proc-macro-error/test-crate/tests/ui/result_unwrap.rs6
-rw-r--r--proc-macro-error/test-crate/tests/ui/result_unwrap.stderr5
-rw-r--r--proc-macro-error/test-crate/tests/ui/unknown_setting.rs4
-rw-r--r--proc-macro-error/test-crate/tests/ui/unknown_setting.stderr5
-rw-r--r--proc-macro-error/test-crate/tests/ui/unrelated_panic.rs6
-rw-r--r--proc-macro-error/test-crate/tests/ui/unrelated_panic.stderr7
24 files changed, 180 insertions, 0 deletions
diff --git a/proc-macro-error/test-crate/tests/macro-errors.rs b/proc-macro-error/test-crate/tests/macro-errors.rs
new file mode 100644
index 0000000..8c672eb
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/macro-errors.rs
@@ -0,0 +1,6 @@
+#[rustversion::attr(any(not(stable), before(1.39)), ignore)]
+#[test]
+fn ui() {
+ let t = trybuild::TestCases::new();
+ t.compile_fail("tests/ui/*.rs");
+}
diff --git a/proc-macro-error/test-crate/tests/ok.rs b/proc-macro-error/test-crate/tests/ok.rs
new file mode 100644
index 0000000..9b6a3d1
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ok.rs
@@ -0,0 +1,9 @@
+extern crate test_crate;
+
+use test_crate::make_fn;
+
+make_fn!(it, _, works);
+
+fn main() {
+ it_works();
+}
diff --git a/proc-macro-error/test-crate/tests/ui/abort.rs b/proc-macro-error/test-crate/tests/ui/abort.rs
new file mode 100644
index 0000000..717d772
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/abort.rs
@@ -0,0 +1,6 @@
+extern crate test_crate;
+use test_crate::make_fn;
+
+make_fn!(abort);
+
+fn main() {}
diff --git a/proc-macro-error/test-crate/tests/ui/abort.stderr b/proc-macro-error/test-crate/tests/ui/abort.stderr
new file mode 100644
index 0000000..7c4e6a0
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/abort.stderr
@@ -0,0 +1,8 @@
+error: abort! 3+ args test
+
+ = help: help message test
+
+ --> $DIR/abort.rs:4:10
+ |
+4 | make_fn!(abort);
+ | ^^^^^
diff --git a/proc-macro-error/test-crate/tests/ui/call_site.rs b/proc-macro-error/test-crate/tests/ui/call_site.rs
new file mode 100644
index 0000000..7184cc4
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/call_site.rs
@@ -0,0 +1,6 @@
+extern crate test_crate;
+use test_crate::make_fn;
+
+make_fn!(abort_call_site);
+
+fn main() {}
diff --git a/proc-macro-error/test-crate/tests/ui/call_site.stderr b/proc-macro-error/test-crate/tests/ui/call_site.stderr
new file mode 100644
index 0000000..d630a3a
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/call_site.stderr
@@ -0,0 +1,8 @@
+error: abort_call_site! 2+ args test
+
+ = help: help message test
+
+ --> $DIR/call_site.rs:4:1
+ |
+4 | make_fn!(abort_call_site);
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation
diff --git a/proc-macro-error/test-crate/tests/ui/direct_abort.rs b/proc-macro-error/test-crate/tests/ui/direct_abort.rs
new file mode 100644
index 0000000..b5a4c97
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/direct_abort.rs
@@ -0,0 +1,6 @@
+extern crate test_crate;
+use test_crate::make_fn;
+
+make_fn!(direct_abort);
+
+fn main() {}
diff --git a/proc-macro-error/test-crate/tests/ui/direct_abort.stderr b/proc-macro-error/test-crate/tests/ui/direct_abort.stderr
new file mode 100644
index 0000000..7cfbae8
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/direct_abort.stderr
@@ -0,0 +1,5 @@
+error: direct MacroError::abort() test
+ --> $DIR/direct_abort.rs:4:10
+ |
+4 | make_fn!(direct_abort);
+ | ^^^^^^^^^^^^
diff --git a/proc-macro-error/test-crate/tests/ui/dummy.rs b/proc-macro-error/test-crate/tests/ui/dummy.rs
new file mode 100644
index 0000000..7514fe0
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/dummy.rs
@@ -0,0 +1,16 @@
+extern crate test_crate;
+use test_crate::make_fn;
+
+enum NeedDefault {
+ A,
+ B
+}
+
+make_fn!(need_default);
+
+fn main() {
+ let _ = NeedDefault::default();
+}
+
+
+
diff --git a/proc-macro-error/test-crate/tests/ui/dummy.stderr b/proc-macro-error/test-crate/tests/ui/dummy.stderr
new file mode 100644
index 0000000..fd531be
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/dummy.stderr
@@ -0,0 +1,5 @@
+error: set_dummy test
+ --> $DIR/dummy.rs:9:10
+ |
+9 | make_fn!(need_default);
+ | ^^^^^^^^^^^^
diff --git a/proc-macro-error/test-crate/tests/ui/multi-error.rs b/proc-macro-error/test-crate/tests/ui/multi-error.rs
new file mode 100644
index 0000000..07fbb03
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/multi-error.rs
@@ -0,0 +1,6 @@
+extern crate test_crate;
+use test_crate::make_fn;
+
+make_fn!(multi1, multi2, _, multi3);
+
+fn main() {}
diff --git a/proc-macro-error/test-crate/tests/ui/multi-error.stderr b/proc-macro-error/test-crate/tests/ui/multi-error.stderr
new file mode 100644
index 0000000..25174d5
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/multi-error.stderr
@@ -0,0 +1,32 @@
+error: multiple error part: multi1
+
+ = note: help message test
+ = help: Option help test
+ = note: I see what you did here...
+
+ --> $DIR/multi-error.rs:4:10
+ |
+4 | make_fn!(multi1, multi2, _, multi3);
+ | ^^^^^^
+
+error: multiple error part: multi2
+
+ = note: help message test
+ = help: Option help test
+ = note: I see what you did here...
+
+ --> $DIR/multi-error.rs:4:18
+ |
+4 | make_fn!(multi1, multi2, _, multi3);
+ | ^^^^^^
+
+error: multiple error part: multi3
+
+ = note: help message test
+ = help: Option help test
+ = note: I see what you did here...
+
+ --> $DIR/multi-error.rs:4:29
+ |
+4 | make_fn!(multi1, multi2, _, multi3);
+ | ^^^^^^
diff --git a/proc-macro-error/test-crate/tests/ui/not_proc_macro.rs b/proc-macro-error/test-crate/tests/ui/not_proc_macro.rs
new file mode 100644
index 0000000..e241c5c
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/not_proc_macro.rs
@@ -0,0 +1,4 @@
+use proc_macro_error::proc_macro_error;
+
+#[proc_macro_error]
+fn main() {}
diff --git a/proc-macro-error/test-crate/tests/ui/not_proc_macro.stderr b/proc-macro-error/test-crate/tests/ui/not_proc_macro.stderr
new file mode 100644
index 0000000..52d6a09
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/not_proc_macro.stderr
@@ -0,0 +1,8 @@
+error: #[proc_macro_error] attribute can be used only with a proc-macro
+
+ hint: if you are really sure that #[proc_macro_error] should be applied to this exact function use #[proc_macro_error(allow_not_macro)]
+
+ --> $DIR/not_proc_macro.rs:3:1
+ |
+3 | #[proc_macro_error]
+ | ^^^^^^^^^^^^^^^^^^^
diff --git a/proc-macro-error/test-crate/tests/ui/option_expect.rs b/proc-macro-error/test-crate/tests/ui/option_expect.rs
new file mode 100644
index 0000000..20288ca
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/option_expect.rs
@@ -0,0 +1,6 @@
+extern crate test_crate;
+use test_crate::make_fn;
+
+make_fn!(option_expect);
+
+fn main() {}
diff --git a/proc-macro-error/test-crate/tests/ui/option_expect.stderr b/proc-macro-error/test-crate/tests/ui/option_expect.stderr
new file mode 100644
index 0000000..dd9ecd8
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/option_expect.stderr
@@ -0,0 +1,5 @@
+error: Option::expect_or_abort() test
+ --> $DIR/option_expect.rs:4:1
+ |
+4 | make_fn!(option_expect);
+ | ^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation
diff --git a/proc-macro-error/test-crate/tests/ui/result_expect.rs b/proc-macro-error/test-crate/tests/ui/result_expect.rs
new file mode 100644
index 0000000..a42740b
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/result_expect.rs
@@ -0,0 +1,6 @@
+extern crate test_crate;
+use test_crate::make_fn;
+
+make_fn!(result_expect);
+
+fn main() {}
diff --git a/proc-macro-error/test-crate/tests/ui/result_expect.stderr b/proc-macro-error/test-crate/tests/ui/result_expect.stderr
new file mode 100644
index 0000000..c2dd81c
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/result_expect.stderr
@@ -0,0 +1,5 @@
+error: Result::expect_or_abort() test: error
+ --> $DIR/result_expect.rs:4:10
+ |
+4 | make_fn!(result_expect);
+ | ^^^^^^^^^^^^^
diff --git a/proc-macro-error/test-crate/tests/ui/result_unwrap.rs b/proc-macro-error/test-crate/tests/ui/result_unwrap.rs
new file mode 100644
index 0000000..9b7fb1c
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/result_unwrap.rs
@@ -0,0 +1,6 @@
+extern crate test_crate;
+use test_crate::make_fn;
+
+make_fn!(result_unwrap);
+
+fn main() {}
diff --git a/proc-macro-error/test-crate/tests/ui/result_unwrap.stderr b/proc-macro-error/test-crate/tests/ui/result_unwrap.stderr
new file mode 100644
index 0000000..2e614bd
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/result_unwrap.stderr
@@ -0,0 +1,5 @@
+error: Result::unwrap_or_abort() test
+ --> $DIR/result_unwrap.rs:4:10
+ |
+4 | make_fn!(result_unwrap);
+ | ^^^^^^^^^^^^^
diff --git a/proc-macro-error/test-crate/tests/ui/unknown_setting.rs b/proc-macro-error/test-crate/tests/ui/unknown_setting.rs
new file mode 100644
index 0000000..d8e58ea
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/unknown_setting.rs
@@ -0,0 +1,4 @@
+use proc_macro_error::proc_macro_error;
+
+#[proc_macro_error(allow_not_macro, assert_unwind_safe, trololo)]
+fn main() {}
diff --git a/proc-macro-error/test-crate/tests/ui/unknown_setting.stderr b/proc-macro-error/test-crate/tests/ui/unknown_setting.stderr
new file mode 100644
index 0000000..a55de0b
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/unknown_setting.stderr
@@ -0,0 +1,5 @@
+error: unknown setting `trololo`, expected one of `assert_unwind_safe`, `allow_not_macro`, `proc_macro_hack`
+ --> $DIR/unknown_setting.rs:3:57
+ |
+3 | #[proc_macro_error(allow_not_macro, assert_unwind_safe, trololo)]
+ | ^^^^^^^
diff --git a/proc-macro-error/test-crate/tests/ui/unrelated_panic.rs b/proc-macro-error/test-crate/tests/ui/unrelated_panic.rs
new file mode 100644
index 0000000..4863e5b
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/unrelated_panic.rs
@@ -0,0 +1,6 @@
+extern crate test_crate;
+use test_crate::make_fn;
+
+make_fn!();
+
+fn main() {}
diff --git a/proc-macro-error/test-crate/tests/ui/unrelated_panic.stderr b/proc-macro-error/test-crate/tests/ui/unrelated_panic.stderr
new file mode 100644
index 0000000..b852cfd
--- /dev/null
+++ b/proc-macro-error/test-crate/tests/ui/unrelated_panic.stderr
@@ -0,0 +1,7 @@
+error: proc macro panicked
+ --> $DIR/unrelated_panic.rs:4:1
+ |
+4 | make_fn!();
+ | ^^^^^^^^^^^
+ |
+ = help: message: unrelated panic test