From fa2f26cae930cfbccf3090274ad5fd6527fddfc1 Mon Sep 17 00:00:00 2001 From: Gris Ge Date: Sun, 24 May 2026 21:19:42 +0800 Subject: [PATCH] fix test cleanup: ignore deletion errors and propagate panics properly Replace assert-based cleanup with ignored deletion results and explicit panic propagation via resume_unwind. This ensures that cleanup failures don't mask test results, and panicked tests properly unwind through the cleanup code. Signed-off-by: Gris Ge --- src/ip/link/tests/bond.rs | 9 ++++++--- src/ip/link/tests/bridge.rs | 9 ++++++--- src/ip/link/tests/dummy.rs | 7 +++++-- src/ip/link/tests/nlmon.rs | 7 +++++-- src/ip/link/tests/vlan.rs | 9 ++++++--- src/ip/link/tests/vxlan.rs | 7 +++++-- 6 files changed, 33 insertions(+), 15 deletions(-) diff --git a/src/ip/link/tests/bond.rs b/src/ip/link/tests/bond.rs index 481585c..d4436ff 100644 --- a/src/ip/link/tests/bond.rs +++ b/src/ip/link/tests/bond.rs @@ -82,7 +82,10 @@ where }); // clean up - exec_cmd(&["ip", "link", "del", dummy_name]); - exec_cmd(&["ip", "link", "del", bond_name]); - assert!(result.is_ok()) + let _ = exec_cmd(&["ip", "link", "del", dummy_name]); + let _ = exec_cmd(&["ip", "link", "del", bond_name]); + + if let Err(e) = result { + std::panic::resume_unwind(e); + } } diff --git a/src/ip/link/tests/bridge.rs b/src/ip/link/tests/bridge.rs index 34b82f3..919adb9 100644 --- a/src/ip/link/tests/bridge.rs +++ b/src/ip/link/tests/bridge.rs @@ -196,7 +196,10 @@ where }); // clean up - exec_cmd(&["ip", "link", "del", dummy_name]); - exec_cmd(&["ip", "link", "del", br_name]); - assert!(result.is_ok()) + let _ = exec_cmd(&["ip", "link", "del", dummy_name]); + let _ = exec_cmd(&["ip", "link", "del", br_name]); + + if let Err(e) = result { + std::panic::resume_unwind(e); + } } diff --git a/src/ip/link/tests/dummy.rs b/src/ip/link/tests/dummy.rs index 7fef262..6b0a605 100644 --- a/src/ip/link/tests/dummy.rs +++ b/src/ip/link/tests/dummy.rs @@ -75,6 +75,9 @@ where }); // clean up - exec_cmd(&["ip", "link", "del", name]); - assert!(result.is_ok()) + let _ = exec_cmd(&["ip", "link", "del", name]); + + if let Err(e) = result { + std::panic::resume_unwind(e); + } } diff --git a/src/ip/link/tests/nlmon.rs b/src/ip/link/tests/nlmon.rs index cb59102..c39810e 100644 --- a/src/ip/link/tests/nlmon.rs +++ b/src/ip/link/tests/nlmon.rs @@ -67,6 +67,9 @@ where }); // clean up - exec_cmd(&["ip", "link", "del", name]); - assert!(result.is_ok()) + let _ = exec_cmd(&["ip", "link", "del", name]); + + if let Err(e) = result { + std::panic::resume_unwind(e); + } } diff --git a/src/ip/link/tests/vlan.rs b/src/ip/link/tests/vlan.rs index 06d94c9..cee4cd8 100644 --- a/src/ip/link/tests/vlan.rs +++ b/src/ip/link/tests/vlan.rs @@ -281,7 +281,10 @@ where }); // clean up - exec_cmd(&["ip", "link", "del", vlan_name]); - exec_cmd(&["ip", "link", "del", &parent_name]); - assert!(result.is_ok()) + let _ = exec_cmd(&["ip", "link", "del", vlan_name]); + let _ = exec_cmd(&["ip", "link", "del", &parent_name]); + + if let Err(e) = result { + std::panic::resume_unwind(e); + } } diff --git a/src/ip/link/tests/vxlan.rs b/src/ip/link/tests/vxlan.rs index 182fd4c..133a363 100644 --- a/src/ip/link/tests/vxlan.rs +++ b/src/ip/link/tests/vxlan.rs @@ -66,6 +66,9 @@ where }); // clean up - exec_cmd(&["ip", "link", "del", vxlan_name]); - assert!(result.is_ok()) + let _ = exec_cmd(&["ip", "link", "del", vxlan_name]); + + if let Err(e) = result { + std::panic::resume_unwind(e); + } }