test_r_macro/
lib.rs

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}