123456789101112131415161718192021222324252627282930 |
- from pyrsistent import pmap
- import random
- import gc
- def test_segfault_issue_52():
- threshold = None
- if hasattr(gc, 'get_threshold'):
- # PyPy is lacking these functions
- threshold = gc.get_threshold()
- gc.set_threshold(1, 1, 1) # fail fast
- v = [pmap()]
- def step():
- depth = random.randint(1, 10)
- path = random.sample(range(100000), depth)
- v[0] = v[0].transform(path, "foo")
- for i in range(1000): # usually crashes after 10-20 steps
- while True:
- try:
- step()
- break
- except AttributeError: # evolver on string
- continue
- if threshold:
- gc.set_threshold(*threshold)
|