Skip to content

Commit 6317b8e

Browse files
committed
Test GC for nested userdata (userdata in userdata)
1 parent ecc09c4 commit 6317b8e

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

tests/userdata.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -845,3 +845,21 @@ fn test_userdata_derive() -> Result<()> {
845845

846846
Ok(())
847847
}
848+
849+
#[test]
850+
fn test_nested_userdata_gc() -> Result<()> {
851+
let lua = Lua::new();
852+
853+
let counter = Arc::new(());
854+
let arr = vec![lua.create_any_userdata(counter.clone())?];
855+
let arr_ud = lua.create_any_userdata(arr)?;
856+
857+
assert_eq!(Arc::strong_count(&counter), 2);
858+
drop(arr_ud);
859+
// On first iteration Lua will destroy the array, on second - userdata
860+
lua.gc_collect()?;
861+
lua.gc_collect()?;
862+
assert_eq!(Arc::strong_count(&counter), 1);
863+
864+
Ok(())
865+
}

0 commit comments

Comments
 (0)