[pypy-svn] r62757 - pypy/trunk/pypy/translator/c/test
fijal at codespeak.net
fijal at codespeak.net
Mon Mar 9 14:12:55 CET 2009
Author: fijal
Date: Mon Mar 9 14:12:52 2009
New Revision: 62757
Modified:
pypy/trunk/pypy/translator/c/test/test_lladdresses.py
Log:
the same test for C (exploding!)
Modified: pypy/trunk/pypy/translator/c/test/test_lladdresses.py
==============================================================================
--- pypy/trunk/pypy/translator/c/test/test_lladdresses.py (original)
+++ pypy/trunk/pypy/translator/c/test/test_lladdresses.py Mon Mar 9 14:12:52 2009
@@ -173,3 +173,29 @@
fn = compile(f, [int], gcpolicy='boehm')
assert fn(3) == 123
assert fn(-3) == -42
+
+def test_prebuilt_list_of_addresses():
+ TP = lltype.Struct('x', ('y', lltype.Signed))
+ a = lltype.malloc(TP, flavor='raw', immortal=True)
+ b = lltype.malloc(TP, flavor='raw', immortal=True)
+ c = lltype.malloc(TP, flavor='raw', immortal=True)
+ a_a = cast_ptr_to_adr(a)
+ a0 = cast_ptr_to_adr(a)
+ assert a_a is not a0
+ assert a_a == a0
+ a_b = cast_ptr_to_adr(b)
+ a_c = cast_ptr_to_adr(c)
+
+ d = {a_a: 3, a_b: 4, a_c: 5}
+ d[a0] = 8
+
+ def func(i):
+ if i == 0:
+ ptr = a
+ else:
+ ptr = b
+ return d[cast_ptr_to_adr(ptr)]
+
+ fn = compile(func, [int], gcpolicy='boehm')
+ assert fn(0) == 8
+ assert fn(1) == 4
More information about the Pypy-commit
mailing list