1mod deps;
2mod dynamic;
3mod helpers;
4mod suite;
5mod test;
6
7use proc_macro::TokenStream;
8
9#[proc_macro]
10pub fn uses_test_r(_item: TokenStream) -> TokenStream {
11 r#"
12 #[cfg(test)]
13 pub fn main() -> std::process::ExitCode {
14 test_r::core::test_runner()
15 }
16 "#
17 .parse()
18 .unwrap()
19}
20
21#[proc_macro_attribute]
22pub fn test(attr: TokenStream, item: TokenStream) -> TokenStream {
23 test::test_impl(attr, item, false)
24}
25
26#[proc_macro_attribute]
27pub fn bench(attr: TokenStream, item: TokenStream) -> TokenStream {
28 test::test_impl(attr, item, true)
29}
30
31#[proc_macro]
32pub fn inherit_test_dep(item: TokenStream) -> TokenStream {
33 deps::inherit_test_dep(item)
34}
35
36#[proc_macro]
37pub fn define_matrix_dimension(item: TokenStream) -> TokenStream {
38 deps::define_matrix_dimension(item)
39}
40
41#[proc_macro_attribute]
42pub fn test_dep(attr: TokenStream, item: TokenStream) -> TokenStream {
43 deps::test_dep(attr, item)
44}
45
46#[proc_macro_attribute]
47pub fn test_gen(_attr: TokenStream, item: TokenStream) -> TokenStream {
48 dynamic::test_gen(item)
49}
50
51#[proc_macro]
52pub fn add_test(input: TokenStream) -> TokenStream {
53 dynamic::add_test(input)
54}
55
56#[proc_macro_attribute]
57pub fn timeout(_attr: TokenStream, item: TokenStream) -> TokenStream {
58 item
59}
60
61#[proc_macro_attribute]
62pub fn flaky(_attr: TokenStream, item: TokenStream) -> TokenStream {
63 item
64}
65
66#[proc_macro_attribute]
67pub fn non_flaky(_attr: TokenStream, item: TokenStream) -> TokenStream {
68 item
69}
70
71#[proc_macro_attribute]
72pub fn always_capture(_attr: TokenStream, item: TokenStream) -> TokenStream {
73 item
74}
75
76#[proc_macro_attribute]
77pub fn never_capture(_attr: TokenStream, item: TokenStream) -> TokenStream {
78 item
79}
80
81#[proc_macro_attribute]
82pub fn always_report_time(_attr: TokenStream, item: TokenStream) -> TokenStream {
83 item
84}
85
86#[proc_macro_attribute]
87pub fn never_report_time(_attr: TokenStream, item: TokenStream) -> TokenStream {
88 item
89}
90
91#[proc_macro_attribute]
92pub fn always_ensure_time(_attr: TokenStream, item: TokenStream) -> TokenStream {
93 item
94}
95
96#[proc_macro_attribute]
97pub fn never_ensure_time(_attr: TokenStream, item: TokenStream) -> TokenStream {
98 item
99}
100
101#[proc_macro_attribute]
102pub fn tag(attr: TokenStream, item: TokenStream) -> TokenStream {
103 suite::tag(attr, item)
104}
105
106#[proc_macro]
107pub fn tag_suite(input: TokenStream) -> TokenStream {
108 suite::tag_suite(input)
109}
110
111#[proc_macro_attribute]
112pub fn sequential(_attr: TokenStream, item: TokenStream) -> TokenStream {
113 suite::sequential(item)
114}
115
116#[proc_macro]
117pub fn sequential_suite(input: TokenStream) -> TokenStream {
118 suite::sequential_suite(input)
119}