| // Configuration for integration tests. This crate is about interacting with real serial ports and |
| // so some tests need actual hardware. |
| |
| use envconfig::Envconfig; |
| use rstest::fixture; |
| |
| // Configuration for tests requiring acutual hardware. |
| // |
| // For conveniently pulling this configuration into a test case as a parameter, you might want to |
| // use the test fixture [`hw_config`]. |
| #[derive(Clone, Debug, Envconfig, Eq, PartialEq)] |
| pub struct HardwareConfig { |
| #[envconfig(from = "SERIALPORT_TEST_PORT_1")] |
| pub port_1: String, |
| #[envconfig(from = "SERIALPORT_TEST_PORT_2")] |
| pub port_2: String, |
| } |
| |
| // Test fixture for conveniently pulling the actual hardware configuration into test cases. |
| // |
| // See [`fixture`](rstest::fixture) for details. |
| #[fixture] |
| pub fn hw_config() -> HardwareConfig { |
| HardwareConfig::init_from_env().unwrap() |
| } |