Author: Armin Rigo <[email protected]>
Branch:
Changeset: r134:36bdfd223942
Date: 2014-12-01 11:39 +0100
http://bitbucket.org/cffi/creflect/changeset/36bdfd223942/
Log: prepare the tests for more
diff --git a/zeffir/test/support.py b/zeffir/test/support.py
new file mode 100644
--- /dev/null
+++ b/zeffir/test/support.py
@@ -0,0 +1,34 @@
+import sys, os
+from udir import udir, include_dir
+
+zeffir_dir = os.path.join(os.path.dirname(__file__), '..')
+zeffir_lib_path = str(udir.join('zeffir.so'))
+
+
+def run(cmd):
+ print cmd
+ err = os.system(cmd)
+ if err:
+ raise OSError("%r\n==> error code %s" % (cmd, err))
+
+def compile_and_open(modname):
+ if not os.path.exists(zeffir_lib_path):
+ run("cd '%s' && "
+ "gcc -g -I'%s' -Wall -Werror -fPIC -shared zeffir.c -o '%s'" %
+ (zeffir_dir, include_dir, zeffir_lib_path))
+ assert os.path.exists(zeffir_lib_path)
+
+ sys.path.insert(0, str(udir))
+ import zeffir
+ del sys.path[0]
+
+ mod_c_path = str(udir.join('%s.c' % modname))
+ mod_lib_path = str(udir.join('lib%s.so' % modname))
+ if not os.path.exists(mod_lib_path):
+ run("cd '%s'/test && "
+ "PYTHONPATH=../.. ../../bin/creflect %s.crx '%s' && "
+ "gcc -g -I../../creflect -fPIC -shared '%s' -o '%s'" %
+ (zeffir_dir, modname, mod_c_path, mod_c_path, mod_lib_path))
+ assert os.path.exists(mod_lib_path)
+
+ return zeffir.open(modname, relative_to=zeffir_lib_path)
diff --git a/zeffir/test/test_basic.py b/zeffir/test/test_basic.py
--- a/zeffir/test/test_basic.py
+++ b/zeffir/test/test_basic.py
@@ -1,39 +1,19 @@
-import os, sys
-from udir import udir, include_dir
-
-def setup_module(mod):
- global zeffir, zeffir_lib_path
- zeffir_dir = os.path.join(os.path.dirname(__file__), '..')
- zeffir_lib_path = str(udir.join('zeffir.so'))
- err = os.system("cd '%s' && "
- "gcc -g -I'%s' -Wall -Werror -fPIC -shared zeffir.c -o '%s'" %
- (zeffir_dir, include_dir, zeffir_lib_path))
- assert not err
- #
- sys.path.insert(0, str(udir))
- import zeffir
- #
- basic_c_path = str(udir.join('basic.c'))
- basic_lib_path = str(udir.join('libbasic.so'))
- err = os.system("cd '%s'/test && "
- "PYTHONPATH=../.. ../../bin/creflect basic.crx '%s' && "
- "gcc -g -I../../creflect -fPIC -shared '%s' -o '%s'" %
- (zeffir_dir, basic_c_path, basic_c_path, basic_lib_path))
- assert not err
+import os
+import support
def test_ffi_type():
- ffi, lib = zeffir.open('basic', relative_to=zeffir_lib_path)
+ ffi, lib = support.compile_and_open('basic')
assert type(ffi).__module__ == 'zeffir'
assert type(ffi).__name__ == 'FFI'
assert repr(ffi) == "<zeffir.FFI object for '%s/libbasic.so'>" % (
- os.path.dirname(zeffir_lib_path),)
+ os.path.dirname(support.zeffir_lib_path),)
def test_forty_two():
- ffi, lib = zeffir.open('basic', relative_to=zeffir_lib_path)
+ ffi, lib = support.compile_and_open('basic')
assert lib.forty_two == 42
assert type(lib.forty_two) is int
def test_dir():
- ffi, lib = zeffir.open('basic', relative_to=zeffir_lib_path)
+ ffi, lib = support.compile_and_open('basic')
assert dir(lib) == ['forty_two']
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit