sim: Allow arguments to test entrypoints
Instead of a growing number of no-argument methods that just call other
methods with fixed arguments, change the `sim_test` macro to pass
through arguments to the test methods. This will make it easier to
further parameterize the test entrypoints.
Signed-off-by: David Brown <david.brown@linaro.org>
diff --git a/sim/tests/core.rs b/sim/tests/core.rs
index 3253ddf..883ed43 100644
--- a/sim/tests/core.rs
+++ b/sim/tests/core.rs
@@ -5,25 +5,25 @@
use bootsim::{ImagesBuilder, testlog};
macro_rules! sim_test {
- ($name:ident, $maker:ident, $test:ident) => {
+ ($name:ident, $maker:ident($($margs:expr),*), $test:ident($($targs:expr),*)) => {
#[test]
fn $name() {
testlog::setup();
ImagesBuilder::each_device(|r| {
- let image = r.$maker();
- assert!(!image.$test());
+ let image = r.$maker($($margs),*);
+ assert!(!image.$test($($targs),*));
});
}
};
}
-sim_test!(bad_secondary_slot, make_bad_secondary_slot_image, run_signfail_upgrade);
-sim_test!(norevert_newimage, make_no_upgrade_image, run_norevert_newimage);
-sim_test!(basic_revert, make_image, run_basic_revert);
-sim_test!(revert_with_fails, make_non_permanent_image, run_revert_with_fails);
-sim_test!(perm_with_fails, make_image, run_perm_with_fails);
-sim_test!(perm_with_random_fails, make_image, run_perm_with_random_fails_5);
-sim_test!(norevert, make_image, run_norevert);
-sim_test!(status_write_fails_complete, make_image, run_with_status_fails_complete);
-sim_test!(status_write_fails_with_reset, make_image, run_with_status_fails_with_reset);
+sim_test!(bad_secondary_slot, make_bad_secondary_slot_image(), run_signfail_upgrade());
+sim_test!(norevert_newimage, make_no_upgrade_image(), run_norevert_newimage());
+sim_test!(basic_revert, make_image(true), run_basic_revert());
+sim_test!(revert_with_fails, make_image(false), run_revert_with_fails());
+sim_test!(perm_with_fails, make_image(true), run_perm_with_fails());
+sim_test!(perm_with_random_fails, make_image(true), run_perm_with_random_fails(5));
+sim_test!(norevert, make_image(true), run_norevert());
+sim_test!(status_write_fails_complete, make_image(true), run_with_status_fails_complete());
+sim_test!(status_write_fails_with_reset, make_image(true), run_with_status_fails_with_reset());