memory/gctransform/test/test_framework.py::test_no_collect_detection
def test_no_collect_detection():
from rpython.rlib import rgc
from rpython.translator.c.genc import CStandaloneBuilder
class A(object):
def __init__(self, x):
self.x = x
@rgc.no_collect
def g():
return A(1).x
assert g._dont_inline_
assert g._gc_no_collect_
def entrypoint(argv):
return g() + 2
t = rtype(entrypoint, [s_list_of_strings])
t.config.translation.gc = "minimark"
cbuild = CStandaloneBuilder(t, entrypoint, t.config,
gcpolicy=FrameworkGcPolicy2)
cbuild.make_entrypoint_wrapper = False
with py.test.raises(Exception) as f:
cbuild.build_database()
expected = "'no_collect' function can trigger collection: <function g at "
> assert str(f.value).startswith(expected)
E assert <built-in method startswith of str object at 0xffff3fd77630>("'no_collect' function can trigger collection: <function g at ")
E + where <built-in method startswith of str object at 0xffff3fd77630> = "Non-ASCII character '\\xe2' in file /build_dir/rpython-linux-aarch64/build/rpython/memory/gc/env.py on line 423, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details (env.py, line 423)".startswith
E + where "Non-ASCII character '\\xe2' in file /build_dir/rpython-linux-aarch64/build/rpython/memory/gc/env.py on line 423, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details (env.py, line 423)" = str(SyntaxError("Non-ASCII character '\\xe2' in file /build_dir/rpython-linux-aarc...build_dir/rpython-linux-aarch64/build/rpython/memory/gc/env.py', 423, 0, None)))
E + where SyntaxError("Non-ASCII character '\\xe2' in file /build_dir/rpython-linux-aarc...build_dir/rpython-linux-aarch64/build/rpython/memory/gc/env.py', 423, 0, None)) = SyntaxError("Non-ASCII character '\\xe2' in file /build_dir/rpython-linux-aarc...build_dir/rpython-linux-aarch64/build/rpython/memory/gc/env.py', 423, 0, None))
E + where SyntaxError("Non-ASCII character '\\xe2' in file /build_dir/rpython-linux-aarc...build_dir/rpython-linux-aarch64/build/rpython/memory/gc/env.py', 423, 0, None)) = <ExceptionInfo SyntaxError tblen=7>.value
memory/gctransform/test/test_framework.py:148: AssertionError
---------- Captured stderr call ----------
[rtyper] -=- specialized 8 blocks -=-
[rtyper] -=- specialized 4 more blocks -=-
[rtyper] -=- specialized 25 more blocks -=-
builder: rpython-linux-aarch64 build #534
test: memory/gctransform/test/test_framework/py/test_no_collect_detection