[pypy-svn] r62372 - pypy/branch/spy-graphic/pypy/lang/smalltalk/test

cfbolz at codespeak.net cfbolz at codespeak.net
Mon Mar 2 14:26:21 CET 2009


Author: cfbolz
Date: Mon Mar  2 14:26:20 2009
New Revision: 62372

Modified:
   pypy/branch/spy-graphic/pypy/lang/smalltalk/test/test_objectspace.py
Log:
a test for the new unsigned wrapping/unwrapping code


Modified: pypy/branch/spy-graphic/pypy/lang/smalltalk/test/test_objectspace.py
==============================================================================
--- pypy/branch/spy-graphic/pypy/lang/smalltalk/test/test_objectspace.py	(original)
+++ pypy/branch/spy-graphic/pypy/lang/smalltalk/test/test_objectspace.py	Mon Mar  2 14:26:20 2009
@@ -1,3 +1,4 @@
+import py
 from pypy.lang.smalltalk import objspace
 
 space = objspace.ObjSpace()
@@ -24,3 +25,19 @@
 def test_metaclass_of_metaclass_is_an_instance_of_metaclass():
     w_Metaclass = space.classtable['w_Metaclass']
     assert w_Metaclass.w_class.w_class is w_Metaclass
+
+def test_ruint():
+    from pypy.rlib.rarithmetic import r_uint
+    import sys
+    for num in [0, 1, 41, 100, 2**31, sys.maxint + 1]:
+        num = r_uint(num)
+        assert space.unwrap_uint(space.wrap_uint(num)) == num
+    for num in [-1, -100, -sys.maxint]:
+        py.test.raises(objspace.WrappingError, space.wrap_uint, num)
+    for obj in [space.wrap_char('a'), space.wrap_int(-1)]:
+        py.test.raises(objspace.UnwrappingError, space.unwrap_uint, obj)
+    byteobj = space.wrap_uint(sys.maxint + 1)
+    byteobj.bytes.append('\x01')
+    py.test.raises(objspace.UnwrappingError, space.unwrap_uint, byteobj)
+    
+



More information about the Pypy-commit mailing list