summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2024-08-07 14:20:00 +0200
committerDavid Lönnhager <david.l@mullvad.net>2024-08-07 14:20:00 +0200
commit80c99b72a8372563c7ac65dbad25aff49755a406 (patch)
tree21870ddf0312fd8d3cfa34e570b1418dd6e2c3b7 /test
parent3677a0fb809638dda39562000e8edb57ae7608ce (diff)
parent0cb117df776a5742b9fc76b8fdbda919b7ad0310 (diff)
downloadmullvadvpn-80c99b72a8372563c7ac65dbad25aff49755a406.tar.xz
mullvadvpn-80c99b72a8372563c7ac65dbad25aff49755a406.zip
Merge branch 'fix-testing-dnsmasq'
Diffstat (limited to 'test')
-rw-r--r--test/test-manager/src/vm/network/linux.rs25
1 files changed, 19 insertions, 6 deletions
diff --git a/test/test-manager/src/vm/network/linux.rs b/test/test-manager/src/vm/network/linux.rs
index c767a35072..1a4e994a52 100644
--- a/test/test-manager/src/vm/network/linux.rs
+++ b/test/test-manager/src/vm/network/linux.rs
@@ -145,7 +145,8 @@ table ip mullvad_test_nat {{
impl NetworkHandle {
/// Return the first IP address acknowledged by the DHCP server. This can only be called once.
pub async fn first_dhcp_ack(&mut self) -> Option<IpAddr> {
- const LOG_PREFIX: &str = "[dnsmasq] ";
+ const LOG_PREFIX_STDOUT: &str = "[dnsmasq] [stdout] ";
+ const LOG_PREFIX_STDERR: &str = "[dnsmasq] [stderr] ";
const LOG_LEVEL: log::Level = log::Level::Debug;
// dnsmasq-dhcp: DHCPACK(br-mullvadtest) 172.29.1.112 52:54:00:12:34:56 debian
@@ -156,8 +157,10 @@ impl NetworkHandle {
let reader = BufReader::new(stderr?);
let mut lines = reader.lines();
+ let mut found_addr = None;
+
while let Ok(Some(line)) = lines.next_line().await {
- log::log!(LOG_LEVEL, "{LOG_PREFIX}{}", line);
+ log::log!(LOG_LEVEL, "{LOG_PREFIX_STDERR}{}", line);
if let Some(addr) = re
.captures(&line)
@@ -166,18 +169,26 @@ impl NetworkHandle {
{
if let Ok(parsed_addr) = IpAddr::from_str(addr) {
log::debug!("Captured DHCPACK: {}", parsed_addr);
- return Some(parsed_addr);
+ found_addr = Some(parsed_addr);
+ break;
}
}
}
+ if let Some(stdout) = self.dhcp_proc.child.stdout.take() {
+ tokio::spawn(crate::vm::logging::forward_logs(
+ LOG_PREFIX_STDOUT,
+ stdout,
+ LOG_LEVEL,
+ ));
+ }
tokio::spawn(crate::vm::logging::forward_logs(
- LOG_PREFIX,
+ LOG_PREFIX_STDERR,
lines.into_inner().into_inner(),
LOG_LEVEL,
));
- None
+ found_addr
}
}
@@ -197,7 +208,9 @@ async fn start_dnsmasq() -> Result<DhcpProcHandle> {
BRIDGE_NAME,
"-F",
&format!("{},{}", TEST_SUBNET_DHCP_FIRST, TEST_SUBNET_DHCP_LAST),
- "--no-daemon",
+ "--no-hosts",
+ "--keep-in-foreground",
+ "--log-facility=-",
]);
let leases_file = async_tempfile::TempFile::new()