From feb74ef4f0594badf59a1ab1f2b084b90e97e38f Mon Sep 17 00:00:00 2001 From: Han Xu Date: Mon, 17 Jun 2024 11:19:14 -0700 Subject: [PATCH 01/11] enable DEBUG logging for a failed test in CI --- tests/mdns_test.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/mdns_test.rs b/tests/mdns_test.rs index 9761137..45b02e2 100644 --- a/tests/mdns_test.rs +++ b/tests/mdns_test.rs @@ -7,7 +7,7 @@ use std::collections::{HashMap, HashSet}; use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; use std::thread::sleep; use std::time::{Duration, SystemTime}; -use test_log::test; +// use test_log::test; // commented out to debug a failure in GitHub CI only. /// This test covers: /// register(announce), browse(query), response, unregister, shutdown. @@ -1132,6 +1132,9 @@ fn hostname_resolution_timeout() { #[test] fn test_cache_flush_record() { + // For debugging a failure in CI only. + env_logger::Builder::new().filter_level(log::LevelFilter::Debug).init(); + // Create a daemon let server = ServiceDaemon::new().expect("Failed to create server"); let service = "_test_cache_ptr._udp.local."; From db40f78c5c21b9bb371d66d351a6948c4d90a07a Mon Sep 17 00:00:00 2001 From: Han Xu Date: Mon, 17 Jun 2024 11:21:13 -0700 Subject: [PATCH 02/11] fix fmt --- tests/mdns_test.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/mdns_test.rs b/tests/mdns_test.rs index 45b02e2..cf70dad 100644 --- a/tests/mdns_test.rs +++ b/tests/mdns_test.rs @@ -1133,7 +1133,9 @@ fn hostname_resolution_timeout() { #[test] fn test_cache_flush_record() { // For debugging a failure in CI only. - env_logger::Builder::new().filter_level(log::LevelFilter::Debug).init(); + env_logger::Builder::new() + .filter_level(log::LevelFilter::Debug) + .init(); // Create a daemon let server = ServiceDaemon::new().expect("Failed to create server"); From ff197c41ea0031328dd0b1f299d0b941386cc6ba Mon Sep 17 00:00:00 2001 From: Han Xu Date: Mon, 17 Jun 2024 12:04:53 -0700 Subject: [PATCH 03/11] log ServiceInfo when it is not ready --- src/dns_parser.rs | 4 ++-- src/service_daemon.rs | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/dns_parser.rs b/src/dns_parser.rs index b9427d4..104cda1 100644 --- a/src/dns_parser.rs +++ b/src/dns_parser.rs @@ -947,7 +947,7 @@ impl DnsOutgoing { ); if !ptr_added { - debug!("answer was not added for msg {:?}", msg); + debug!("PTR answer was not added for ServiceInfo {:?}", service); return; } @@ -1270,7 +1270,7 @@ impl DnsIncoming { } if let Some(record) = rec { - debug!("{:?}", &record); + debug!("DnsIncoming: read_others: {:?}", &record); self.answers.push(record); } } diff --git a/src/service_daemon.rs b/src/service_daemon.rs index 32c5437..c961f51 100644 --- a/src/service_daemon.rs +++ b/src/service_daemon.rs @@ -1531,6 +1531,7 @@ impl Zeroconf { } } else { unresolved.insert(ptr.alias.clone()); + debug!("ServiceInfo not ready: {:?}", &info); } } } From 818aa3f71323b321af05fddc10a9a6f66f0d690b Mon Sep 17 00:00:00 2001 From: Han Xu Date: Mon, 17 Jun 2024 12:11:24 -0700 Subject: [PATCH 04/11] try to use stdout as the target for test debugging --- tests/mdns_test.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/mdns_test.rs b/tests/mdns_test.rs index cf70dad..4cd6c3c 100644 --- a/tests/mdns_test.rs +++ b/tests/mdns_test.rs @@ -1135,6 +1135,7 @@ fn test_cache_flush_record() { // For debugging a failure in CI only. env_logger::Builder::new() .filter_level(log::LevelFilter::Debug) + .target(env_logger::Target::Stdout) .init(); // Create a daemon From 2ff98c9ea1c9b66ff96f692641dc9d39c04d58f0 Mon Sep 17 00:00:00 2001 From: Han Xu Date: Mon, 17 Jun 2024 14:12:41 -0700 Subject: [PATCH 05/11] add thread id in test log --- src/service_daemon.rs | 1 - tests/mdns_test.rs | 15 ++++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/service_daemon.rs b/src/service_daemon.rs index c961f51..32c5437 100644 --- a/src/service_daemon.rs +++ b/src/service_daemon.rs @@ -1531,7 +1531,6 @@ impl Zeroconf { } } else { unresolved.insert(ptr.alias.clone()); - debug!("ServiceInfo not ready: {:?}", &info); } } } diff --git a/tests/mdns_test.rs b/tests/mdns_test.rs index 4cd6c3c..25ccddf 100644 --- a/tests/mdns_test.rs +++ b/tests/mdns_test.rs @@ -1133,9 +1133,22 @@ fn hostname_resolution_timeout() { #[test] fn test_cache_flush_record() { // For debugging a failure in CI only. - env_logger::Builder::new() + use std::io::Write; + let thread_id = std::thread::current().id(); + env_logger::builder() .filter_level(log::LevelFilter::Debug) .target(env_logger::Target::Stdout) + .format(move |buf, record| { + let ts = buf.timestamp_millis(); + writeln!( + buf, + "{}: {:?}: {}: {}", + ts, + thread_id, + record.level(), + record.args() + ) + }) .init(); // Create a daemon From 4afaa6151e375f580b140756dce77d61be67144d Mon Sep 17 00:00:00 2001 From: Han Xu Date: Mon, 17 Jun 2024 14:51:51 -0700 Subject: [PATCH 06/11] add a step in CI to run the failed test --- .github/workflows/build.yml | 2 ++ tests/mdns_test.rs | 21 +-------------------- 2 files changed, 3 insertions(+), 20 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5df3813..489a1b6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,5 +30,7 @@ jobs: run: cargo build - name: Run clippy and fail if any warnings run: cargo clippy -- -D warnings + - name: Run a flaky test + run: RUST_LOG=debug cargo test test_cache_flush_record - name: Run tests run: cargo test diff --git a/tests/mdns_test.rs b/tests/mdns_test.rs index 25ccddf..9761137 100644 --- a/tests/mdns_test.rs +++ b/tests/mdns_test.rs @@ -7,7 +7,7 @@ use std::collections::{HashMap, HashSet}; use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; use std::thread::sleep; use std::time::{Duration, SystemTime}; -// use test_log::test; // commented out to debug a failure in GitHub CI only. +use test_log::test; /// This test covers: /// register(announce), browse(query), response, unregister, shutdown. @@ -1132,25 +1132,6 @@ fn hostname_resolution_timeout() { #[test] fn test_cache_flush_record() { - // For debugging a failure in CI only. - use std::io::Write; - let thread_id = std::thread::current().id(); - env_logger::builder() - .filter_level(log::LevelFilter::Debug) - .target(env_logger::Target::Stdout) - .format(move |buf, record| { - let ts = buf.timestamp_millis(); - writeln!( - buf, - "{}: {:?}: {}: {}", - ts, - thread_id, - record.level(), - record.args() - ) - }) - .init(); - // Create a daemon let server = ServiceDaemon::new().expect("Failed to create server"); let service = "_test_cache_ptr._udp.local."; From f677a07cab4a8d7a0656249262175cd827f93e28 Mon Sep 17 00:00:00 2001 From: Han Xu Date: Mon, 17 Jun 2024 14:57:03 -0700 Subject: [PATCH 07/11] fix CI build workflow --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 489a1b6..598c26e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,6 +31,7 @@ jobs: - name: Run clippy and fail if any warnings run: cargo clippy -- -D warnings - name: Run a flaky test + if: matrix.os == 'ubuntu-20.04' || matrix.os == 'macos-latest' run: RUST_LOG=debug cargo test test_cache_flush_record - name: Run tests run: cargo test From 33adf7860511769b394067c8b15a0948e1d7118d Mon Sep 17 00:00:00 2001 From: Han Xu Date: Mon, 17 Jun 2024 15:00:51 -0700 Subject: [PATCH 08/11] reduce changes --- src/dns_parser.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dns_parser.rs b/src/dns_parser.rs index 104cda1..45c76c9 100644 --- a/src/dns_parser.rs +++ b/src/dns_parser.rs @@ -947,7 +947,7 @@ impl DnsOutgoing { ); if !ptr_added { - debug!("PTR answer was not added for ServiceInfo {:?}", service); + debug!("answer was not added for msg {:?}", msg); return; } @@ -1270,7 +1270,7 @@ impl DnsIncoming { } if let Some(record) = rec { - debug!("DnsIncoming: read_others: {:?}", &record); + debug!("read_others: {:?}", &record); self.answers.push(record); } } From 98c6ceae83d7c0589220313e368c82ec8ee40535 Mon Sep 17 00:00:00 2001 From: Han Xu Date: Mon, 17 Jun 2024 21:54:02 -0700 Subject: [PATCH 09/11] log service fullname for resolved --- src/service_daemon.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/service_daemon.rs b/src/service_daemon.rs index 32c5437..8a9ef61 100644 --- a/src/service_daemon.rs +++ b/src/service_daemon.rs @@ -1526,7 +1526,7 @@ impl Zeroconf { if info.is_ready() { resolved.insert(ptr.alias.clone()); match sender.send(ServiceEvent::ServiceResolved(info)) { - Ok(()) => debug!("sent service resolved"), + Ok(()) => debug!("sent service resolved: {}", &ptr.alias), Err(e) => error!("failed to send service resolved: {}", e), } } else { From 9d0a5d3d9c10e7f6f1f7430b9a762471bf3d0a60 Mon Sep 17 00:00:00 2001 From: Han Xu Date: Mon, 17 Jun 2024 22:16:44 -0700 Subject: [PATCH 10/11] enable test_log only for a flaky test in CI --- .github/workflows/build.yml | 5 +---- tests/mdns_test.rs | 4 ++-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 598c26e..0449add 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,8 +30,5 @@ jobs: run: cargo build - name: Run clippy and fail if any warnings run: cargo clippy -- -D warnings - - name: Run a flaky test - if: matrix.os == 'ubuntu-20.04' || matrix.os == 'macos-latest' - run: RUST_LOG=debug cargo test test_cache_flush_record - name: Run tests - run: cargo test + run: RUST_LOG=debug cargo test diff --git a/tests/mdns_test.rs b/tests/mdns_test.rs index 9761137..0409644 100644 --- a/tests/mdns_test.rs +++ b/tests/mdns_test.rs @@ -7,7 +7,7 @@ use std::collections::{HashMap, HashSet}; use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; use std::thread::sleep; use std::time::{Duration, SystemTime}; -use test_log::test; +// use test_log::test; // commented out for debugging a flaky test in CI. /// This test covers: /// register(announce), browse(query), response, unregister, shutdown. @@ -1130,7 +1130,7 @@ fn hostname_resolution_timeout() { d.shutdown().unwrap(); } -#[test] +#[test_log::test] fn test_cache_flush_record() { // Create a daemon let server = ServiceDaemon::new().expect("Failed to create server"); From b4a3c8bdf3c728ee0d11e5a4b9cb1502074d4ef7 Mon Sep 17 00:00:00 2001 From: Han Xu Date: Tue, 18 Jun 2024 10:45:27 -0700 Subject: [PATCH 11/11] fix build CI --- .github/workflows/build.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0449add..d35f4fc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,5 +30,9 @@ jobs: run: cargo build - name: Run clippy and fail if any warnings run: cargo clippy -- -D warnings - - name: Run tests + - name: Run tests with debugs + if: matrix.os == 'ubuntu-20.04' || matrix.os == 'macos-latest' run: RUST_LOG=debug cargo test + - name: Run tests on Windows + if: matrix.os == 'windows-latest' + run: cargo test