sim: Enable logging in simulator test cases
When running simulations as unit tests, use a workaround from
https://stackoverflow.com/questions/30177845/how-to-initialize-the-logger-for-integration-tests
to initialize the logging system.
Signed-off-by: David Brown <david.brown@linaro.org>
diff --git a/sim/src/lib.rs b/sim/src/lib.rs
index fe2d52e..d42a7b7 100644
--- a/sim/src/lib.rs
+++ b/sim/src/lib.rs
@@ -21,6 +21,7 @@
mod caps;
mod tlv;
+pub mod testlog;
use simflash::{Flash, SimFlash};
use mcuboot_sys::{c, AreaDesc, FlashId};
diff --git a/sim/src/testlog.rs b/sim/src/testlog.rs
new file mode 100644
index 0000000..c62e007
--- /dev/null
+++ b/sim/src/testlog.rs
@@ -0,0 +1,19 @@
+//! Logging support for the test framework.
+//!
+//! https://stackoverflow.com/questions/30177845/how-to-initialize-the-logger-for-integration-tests
+//!
+//! The test framework runs the tests, possibly simultaneously, and in various orders. This helper
+//! function, which should be called at the beginning of each test, will setup logging for all of
+//! the tests.
+
+use env_logger;
+use std::sync::{Once, ONCE_INIT};
+
+static INIT: Once = ONCE_INIT;
+
+/// Setup the logging system. Intended to be called at the beginning of each test.
+pub fn setup() {
+ INIT.call_once(|| {
+ env_logger::init().unwrap();
+ });
+}