diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-06-25 22:59:01 +0000 |
---|---|---|
committer | <> | 2013-09-27 11:49:28 +0000 |
commit | 8c4528713d907ee2cfd3bfcbbad272c749867f84 (patch) | |
tree | c09e2ce80f47b90c85cc720f5139089ad9c8cfff /libs/python/pyste/tests/test_all.py | |
download | boost-tarball-baserock/morph.tar.gz |
Imported from /home/lorry/working-area/delta_boost-tarball/boost_1_54_0.tar.bz2.boost_1_54_0baserock/morph
Diffstat (limited to 'libs/python/pyste/tests/test_all.py')
-rw-r--r-- | libs/python/pyste/tests/test_all.py | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/libs/python/pyste/tests/test_all.py b/libs/python/pyste/tests/test_all.py new file mode 100644 index 000000000..ba3c54dee --- /dev/null +++ b/libs/python/pyste/tests/test_all.py @@ -0,0 +1,140 @@ +#!/usr/bin/python +# Copyright Bruno da Silva de Oliveira 2003. Use, modification and +# distribution is subject to the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +import os +import glob +import shutil +import sys +import time + +#============================================================================= +# win32 configuration +#============================================================================= +if sys.platform == 'win32': + + includes = '-ID:/programming/libraries/boost-cvs/boost -ID:/Bin/Python/include' + build_pyste_cmd = 'python ../src/Pyste/pyste.py --pyste-ns=pyste --cache-dir=cache %s ' % includes + compile_single_cmd = 'cl /nologo /GR /GX -c %s -I. ' % includes + link_single_cmd = 'link /nologo /DLL '\ + '/libpath:D:/programming/libraries/boost-cvs/lib /libpath:D:/Bin/Python/libs '\ + 'boost_python.lib python24.lib /out:_%s.dll ' + obj_ext = 'obj' + +#============================================================================= +# linux configuration +#============================================================================= +elif sys.platform == 'linux2': + + build_pyste_cmd = 'python ../src/Pyste/pyste.py -I. ' + compile_single_cmd = 'g++ -shared -c -I. -I/usr/include/python2.4 ' + link_single_cmd = 'g++ -shared -o _%s.so -lboost_python ' + obj_ext = 'o' + + + +def build_pyste(multiple, module): + rest = '%s --module=_%s %s.pyste' % (multiple, module, module) + execute(build_pyste_cmd + rest) + + +def compile_single(module): + module_obj = '' + if os.path.isfile(module+'.cpp'): + execute(compile_single_cmd + module+'.cpp') + module_obj = module + '.' + obj_ext + execute(compile_single_cmd + ('_%s.cpp' % module)) + link = link_single_cmd % module + execute(link + ('_%s.%s ' % (module, obj_ext)) + module_obj) + + +def compile_multiple(module): + module_obj = '' + if os.path.isfile(module+'.cpp'): + execute(compile_single_cmd + module+'.cpp') + module_obj = module + '.' + obj_ext + files = glob.glob('_%s/*.cpp' % module) + for f in files: + execute(compile_single_cmd + f) + def basename(name): + return os.path.basename(os.path.splitext(name)[0]) + objs = [basename(x) + '.' + obj_ext for x in files] + objs.append(module_obj) + execute((link_single_cmd % module) + ' '.join(objs)) + + +def execute(cmd): + os.system(cmd) + + +def run_tests(): + if os.system('python runtests.py') != 0: + raise RuntimeError, 'tests failed' + + +def cleanup(): + modules = get_modules() + extensions = '*.dll *.pyc *.obj *.exp *.lib *.o *.so' + files = [] + for module in modules: + files.append('_' + module + '.cpp') + for ext in extensions.split(): + files += glob.glob(ext) + files.append('build.log') + for file in files: + try: + os.remove(file) + except OSError: pass + + for module in modules: + try: + shutil.rmtree('_' + module) + except OSError: pass + + +def main(multiple, module=None): + if module is None: + modules = get_modules() + else: + modules = [module] + + start = time.clock() + for module in modules: + build_pyste(multiple, module) + print '-'*50 + print 'Building pyste files: %0.2f seconds' % (time.clock()-start) + print + + start = time.clock() + for module in modules: + if multiple: + compile_multiple(module) + else: + compile_single(module) + print '-'*50 + print 'Compiling files: %0.2f seconds' % (time.clock()-start) + print + if len(modules) == 1: + os.system('python %sUT.py' % modules[0]) + else: + run_tests() + #cleanup() + + +def get_modules(): + def getname(file): + return os.path.splitext(os.path.basename(file))[0] + return [getname(x) for x in glob.glob('*.pyste')] + +if __name__ == '__main__': + if len(sys.argv) > 1: + module = sys.argv[1] + else: + module = None + try: +# main('--multiple', module) + main('', module) + except RuntimeError, e: + print e |