From f31271f674e50b04e78d155582b76e89abf1dc4d Mon Sep 17 00:00:00 2001 From: David Hewitt Date: Fri, 4 Oct 2024 11:45:43 +0100 Subject: [PATCH] update test assertions to expect leaked objects --- src/types/weakref/proxy.rs | 48 ++++++++++++++++++++++------------ src/types/weakref/reference.rs | 32 ++++++++++++++--------- 2 files changed, 52 insertions(+), 28 deletions(-) diff --git a/src/types/weakref/proxy.rs b/src/types/weakref/proxy.rs index 71e20d6a40a..6ecfb7a0c2f 100644 --- a/src/types/weakref/proxy.rs +++ b/src/types/weakref/proxy.rs @@ -778,7 +778,8 @@ mod tests { assert!(obj.is_ok()); let obj = obj.unwrap(); - assert!(obj.is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(obj.is_some()); } Ok(()) @@ -838,7 +839,8 @@ mod tests { #[allow(deprecated)] let obj = unsafe { reference.upgrade_borrowed_as_unchecked::() }; - assert!(obj.is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(obj.is_some()); } Ok(()) @@ -878,7 +880,8 @@ mod tests { drop(object); - assert!(reference.upgrade_borrowed().is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(reference.upgrade_borrowed().is_some()); Ok(()) }) @@ -913,7 +916,8 @@ mod tests { drop(object); - assert!(reference.get_object_borrowed().is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(!reference.get_object_borrowed().is_none()); Ok(()) }) @@ -1049,7 +1053,8 @@ mod tests { assert!(obj.is_ok()); let obj = obj.unwrap(); - assert!(obj.is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(obj.is_some()); } Ok(()) @@ -1104,7 +1109,8 @@ mod tests { reference.upgrade_borrowed_as_unchecked::() }; - assert!(obj.is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(obj.is_some()); } Ok(()) @@ -1142,7 +1148,8 @@ mod tests { drop(object); - assert!(reference.upgrade_borrowed().is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(reference.upgrade_borrowed().is_some()); Ok(()) }) @@ -1175,7 +1182,8 @@ mod tests { drop(object); - assert!(reference.get_object_borrowed().is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(!reference.get_object_borrowed().is_none()); Ok(()) }) @@ -1320,7 +1328,8 @@ mod tests { assert!(obj.is_ok()); let obj = obj.unwrap(); - assert!(obj.is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(obj.is_some()); } Ok(()) @@ -1379,7 +1388,8 @@ mod tests { // This test is a bit weird but ok. let obj = unsafe { reference.upgrade_borrowed_as_unchecked::() }; - assert!(obj.is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(obj.is_some()); } Ok(()) @@ -1419,7 +1429,8 @@ mod tests { drop(object); - assert!(reference.upgrade_borrowed().is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(reference.upgrade_borrowed().is_some()); Ok(()) }) @@ -1454,7 +1465,8 @@ mod tests { drop(object); - assert!(reference.get_object_borrowed().is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(!reference.get_object_borrowed().is_none()); Ok(()) }) @@ -1584,7 +1596,8 @@ mod tests { assert!(obj.is_ok()); let obj = obj.unwrap(); - assert!(obj.is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(obj.is_some()); } Ok(()) @@ -1638,7 +1651,8 @@ mod tests { reference.upgrade_borrowed_as_unchecked::() }; - assert!(obj.is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(obj.is_some()); } Ok(()) @@ -1676,7 +1690,8 @@ mod tests { drop(object); - assert!(reference.upgrade_borrowed().is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(reference.upgrade_borrowed().is_some()); Ok(()) }) @@ -1709,7 +1724,8 @@ mod tests { drop(object); - assert!(reference.get_object_borrowed().is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(!reference.get_object_borrowed().is_none()); Ok(()) }) diff --git a/src/types/weakref/reference.rs b/src/types/weakref/reference.rs index 78d6dc51709..99bc196e195 100644 --- a/src/types/weakref/reference.rs +++ b/src/types/weakref/reference.rs @@ -744,7 +744,8 @@ mod tests { assert!(obj.is_ok()); let obj = obj.unwrap(); - assert!(obj.is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(obj.is_some()); } Ok(()) @@ -803,7 +804,8 @@ mod tests { // This test is a bit weird but ok. let obj = unsafe { reference.upgrade_borrowed_as_unchecked::() }; - assert!(obj.is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(obj.is_some()); } Ok(()) @@ -846,8 +848,9 @@ mod tests { drop(object); - assert!(reference.call0()?.is_none()); - assert!(reference.upgrade_borrowed().is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(!reference.call0()?.is_none()); + assert!(reference.upgrade_borrowed().is_some()); Ok(()) }) @@ -886,8 +889,9 @@ mod tests { drop(object); - assert!(reference.call0()?.is_none()); - assert!(reference.get_object_borrowed().is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(!reference.call0()?.is_none()); + assert!(!reference.get_object_borrowed().is_none()); Ok(()) }) @@ -998,7 +1002,8 @@ mod tests { assert!(obj.is_ok()); let obj = obj.unwrap(); - assert!(obj.is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(obj.is_some()); } Ok(()) @@ -1051,7 +1056,8 @@ mod tests { let obj = unsafe { reference.upgrade_borrowed_as_unchecked::() }; - assert!(obj.is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(obj.is_some()); } Ok(()) @@ -1092,8 +1098,9 @@ mod tests { drop(object); - assert!(reference.call0()?.is_none()); - assert!(reference.upgrade_borrowed().is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(!reference.call0()?.is_none()); + assert!(reference.upgrade_borrowed().is_some()); Ok(()) }) @@ -1130,8 +1137,9 @@ mod tests { drop(object); - assert!(reference.call0()?.is_none()); - assert!(reference.get_object_borrowed().is_none()); + // XXX: have to leak in the borrowed methods for safety :( + assert!(!reference.call0()?.is_none()); + assert!(!reference.get_object_borrowed().is_none()); Ok(()) })