Author: Armin Rigo <[email protected]>
Branch:
Changeset: r66040:41a4884c4395
Date: 2013-08-09 17:52 +0200
http://bitbucket.org/pypy/pypy/changeset/41a4884c4395/
Log: Add three tests, one of which fails.
diff --git a/rpython/jit/backend/test/runner_test.py
b/rpython/jit/backend/test/runner_test.py
--- a/rpython/jit/backend/test/runner_test.py
+++ b/rpython/jit/backend/test/runner_test.py
@@ -3954,8 +3954,12 @@
p = rawstorage.alloc_raw_storage(31)
for i in range(31):
p[i] = '\xDD'
- value = rffi.cast(T, 0x4243444546474849)
+ value = rffi.cast(T, -0x4243444546474849)
rawstorage.raw_storage_setitem(p, 16, value)
+ got = self.cpu.bh_raw_load_i(rffi.cast(lltype.Signed, p), 16,
+ arraydescr)
+ assert got == rffi.cast(lltype.Signed, value)
+ #
loop = parse(ops, self.cpu, namespace=locals())
looptoken = JitCellToken()
self.cpu.compile_loop(loop.inputargs, loop.operations, looptoken)
@@ -3981,6 +3985,11 @@
p[i] = '\xDD'
value = rffi.cast(T, 1.12e20)
rawstorage.raw_storage_setitem(p, 16, value)
+ got = self.cpu.bh_raw_load_f(rffi.cast(lltype.Signed, p), 16,
+ arraydescr)
+ got = longlong.getrealfloat(got)
+ assert got == rffi.cast(lltype.Float, value)
+ #
loop = parse(ops, self.cpu, namespace=locals())
looptoken = JitCellToken()
self.cpu.compile_loop(loop.inputargs, loop.operations, looptoken)
diff --git a/rpython/jit/metainterp/test/test_rawmem.py
b/rpython/jit/metainterp/test/test_rawmem.py
--- a/rpython/jit/metainterp/test/test_rawmem.py
+++ b/rpython/jit/metainterp/test/test_rawmem.py
@@ -58,5 +58,18 @@
'raw_store': 1, 'raw_load': 1,
'finish': 1})
+ def test_raw_storage_byte(self):
+ def f():
+ p = alloc_raw_storage(15)
+ raw_storage_setitem(p, 5, rffi.cast(rffi.UCHAR, 254))
+ res = raw_storage_getitem(rffi.UCHAR, p, 5)
+ free_raw_storage(p)
+ return rffi.cast(lltype.Signed, res)
+ res = self.interp_operations(f, [])
+ assert res == 254
+ self.check_operations_history({'call': 2, 'guard_no_exception': 1,
+ 'raw_store': 1, 'raw_load': 1,
+ 'finish': 1})
+
class TestRawMem(RawMemTests, LLJitMixin):
pass
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit