()
| 73 | def assert_cycles(expected=0): |
| 74 | def decorate(fn): |
| 75 | def go(): |
| 76 | fn() # warmup, configure mappers, caches, etc. |
| 77 | |
| 78 | gc_collect() |
| 79 | gc_collect() |
| 80 | gc_collect() # multiple calls seem to matter |
| 81 | |
| 82 | # gc.set_debug(gc.DEBUG_COLLECTABLE) |
| 83 | try: |
| 84 | return fn() # run for real |
| 85 | finally: |
| 86 | unreachable = gc_collect() |
| 87 | assert unreachable <= expected |
| 88 | gc_collect() |
| 89 | |
| 90 | return go |
| 91 |
no outgoing calls
no test coverage detected