From 91a99fcf0e79ccd8099881f744467fc32bd93672 Mon Sep 17 00:00:00 2001 From: Jim Mussared Date: Mon, 16 Aug 2021 22:45:06 +1000 Subject: [PATCH] tests/extmod/vfs_fat_finaliser.py: Ensure alloc at never-used GC blocks. Prevents the finaliser from being missed if there's a dangling reference on the stack to one of the blocks for the files (that this test checks that they get finalised). See github.com/micropython/micropython/pull/7659#issuecomment-899479793 Signed-off-by: Jim Mussared --- tests/extmod/vfs_fat_finaliser.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/extmod/vfs_fat_finaliser.py b/tests/extmod/vfs_fat_finaliser.py index e30f42f847..b67afc2d94 100644 --- a/tests/extmod/vfs_fat_finaliser.py +++ b/tests/extmod/vfs_fat_finaliser.py @@ -56,6 +56,13 @@ micropython.heap_unlock() # Here we test that the finaliser is actually called during a garbage collection. import gc +# Do a large number of single-block allocations to move the GC head forwards, +# ensuring that the files are allocated from never-before-used blocks and +# therefore couldn't possibly have any references to them left behind on +# the stack. +for i in range(1024): + [] + N = 4 for i in range(N): n = "x%d" % i