Skip to content

Commit 6209876

Browse files
committed
Add tests
1 parent d9e6c57 commit 6209876

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

libcc2rs/src/rc.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1269,4 +1269,25 @@ mod tests {
12691269

12701270
p.delete();
12711271
}
1272+
1273+
#[test]
1274+
fn anyptr_null_cast() {
1275+
let any = Ptr::<()>::null().to_any();
1276+
let p: Option<Ptr<u32>> = any.cast::<u32>();
1277+
assert!(p.is_some());
1278+
assert!(p.unwrap().is_null());
1279+
1280+
let p2: Option<Ptr<u8>> = any.cast::<u8>();
1281+
assert!(p2.is_some());
1282+
assert!(p2.unwrap().is_null());
1283+
}
1284+
1285+
#[test]
1286+
fn to_any_without_clone() {
1287+
let p: Ptr<std::fs::File> = Ptr::null(); // std::fs::File is not Clone
1288+
let any = p.to_any();
1289+
let recovered = any.cast::<std::fs::File>();
1290+
assert!(recovered.is_some());
1291+
assert!(recovered.unwrap().is_null());
1292+
}
12721293
}

0 commit comments

Comments
 (0)