xref: /aosp_15_r20/platform_testing/libraries/rdroidtest/tests/raw.rs (revision dd0948b35e70be4c0246aabd6c72554a5eb8b22a)
1*dd0948b3SAndroid Build Coastguard Worker //! Test use of `rdroidtest`.
2*dd0948b3SAndroid Build Coastguard Worker 
3*dd0948b3SAndroid Build Coastguard Worker use rdroidtest::{ptest, test};
4*dd0948b3SAndroid Build Coastguard Worker 
5*dd0948b3SAndroid Build Coastguard Worker // Tests using raw declarative macros.
6*dd0948b3SAndroid Build Coastguard Worker 
7*dd0948b3SAndroid Build Coastguard Worker test!(one_plus_one);
one_plus_one()8*dd0948b3SAndroid Build Coastguard Worker fn one_plus_one() {
9*dd0948b3SAndroid Build Coastguard Worker     let result = 1 + 1;
10*dd0948b3SAndroid Build Coastguard Worker     assert_eq!(result, 2);
11*dd0948b3SAndroid Build Coastguard Worker }
12*dd0948b3SAndroid Build Coastguard Worker 
13*dd0948b3SAndroid Build Coastguard Worker test!(grumble, ignore_if: feeling_happy());
grumble()14*dd0948b3SAndroid Build Coastguard Worker fn grumble() {
15*dd0948b3SAndroid Build Coastguard Worker     let result = 1 + 1;
16*dd0948b3SAndroid Build Coastguard Worker     assert_eq!(result, 2);
17*dd0948b3SAndroid Build Coastguard Worker }
18*dd0948b3SAndroid Build Coastguard Worker 
19*dd0948b3SAndroid Build Coastguard Worker test!(clap_hands, ignore_if: !feeling_happy());
clap_hands()20*dd0948b3SAndroid Build Coastguard Worker fn clap_hands() {
21*dd0948b3SAndroid Build Coastguard Worker     let result = 1 + 1;
22*dd0948b3SAndroid Build Coastguard Worker     assert_eq!(result, 3);
23*dd0948b3SAndroid Build Coastguard Worker }
24*dd0948b3SAndroid Build Coastguard Worker 
feeling_happy() -> bool25*dd0948b3SAndroid Build Coastguard Worker fn feeling_happy() -> bool {
26*dd0948b3SAndroid Build Coastguard Worker     false
27*dd0948b3SAndroid Build Coastguard Worker }
28*dd0948b3SAndroid Build Coastguard Worker 
29*dd0948b3SAndroid Build Coastguard Worker ptest!(is_less_than_five, my_instances());
is_less_than_five(param: u32)30*dd0948b3SAndroid Build Coastguard Worker fn is_less_than_five(param: u32) {
31*dd0948b3SAndroid Build Coastguard Worker     assert!(param < 5);
32*dd0948b3SAndroid Build Coastguard Worker }
33*dd0948b3SAndroid Build Coastguard Worker 
34*dd0948b3SAndroid Build Coastguard Worker ptest!(is_even, my_instances(), ignore_if: feeling_odd);
is_even(param: u32)35*dd0948b3SAndroid Build Coastguard Worker fn is_even(param: u32) {
36*dd0948b3SAndroid Build Coastguard Worker     assert_eq!(param % 2, 0);
37*dd0948b3SAndroid Build Coastguard Worker }
38*dd0948b3SAndroid Build Coastguard Worker 
39*dd0948b3SAndroid Build Coastguard Worker ptest!(is_odd, my_instances(), ignore_if: |p| !feeling_odd(p));
is_odd(param: u32)40*dd0948b3SAndroid Build Coastguard Worker fn is_odd(param: u32) {
41*dd0948b3SAndroid Build Coastguard Worker     assert_eq!(param % 2, 1);
42*dd0948b3SAndroid Build Coastguard Worker }
43*dd0948b3SAndroid Build Coastguard Worker 
feeling_odd(param: &u32) -> bool44*dd0948b3SAndroid Build Coastguard Worker fn feeling_odd(param: &u32) -> bool {
45*dd0948b3SAndroid Build Coastguard Worker     *param % 2 == 1
46*dd0948b3SAndroid Build Coastguard Worker }
47*dd0948b3SAndroid Build Coastguard Worker 
my_instances() -> Vec<(String, u32)>48*dd0948b3SAndroid Build Coastguard Worker fn my_instances() -> Vec<(String, u32)> {
49*dd0948b3SAndroid Build Coastguard Worker     vec![("one".to_string(), 1), ("two".to_string(), 2), ("three".to_string(), 3)]
50*dd0948b3SAndroid Build Coastguard Worker }
51*dd0948b3SAndroid Build Coastguard Worker 
52*dd0948b3SAndroid Build Coastguard Worker ptest!(is_odder, wrapped_instances(), ignore_if: |p| !feeling_odder(p));
is_odder(param: Param)53*dd0948b3SAndroid Build Coastguard Worker fn is_odder(param: Param) {
54*dd0948b3SAndroid Build Coastguard Worker     assert_eq!(param.0 % 2, 1);
55*dd0948b3SAndroid Build Coastguard Worker }
56*dd0948b3SAndroid Build Coastguard Worker 
feeling_odder(param: &Param) -> bool57*dd0948b3SAndroid Build Coastguard Worker fn feeling_odder(param: &Param) -> bool {
58*dd0948b3SAndroid Build Coastguard Worker     param.0 % 2 == 1
59*dd0948b3SAndroid Build Coastguard Worker }
60*dd0948b3SAndroid Build Coastguard Worker 
61*dd0948b3SAndroid Build Coastguard Worker struct Param(u32);
62*dd0948b3SAndroid Build Coastguard Worker 
wrapped_instances() -> Vec<(String, Param)>63*dd0948b3SAndroid Build Coastguard Worker fn wrapped_instances() -> Vec<(String, Param)> {
64*dd0948b3SAndroid Build Coastguard Worker     vec![
65*dd0948b3SAndroid Build Coastguard Worker         ("one".to_string(), Param(1)),
66*dd0948b3SAndroid Build Coastguard Worker         ("two".to_string(), Param(2)),
67*dd0948b3SAndroid Build Coastguard Worker         ("three".to_string(), Param(3)),
68*dd0948b3SAndroid Build Coastguard Worker     ]
69*dd0948b3SAndroid Build Coastguard Worker }
70*dd0948b3SAndroid Build Coastguard Worker 
71*dd0948b3SAndroid Build Coastguard Worker ptest!(is_the_one, more_instances(), ignore_if: |p| p != "one");
is_the_one(param: String)72*dd0948b3SAndroid Build Coastguard Worker fn is_the_one(param: String) {
73*dd0948b3SAndroid Build Coastguard Worker     assert_eq!(param, "one");
74*dd0948b3SAndroid Build Coastguard Worker }
75*dd0948b3SAndroid Build Coastguard Worker 
more_instances() -> Vec<(String, String)>76*dd0948b3SAndroid Build Coastguard Worker fn more_instances() -> Vec<(String, String)> {
77*dd0948b3SAndroid Build Coastguard Worker     vec![("one".to_string(), "one".to_string()), ("two".to_string(), "two".to_string())]
78*dd0948b3SAndroid Build Coastguard Worker }
79