blob: 883ed430a8d72434e08d72eb01b3c4597df3cfbe [file] [log] [blame]
David Browndd2b1182017-11-02 15:39:21 -06001//! Core tests
2//!
3//! Run the existing testsuite as a Rust unit test.
4
David Browne5133242019-02-28 11:05:19 -07005use bootsim::{ImagesBuilder, testlog};
David Browndd2b1182017-11-02 15:39:21 -06006
David Browna4167ef2017-11-06 14:30:05 -07007macro_rules! sim_test {
David Browneebf5022019-07-30 15:01:07 -06008 ($name:ident, $maker:ident($($margs:expr),*), $test:ident($($targs:expr),*)) => {
David Browna4167ef2017-11-06 14:30:05 -07009 #[test]
10 fn $name() {
11 testlog::setup();
David Brownca7b5d32017-11-03 08:37:38 -060012
David Browne5133242019-02-28 11:05:19 -070013 ImagesBuilder::each_device(|r| {
David Browneebf5022019-07-30 15:01:07 -060014 let image = r.$maker($($margs),*);
15 assert!(!image.$test($($targs),*));
David Browna4167ef2017-11-06 14:30:05 -070016 });
David Browndd2b1182017-11-02 15:39:21 -060017 }
David Browna4167ef2017-11-06 14:30:05 -070018 };
David Browndd2b1182017-11-02 15:39:21 -060019}
David Browna4167ef2017-11-06 14:30:05 -070020
David Browneebf5022019-07-30 15:01:07 -060021sim_test!(bad_secondary_slot, make_bad_secondary_slot_image(), run_signfail_upgrade());
22sim_test!(norevert_newimage, make_no_upgrade_image(), run_norevert_newimage());
23sim_test!(basic_revert, make_image(true), run_basic_revert());
24sim_test!(revert_with_fails, make_image(false), run_revert_with_fails());
25sim_test!(perm_with_fails, make_image(true), run_perm_with_fails());
26sim_test!(perm_with_random_fails, make_image(true), run_perm_with_random_fails(5));
27sim_test!(norevert, make_image(true), run_norevert());
28sim_test!(status_write_fails_complete, make_image(true), run_with_status_fails_complete());
29sim_test!(status_write_fails_with_reset, make_image(true), run_with_status_fails_with_reset());