1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
class AppTestMagic:
spaceconfig = dict(usemodules=['__pypy__'])
def test_new_code_hook(self):
# workaround for running on top of old CPython 2.7 versions
def exec_(code, d):
exec(code, d)
l = []
def callable(code):
l.append(code)
import __pypy__
__pypy__.set_code_callback(callable)
d = {}
try:
exec_("""
def f():
pass
""", d)
finally:
__pypy__.set_code_callback(None)
assert d['f'].__code__ in l
def test_decode_long(self):
from __pypy__ import decode_long
assert decode_long(b'') == 0
assert decode_long(b'\xff\x00') == 255
assert decode_long(b'\xff\x7f') == 32767
assert decode_long(b'\x00\xff') == -256
assert decode_long(b'\x00\x80') == -32768
assert decode_long(b'\x80') == -128
assert decode_long(b'\x7f') == 127
assert decode_long(b'\x55' * 97) == (1 << (97 * 8)) // 3
assert decode_long(b'\x00\x80', 'big') == 128
assert decode_long(b'\xff\x7f', 'little', False) == 32767
assert decode_long(b'\x00\x80', 'little', False) == 32768
assert decode_long(b'\x00\x80', 'little', True) == -32768
raises(ValueError, decode_long, b'', 'foo')
def test_promote(self):
from __pypy__ import _promote
assert _promote(1) == 1
assert _promote(1.1) == 1.1
assert _promote(b"abc") == b"abc"
raises(TypeError, _promote, u"abc")
l = []
assert _promote(l) is l
class A(object):
pass
a = A()
assert _promote(a) is a
|