aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/multidict/tests/isolated/multidict_update_multidict.py
blob: 4c98972bf4287e57573d51fbb602899621322376 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import gc
import sys

import objgraph  # type: ignore[import-untyped]

from multidict import MultiDict


def _run_isolated_case() -> None:
    md: MultiDict[str] = MultiDict()
    for _ in range(100):
        md.extend(MultiDict())
    del md
    gc.collect()
    leaked = len(objgraph.by_type("MultiDict"))
    print(f"{leaked} instances of MultiDict not collected by GC")
    sys.exit(1 if leaked else 0)


if __name__ == "__main__":
    _run_isolated_case()