[pypy-svn] r71853 - in pypy/branch/ctypes-configure-cache-2/ctypes_configure: . test

arigo at codespeak.net arigo at codespeak.net
Sat Mar 6 12:37:31 CET 2010


Author: arigo
Date: Sat Mar  6 12:37:29 2010
New Revision: 71853

Added:
   pypy/branch/ctypes-configure-cache-2/ctypes_configure/dumpcache.py   (contents, props changed)
   pypy/branch/ctypes-configure-cache-2/ctypes_configure/test/test_dumpcache.py   (contents, props changed)
Modified:
   pypy/branch/ctypes-configure-cache-2/ctypes_configure/configure.py
   pypy/branch/ctypes-configure-cache-2/ctypes_configure/test/test_configure.py
Log:
Move dumpcache() to its own module.


Modified: pypy/branch/ctypes-configure-cache-2/ctypes_configure/configure.py
==============================================================================
--- pypy/branch/ctypes-configure-cache-2/ctypes_configure/configure.py	(original)
+++ pypy/branch/ctypes-configure-cache-2/ctypes_configure/configure.py	Sat Mar  6 12:37:29 2010
@@ -584,47 +584,6 @@
 
 # ____________________________________________________________
 
-def ctypes_repr(cls):
-    # ctypes_configure does not support nested structs so far
-    # so let's ignore it
-    assert isinstance(cls, ctypes._SimpleCData.__class__)
-    return "ctypes." + cls.__name__
-
-def dumpcache(referencefilename, filename, config):
-    dirname = os.path.dirname(referencefilename)
-    filename = os.path.join(dirname, filename)
-    f = open(filename, 'w')
-    print >> f, 'import ctypes'
-    print >> f
-    names = config.keys()
-    names.sort()
-    for key in names:
-        val = config[key]
-        if isinstance(val, (int, long)):
-            f.write("%s = %d\n" % (key, val))
-        elif val is None:
-            f.write("%s = None\n" % key)
-        elif isinstance(val, ctypes._SimpleCData.__class__):
-            # a simple type
-            f.write("%s = %s\n" % (key, ctypes_repr(val)))
-        elif isinstance(val, ctypes.Structure.__class__):
-            f.write("class %s(ctypes.Structure):\n" % key)
-            f.write("    _fields_ = [\n")
-            for k, v in val._fields_:
-                f.write("        ('%s', %s),\n" % (k, ctypes_repr(v)))
-            f.write("    ]\n")
-        elif isinstance(val, (tuple, list)):
-            for x in val:
-                assert isinstance(x, (int, long, str)), \
-                       "lists of integers or strings only"
-            f.write("%s = %r\n" % (key, val))
-        else:
-            raise NotImplementedError("Saving of %r" % (val,))
-    f.close()
-    print 'Wrote %s.' % (filename,)
-
-# ____________________________________________________________
-
 def get_python_include_dir():
     from distutils import sysconfig
     gcv = sysconfig.get_config_vars()

Added: pypy/branch/ctypes-configure-cache-2/ctypes_configure/dumpcache.py
==============================================================================
--- (empty file)
+++ pypy/branch/ctypes-configure-cache-2/ctypes_configure/dumpcache.py	Sat Mar  6 12:37:29 2010
@@ -0,0 +1,42 @@
+import os
+import ctypes
+
+
+def dumpcache(referencefilename, filename, config):
+    dirname = os.path.dirname(referencefilename)
+    filename = os.path.join(dirname, filename)
+    f = open(filename, 'w')
+    print >> f, 'import ctypes'
+    print >> f
+    names = config.keys()
+    names.sort()
+    for key in names:
+        val = config[key]
+        if isinstance(val, (int, long)):
+            f.write("%s = %d\n" % (key, val))
+        elif val is None:
+            f.write("%s = None\n" % key)
+        elif isinstance(val, ctypes._SimpleCData.__class__):
+            # a simple type
+            f.write("%s = %s\n" % (key, ctypes_repr(val)))
+        elif isinstance(val, ctypes.Structure.__class__):
+            f.write("class %s(ctypes.Structure):\n" % key)
+            f.write("    _fields_ = [\n")
+            for k, v in val._fields_:
+                f.write("        ('%s', %s),\n" % (k, ctypes_repr(v)))
+            f.write("    ]\n")
+        elif isinstance(val, (tuple, list)):
+            for x in val:
+                assert isinstance(x, (int, long, str)), \
+                       "lists of integers or strings only"
+            f.write("%s = %r\n" % (key, val))
+        else:
+            raise NotImplementedError("Saving of %r" % (val,))
+    f.close()
+    print 'Wrote %s.' % (filename,)
+
+def ctypes_repr(cls):
+    # ctypes_configure does not support nested structs so far
+    # so let's ignore it
+    assert isinstance(cls, ctypes._SimpleCData.__class__)
+    return "ctypes." + cls.__name__

Modified: pypy/branch/ctypes-configure-cache-2/ctypes_configure/test/test_configure.py
==============================================================================
--- pypy/branch/ctypes-configure-cache-2/ctypes_configure/test/test_configure.py	(original)
+++ pypy/branch/ctypes-configure-cache-2/ctypes_configure/test/test_configure.py	Sat Mar  6 12:37:29 2010
@@ -126,42 +126,6 @@
                    'ushort': ctypes.c_ushort,
                    'XYZZY': 42}
 
-def test_cache():
-    configdir = configure.configdir
-    test_h = configdir.join('test_ctypes_platform2.h')
-    test_h.write('#define XYZZY 42\n'
-                 "#define large 2147483648L\n")
-
-    class CConfig:
-        _compilation_info_ = ExternalCompilationInfo(
-            pre_include_lines = ["/* a C comment */",
-                                 "#include <stdio.h>",
-                                 "#include <test_ctypes_platform2.h>"],
-            include_dirs = [str(configdir)]
-        )
-
-        FILE = configure.Struct('FILE', [])
-        ushort = configure.SimpleType('unsigned short')
-        XYZZY = configure.ConstantInteger('XYZZY')
-        XUZ = configure.Has('XUZ')
-        large = configure.DefinedConstantInteger('large')
-        undef = configure.Defined('really_undefined')
-
-    res = configure.configure(CConfig)
-
-    cachefile = configdir.join('cache')
-    configure.dumpcache('', str(cachefile), res)
-
-    d = {}
-    execfile(str(cachefile), d)
-    assert d['XYZZY'] == res['XYZZY']
-    assert d['ushort'] == res['ushort']
-    assert d['FILE']._fields_ == res['FILE']._fields_
-    assert d['FILE'].__mro__[1:] == res['FILE'].__mro__[1:]
-    assert d['undef'] == res['undef']
-    assert d['large'] == res['large']
-    assert d['XUZ'] == res['XUZ']
-
 def test_ifdef():
     class CConfig:
         _compilation_info_ = ExternalCompilationInfo(

Added: pypy/branch/ctypes-configure-cache-2/ctypes_configure/test/test_dumpcache.py
==============================================================================
--- (empty file)
+++ pypy/branch/ctypes-configure-cache-2/ctypes_configure/test/test_dumpcache.py	Sat Mar  6 12:37:29 2010
@@ -0,0 +1,39 @@
+from ctypes_configure import configure, dumpcache
+from ctypes_configure.cbuild import ExternalCompilationInfo
+
+
+def test_cache():
+    configdir = configure.configdir
+    test_h = configdir.join('test_ctypes_platform2.h')
+    test_h.write('#define XYZZY 42\n'
+                 "#define large 2147483648L\n")
+
+    class CConfig:
+        _compilation_info_ = ExternalCompilationInfo(
+            pre_include_lines = ["/* a C comment */",
+                                 "#include <stdio.h>",
+                                 "#include <test_ctypes_platform2.h>"],
+            include_dirs = [str(configdir)]
+        )
+
+        FILE = configure.Struct('FILE', [])
+        ushort = configure.SimpleType('unsigned short')
+        XYZZY = configure.ConstantInteger('XYZZY')
+        XUZ = configure.Has('XUZ')
+        large = configure.DefinedConstantInteger('large')
+        undef = configure.Defined('really_undefined')
+
+    res = configure.configure(CConfig)
+
+    cachefile = configdir.join('cache')
+    dumpcache.dumpcache('', str(cachefile), res)
+
+    d = {}
+    execfile(str(cachefile), d)
+    assert d['XYZZY'] == res['XYZZY']
+    assert d['ushort'] == res['ushort']
+    assert d['FILE']._fields_ == res['FILE']._fields_
+    assert d['FILE'].__mro__[1:] == res['FILE'].__mro__[1:]
+    assert d['undef'] == res['undef']
+    assert d['large'] == res['large']
+    assert d['XUZ'] == res['XUZ']



More information about the Pypy-commit mailing list