Revision: 1733
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1733&view=rev
Author: roman_yakovenko
Date: 2009-05-17 04:37:57 +0000 (Sun, 17 May 2009)
Log Message:
-----------
adding new test case
Modified Paths:
--------------
pyplusplus_dev/unittests/test_all.py
Added Paths:
-----------
pyplusplus_dev/unittests/data/mem_var_compile_error_bug_to_be_exported.hpp
pyplusplus_dev/unittests/mem_var_compile_error_bug_tester.py
Added: pyplusplus_dev/unittests/data/mem_var_compile_error_bug_to_be_exported.hpp
===================================================================
--- pyplusplus_dev/unittests/data/mem_var_compile_error_bug_to_be_exported.hpp (rev 0)
+++ pyplusplus_dev/unittests/data/mem_var_compile_error_bug_to_be_exported.hpp 2009-05-17 04:37:57 UTC (rev 1733)
@@ -0,0 +1,73 @@
+// Copyright 2004-2008 Roman Yakovenko.
+// Distributed under 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)
+
+#ifndef __mem_var_compile_error_bug_to_be_exported_hpp__
+#define __mem_var_compile_error_bug_to_be_exported_hpp__
+
+#include <map>
+
+namespace sptCore
+{
+
+//! \brief Representation of connection between two 3d points
+//! \author ShaXbee
+class Path
+{
+
+public:
+ //! Return reversed path
+ Path* reverse() const { return NULL; }
+
+ float length() const { return _length; }
+ float frontRoll() const { return _frontRoll; }
+ float backRoll() const { return _backRoll; }
+
+ typedef std::pair<Path*, Path*> Pair;
+
+private:
+ float _length;
+ float _frontRoll;
+ float _backRoll;
+
+}; // class sptCore::Path
+
+//! \brief Abstract representation of Tracking in Scenery
+//! \author Zbyszek "ShaXbee" Mandziejewicz
+class RailTracking
+{
+
+public:
+ virtual ~RailTracking() { };
+
+ //! Get tracking exit for given entry point
+ //! Throws UnknownEntryException if there is no exit for given entry
+ virtual void getExit() const = 0;
+
+ //! Get path that begins at given position
+ //! Throws UnknownEntryException if there is no path for given entry
+ virtual Path* getPath() const = 0;
+
+}; // class sptCore::RailTracking
+
+class Track: public RailTracking
+{
+
+public:
+ virtual ~Track() { };
+
+ virtual void getExit() const{}
+ virtual Path* getPath() const{return NULL;}
+
+ virtual Path* getDefaultPath() const { return NULL; };
+
+private:
+ // Py++: Removing this line makes wrapper compilable
+ Path::Pair _path;
+
+};
+
+} // namespace sptCore
+
+#endif//__mem_var_compile_error_bug_to_be_exported_hpp__
Added: pyplusplus_dev/unittests/mem_var_compile_error_bug_tester.py
===================================================================
--- pyplusplus_dev/unittests/mem_var_compile_error_bug_tester.py (rev 0)
+++ pyplusplus_dev/unittests/mem_var_compile_error_bug_tester.py 2009-05-17 04:37:57 UTC (rev 1733)
@@ -0,0 +1,47 @@
+# Copyright 2004-2008 Roman Yakovenko.
+# Distributed under 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 sys
+import unittest
+import fundamental_tester_base
+from pyplusplus.module_builder import call_policies
+
+class tester_t(fundamental_tester_base.fundamental_tester_base_t):
+ EXTENSION_NAME = 'mem_var_compile_error_bug'
+
+ def __init__( self, *args ):
+ fundamental_tester_base.fundamental_tester_base_t.__init__(
+ self
+ , tester_t.EXTENSION_NAME
+ , *args )
+
+ def customize(self, mb ):
+ opaqueDecls = {
+ 'Path': ['reverse'],
+ 'RailTracking': ['getPath'],
+ 'Track': ['getPath', 'getDefaultPath']
+ }
+
+ mb.class_('Path').include()
+
+ for decl in opaqueDecls.items():
+ cls = mb.class_(decl[0])
+ for methodName in decl[1]:
+ cls.member_function(methodName).call_policies = call_policies.return_value_policy(call_policies.return_opaque_pointer);
+
+ def run_tests(self, module):
+ pass
+
+def create_suite():
+ suite = unittest.TestSuite()
+ suite.addTest( unittest.makeSuite(tester_t))
+ return suite
+
+def run_suite():
+ unittest.TextTestRunner(verbosity=2).run( create_suite() )
+
+if __name__ == "__main__":
+ run_suite()
Modified: pyplusplus_dev/unittests/test_all.py
===================================================================
--- pyplusplus_dev/unittests/test_all.py 2009-05-14 12:04:50 UTC (rev 1732)
+++ pyplusplus_dev/unittests/test_all.py 2009-05-17 04:37:57 UTC (rev 1733)
@@ -1,340 +1,342 @@
-# Copyright 2004-2008 Roman Yakovenko.
-# Distributed under 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 re
-import sys
-import time
-import shutil
-
-import autoconfig
-
-import classes_tester
-import abstract_classes_tester
-import algorithms_tester
-import module_body_tester
-import enums_tester
-import free_functions_tester
-import fundamental_tester_base
-import unnamed_enums_tester
-import namespaces_tester
-import classes_tester
-import global_variables_tester
-import member_variables_tester
-import member_functions_tester
-import call_policies_tester
-import pointer_to_function_as_argument
-import operators_tester
-import abstract_tester
-import statics_tester
-import regression1_tester
-import casting_tester
-import finalizables_tester
-import free_operators_tester
-import operators_bug_tester
-import smart_pointers_tester
-import special_operators_tester
-import module_properties_tester
-import internal_classes_tester
-import temporary_variable_tester
-import recursive_tester
-import class_order_tester
-import class_order2_tester
-import class_order3_tester
-import class_order4_tester
-import noncopyable_tester
-import regression2_tester
-import regression3_tester
-import optional_tester
-import index_operator_tester
-import dwrapper_printer_tester
-import mdecl_wrapper_tester
-import user_text_tester
-import free_function_ignore_bug_tester
-import optional_bug_tester
-import pointer_as_arg_tester
-import factory_tester
-import private_assign_tester
-import protected_tester
-import protected_bug_tester
-import indexing_suites_tester
-import indexing_suites2_tester
-import hierarchy3_tester
-import vector3_tester
-import default_args_tester
-import unnamed_classes_tester
-import cppexceptions_tester
-import no_init_tester
-import overloads_macro_tester
-import split_module_tester
-import properties_tester
-import arrays_bug_tester
-import convenience_tester
-import inner_class_bug_tester
-import declarations_order_bug_tester
-import function_transformations_tester
-import throw_tester
-import duplicate_aliases_tester
-import non_overridable_tester
-import exposed_decls_db_tester
-import already_exposed_tester
-import bpmodule_tester
-import custom_smart_ptr_classes_tester
-import custom_string_tester
-import final_classes_tester
-import templates_tester
-import deepcopy_tester
-import override_bug_tester
-import mem_fun_with_exception_tester
-import overriden_virtual_functions_bug_tester
-import split_module_bug_tester
-import tnfox_bugs_tester
-import transfer_ownership_old_tester
-import transfer_ownership_tester
-import unicode_bug
-import include_exclude_bug_tester
-import vector_with_shared_data_tester
-import constructors_bug_tester
-import precompiled_header_tester
-import balanced_files_tester
-import ft_inout_tester
-import split_module_indexing_suite_bug_tester
-import inner_tmpl_class_tester
-import bug_covariant_returns_tester
-import embeded_tester
-import unions_tester
-import cp_return_addressof_tester
-import make_constructor_tester
-import return_auto_ptr_tester
-import ctypes_tester
-import refee_refer_tester
-import indexing_suites_v2_bug_tester
-import virtual_inheritance_tester
-import indexing_suite_v1_tester
-import derive_from_deque_tester
-import std_pair_tester
-#import ogre_generate_tester
-
-testers = [
- algorithms_tester
- , module_body_tester
- , enums_tester
- , free_functions_tester
- , unnamed_enums_tester
- , namespaces_tester
- , classes_tester
- , global_variables_tester
- , member_variables_tester
- , member_functions_tester
- , call_policies_tester
- , pointer_to_function_as_argument
- , operators_tester
- , abstract_tester
- , statics_tester
- , regression1_tester
- , casting_tester
- , finalizables_tester
- , free_operators_tester
- , operators_bug_tester
- , smart_pointers_tester
- , special_operators_tester
- , module_properties_tester
- , internal_classes_tester
- , temporary_variable_tester
- , recursive_tester
- , class_order_tester
- , noncopyable_tester
- , regression2_tester
- , regression3_tester
- , class_order2_tester
- , class_order3_tester
- , class_order4_tester
- , optional_tester
- , index_operator_tester
- , dwrapper_printer_tester
- , mdecl_wrapper_tester
- , user_text_tester
- , free_function_ignore_bug_tester
- , optional_bug_tester
- , pointer_as_arg_tester
- , factory_tester
- , private_assign_tester
- , protected_tester
- , indexing_suites_tester
- , hierarchy3_tester
- , vector3_tester
- , default_args_tester
- , abstract_classes_tester
- , indexing_suites2_tester
- , unnamed_classes_tester
- , cppexceptions_tester
- , no_init_tester
- , overloads_macro_tester
- , split_module_tester
- , properties_tester
- , arrays_bug_tester
- , convenience_tester
- , inner_class_bug_tester
- , declarations_order_bug_tester
- , function_transformations_tester
- , throw_tester
- , duplicate_aliases_tester
- , non_overridable_tester
- , exposed_decls_db_tester
- , already_exposed_tester
- , bpmodule_tester
- , custom_smart_ptr_classes_tester
- , custom_string_tester
- , final_classes_tester
- , mem_fun_with_exception_tester
- , overriden_virtual_functions_bug_tester
- , split_module_bug_tester
- , tnfox_bugs_tester
- , transfer_ownership_old_tester
- , transfer_ownership_tester
- , unicode_bug
- , include_exclude_bug_tester
- , vector_with_shared_data_tester
- , templates_tester
- , constructors_bug_tester
- , precompiled_header_tester
- , balanced_files_tester
- , ft_inout_tester
- , deepcopy_tester
- , override_bug_tester
- , split_module_indexing_suite_bug_tester
- , inner_tmpl_class_tester
- , bug_covariant_returns_tester
- , embeded_tester
- , unions_tester
- , cp_return_addressof_tester
- , make_constructor_tester
- , return_auto_ptr_tester
- , protected_bug_tester
- , ctypes_tester
- , refee_refer_tester
- , indexing_suites_v2_bug_tester
- , virtual_inheritance_tester
- , indexing_suite_v1_tester
- , derive_from_deque_tester
- , std_pair_tester
-# , ogre_generate_tester too much time
-]
-
-class module_runner_t( object ):
- bottom_line_re = re.compile( 'Ran\s(?P<num_of_tests>\d+)\stests?\sin\s(?P<seconds>\d+\.?\d*)s')
- test_name_re = re.compile( '(?P<name>.+ \(.+\))\s\.\.\.' )
- failed_test_re = re.compile( 'FAIL\:\s(?P<name>.+ \(.+\))' )
- error_test_re = re.compile( 'ERROR\:\s(?P<name>.+ \(.+\))' )
-
- def __init__( self, module ):
- self.module = module
- self.output = None
-
- self.test_results = {} #test name : result
- self.num_of_tests = 0
- self.total_run_time = 0
- self.exit_status = None
-
- def __call__( self ):
- print os.linesep, '<*> start %s tester' % os.path.basename( self.module.__file__)
-
- test_file_name = self.module.__file__
- if test_file_name.endswith( 'pyc' ):
- test_file_name = test_file_name[:-1]
- command_line = ' '.join([ '"%s"' % sys.executable, test_file_name ])
- input_, output = os.popen4( command_line )
- input_.close()
- report = []
- while True:
- data = output.readline()
- report.append( data )
- if not data:
- break
- else:
- print data,
- self.output = ''.join( report )
- self.exit_status = output.close()
- self.__update()
- print '<***> finish %s tester' % os.path.basename( self.module.__file__)
-
- def __create_unique_name( self, name ):
- if '__main__.' in name:
- name = name.replace( '__main__', os.path.basename( self.module.__file__)[:-4] )
- return name
-
- def __update( self ):
- match_found = self.bottom_line_re.search( self.output )
- if match_found:
- self.num_of_tests += int( match_found.group( 'num_of_tests' ) )
- self.total_run_time += float( match_found.group( 'seconds' ) )
-
- uname = self.__create_unique_name
- for match_found in self.test_name_re.finditer( self.output ):
- self.test_results[ uname( match_found.group( 'name' ) ) ] = 'ok'
-
- for match_found in self.failed_test_re.finditer( self.output ):
- hint = ''
- if hasattr( self.module, 'EXPECTED_FAILURE_INFO' ):
- hint = " - EXPECTED. " + self.module.EXPECTED_FAILURE_INFO
- self.test_results[ uname( match_found.group( 'name' ) ) ] = 'FAIL' + hint
-
- for match_found in self.error_test_re.finditer( self.output ):
- hint = ''
- if hasattr( self.module, 'EXPECTED_ERROR_INFO' ):
- hint = " - EXPECTED. " + self.module.EXPECTED_ERROR_INFO
- self.test_results[ uname( match_found.group( 'name' ) ) ] = 'ERROR' + hint
-
- assert( self.num_of_tests == len( self.test_results ) )
-
-
-class process_tester_runner_t( object ):
-
- def __init__( self, modules ):
- self.__m_runners = [ module_runner_t(m) for m in modules ]
- self.__total_time = 0
-
- def __dump_statistics( self ):
- num_of_tests = 0
- test_results = {}
- total_tests_only_run_time = 0
- exit_status = 0
- for stat in self.__m_runners:
- num_of_tests += stat.num_of_tests
- total_tests_only_run_time += stat.total_run_time
- test_results.update( stat.test_results )
- exit_status = max( exit_status, stat.exit_status )
- test_failed = len( filter( lambda result: result != 'ok', test_results.values() ) )
-
- for name, result in test_results.iteritems():
- if result != 'ok':
- print '! ',
- print name, ' - ', result
- print '----------------------------------------------------------------------'
- print 'Final exit status: ', exit_status
- print 'Ran %d test in %fs. Multi-processing overhead: %fs.' \
- % ( num_of_tests, self.__total_time, self.__total_time - total_tests_only_run_time )
- print ' '
- if test_failed:
- print os.linesep.join(['FAILED (failures=%d)' % test_failed, 'False'])
- else:
- print 'ok'
-
- def __call__( self ):
- start_time = time.time()
- for index, tester in enumerate( self.__m_runners ):
- print '\n\n{[<@>]}running tests complition: %d%%' % int( index * 100.0 // len(self.__m_runners) )
- print '--------------------------------^^^^^\n\n'
- if os.path.exists( os.path.join( autoconfig.build_directory, 'indexing_suite' ) ):
- shutil.rmtree( os.path.join( autoconfig.build_directory, 'indexing_suite' ) )
- tester()
- self.__total_time = time.time() - start_time
- self.__dump_statistics()
-
-
-if __name__ == "__main__":
- runner = process_tester_runner_t( testers )
- runner()
-
+# Copyright 2004-2008 Roman Yakovenko.
+# Distributed under 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 re
+import sys
+import time
+import shutil
+
+import autoconfig
+
+import classes_tester
+import abstract_classes_tester
+import algorithms_tester
+import module_body_tester
+import enums_tester
+import free_functions_tester
+import fundamental_tester_base
+import unnamed_enums_tester
+import namespaces_tester
+import classes_tester
+import global_variables_tester
+import member_variables_tester
+import member_functions_tester
+import call_policies_tester
+import pointer_to_function_as_argument
+import operators_tester
+import abstract_tester
+import statics_tester
+import regression1_tester
+import casting_tester
+import finalizables_tester
+import free_operators_tester
+import operators_bug_tester
+import smart_pointers_tester
+import special_operators_tester
+import module_properties_tester
+import internal_classes_tester
+import temporary_variable_tester
+import recursive_tester
+import class_order_tester
+import class_order2_tester
+import class_order3_tester
+import class_order4_tester
+import noncopyable_tester
+import regression2_tester
+import regression3_tester
+import optional_tester
+import index_operator_tester
+import dwrapper_printer_tester
+import mdecl_wrapper_tester
+import user_text_tester
+import free_function_ignore_bug_tester
+import optional_bug_tester
+import pointer_as_arg_tester
+import factory_tester
+import private_assign_tester
+import protected_tester
+import protected_bug_tester
+import indexing_suites_tester
+import indexing_suites2_tester
+import hierarchy3_tester
+import vector3_tester
+import default_args_tester
+import unnamed_classes_tester
+import cppexceptions_tester
+import no_init_tester
+import overloads_macro_tester
+import split_module_tester
+import properties_tester
+import arrays_bug_tester
+import convenience_tester
+import inner_class_bug_tester
+import declarations_order_bug_tester
+import function_transformations_tester
+import throw_tester
+import duplicate_aliases_tester
+import non_overridable_tester
+import exposed_decls_db_tester
+import already_exposed_tester
+import bpmodule_tester
+import custom_smart_ptr_classes_tester
+import custom_string_tester
+import final_classes_tester
+import templates_tester
+import deepcopy_tester
+import override_bug_tester
+import mem_fun_with_exception_tester
+import overriden_virtual_functions_bug_tester
+import split_module_bug_tester
+import tnfox_bugs_tester
+import transfer_ownership_old_tester
+import transfer_ownership_tester
+import unicode_bug
+import include_exclude_bug_tester
+import vector_with_shared_data_tester
+import constructors_bug_tester
+import precompiled_header_tester
+import balanced_files_tester
+import ft_inout_tester
+import split_module_indexing_suite_bug_tester
+import inner_tmpl_class_tester
+import bug_covariant_returns_tester
+import embeded_tester
+import unions_tester
+import cp_return_addressof_tester
+import make_constructor_tester
+import return_auto_ptr_tester
+import ctypes_tester
+import refee_refer_tester
+import indexing_suites_v2_bug_tester
+import virtual_inheritance_tester
+import indexing_suite_v1_tester
+import derive_from_deque_tester
+import std_pair_tester
+import mem_var_compile_error_bug_tester
+#import ogre_generate_tester
+
+testers = [
+ algorithms_tester
+ , module_body_tester
+ , enums_tester
+ , free_functions_tester
+ , unnamed_enums_tester
+ , namespaces_tester
+ , classes_tester
+ , global_variables_tester
+ , member_variables_tester
+ , member_functions_tester
+ , call_policies_tester
+ , pointer_to_function_as_argument
+ , operators_tester
+ , abstract_tester
+ , statics_tester
+ , regression1_tester
+ , casting_tester
+ , finalizables_tester
+ , free_operators_tester
+ , operators_bug_tester
+ , smart_pointers_tester
+ , special_operators_tester
+ , module_properties_tester
+ , internal_classes_tester
+ , temporary_variable_tester
+ , recursive_tester
+ , class_order_tester
+ , noncopyable_tester
+ , regression2_tester
+ , regression3_tester
+ , class_order2_tester
+ , class_order3_tester
+ , class_order4_tester
+ , optional_tester
+ , index_operator_tester
+ , dwrapper_printer_tester
+ , mdecl_wrapper_tester
+ , user_text_tester
+ , free_function_ignore_bug_tester
+ , optional_bug_tester
+ , pointer_as_arg_tester
+ , factory_tester
+ , private_assign_tester
+ , protected_tester
+ , indexing_suites_tester
+ , hierarchy3_tester
+ , vector3_tester
+ , default_args_tester
+ , abstract_classes_tester
+ , indexing_suites2_tester
+ , unnamed_classes_tester
+ , cppexceptions_tester
+ , no_init_tester
+ , overloads_macro_tester
+ , split_module_tester
+ , properties_tester
+ , arrays_bug_tester
+ , convenience_tester
+ , inner_class_bug_tester
+ , declarations_order_bug_tester
+ , function_transformations_tester
+ , throw_tester
+ , duplicate_aliases_tester
+ , non_overridable_tester
+ , exposed_decls_db_tester
+ , already_exposed_tester
+ , bpmodule_tester
+ , custom_smart_ptr_classes_tester
+ , custom_string_tester
+ , final_classes_tester
+ , mem_fun_with_exception_tester
+ , overriden_virtual_functions_bug_tester
+ , split_module_bug_tester
+ , tnfox_bugs_tester
+ , transfer_ownership_old_tester
+ , transfer_ownership_tester
+ , unicode_bug
+ , include_exclude_bug_tester
+ , vector_with_shared_data_tester
+ , templates_tester
+ , constructors_bug_tester
+ , precompiled_header_tester
+ , balanced_files_tester
+ , ft_inout_tester
+ , deepcopy_tester
+ , override_bug_tester
+ , split_module_indexing_suite_bug_tester
+ , inner_tmpl_class_tester
+ , bug_covariant_returns_tester
+ , embeded_tester
+ , unions_tester
+ , cp_return_addressof_tester
+ , make_constructor_tester
+ , return_auto_ptr_tester
+ , protected_bug_tester
+ , ctypes_tester
+ , refee_refer_tester
+ , indexing_suites_v2_bug_tester
+ , virtual_inheritance_tester
+ , indexing_suite_v1_tester
+ , derive_from_deque_tester
+ , std_pair_tester
+ , mem_var_compile_error_bug_tester
+# , ogre_generate_tester too much time
+]
+
+class module_runner_t( object ):
+ bottom_line_re = re.compile( 'Ran\s(?P<num_of_tests>\d+)\stests?\sin\s(?P<seconds>\d+\.?\d*)s')
+ test_name_re = re.compile( '(?P<name>.+ \(.+\))\s\.\.\.' )
+ failed_test_re = re.compile( 'FAIL\:\s(?P<name>.+ \(.+\))' )
+ error_test_re = re.compile( 'ERROR\:\s(?P<name>.+ \(.+\))' )
+
+ def __init__( self, module ):
+ self.module = module
+ self.output = None
+
+ self.test_results = {} #test name : result
+ self.num_of_tests = 0
+ self.total_run_time = 0
+ self.exit_status = None
+
+ def __call__( self ):
+ print os.linesep, '<*> start %s tester' % os.path.basename( self.module.__file__)
+
+ test_file_name = self.module.__file__
+ if test_file_name.endswith( 'pyc' ):
+ test_file_name = test_file_name[:-1]
+ command_line = ' '.join([ '"%s"' % sys.executable, test_file_name ])
+ input_, output = os.popen4( command_line )
+ input_.close()
+ report = []
+ while True:
+ data = output.readline()
+ report.append( data )
+ if not data:
+ break
+ else:
+ print data,
+ self.output = ''.join( report )
+ self.exit_status = output.close()
+ self.__update()
+ print '<***> finish %s tester' % os.path.basename( self.module.__file__)
+
+ def __create_unique_name( self, name ):
+ if '__main__.' in name:
+ name = name.replace( '__main__', os.path.basename( self.module.__file__)[:-4] )
+ return name
+
+ def __update( self ):
+ match_found = self.bottom_line_re.search( self.output )
+ if match_found:
+ self.num_of_tests += int( match_found.group( 'num_of_tests' ) )
+ self.total_run_time += float( match_found.group( 'seconds' ) )
+
+ uname = self.__create_unique_name
+ for match_found in self.test_name_re.finditer( self.output ):
+ self.test_results[ uname( match_found.group( 'name' ) ) ] = 'ok'
+
+ for match_found in self.failed_test_re.finditer( self.output ):
+ hint = ''
+ if hasattr( self.module, 'EXPECTED_FAILURE_INFO' ):
+ hint = " - EXPECTED. " + self.module.EXPECTED_FAILURE_INFO
+ self.test_results[ uname( match_found.group( 'name' ) ) ] = 'FAIL' + hint
+
+ for match_found in self.error_test_re.finditer( self.output ):
+ hint = ''
+ if hasattr( self.module, 'EXPECTED_ERROR_INFO' ):
+ hint = " - EXPECTED. " + self.module.EXPECTED_ERROR_INFO
+ self.test_results[ uname( match_found.group( 'name' ) ) ] = 'ERROR' + hint
+
+ assert( self.num_of_tests == len( self.test_results ) )
+
+
+class process_tester_runner_t( object ):
+
+ def __init__( self, modules ):
+ self.__m_runners = [ module_runner_t(m) for m in modules ]
+ self.__total_time = 0
+
+ def __dump_statistics( self ):
+ num_of_tests = 0
+ test_results = {}
+ total_tests_only_run_time = 0
+ exit_status = 0
+ for stat in self.__m_runners:
+ num_of_tests += stat.num_of_tests
+ total_tests_only_run_time += stat.total_run_time
+ test_results.update( stat.test_results )
+ exit_status = max( exit_status, stat.exit_status )
+ test_failed = len( filter( lambda result: result != 'ok', test_results.values() ) )
+
+ for name, result in test_results.iteritems():
+ if result != 'ok':
+ print '! ',
+ print name, ' - ', result
+ print '----------------------------------------------------------------------'
+ print 'Final exit status: ', exit_status
+ print 'Ran %d test in %fs. Multi-processing overhead: %fs.' \
+ % ( num_of_tests, self.__total_time, self.__total_time - total_tests_only_run_time )
+ print ' '
+ if test_failed:
+ print os.linesep.join(['FAILED (failures=%d)' % test_failed, 'False'])
+ else:
+ print 'ok'
+
+ def __call__( self ):
+ start_time = time.time()
+ for index, tester in enumerate( self.__m_runners ):
+ print '\n\n{[<@>]}running tests complition: %d%%' % int( index * 100.0 // len(self.__m_runners) )
+ print '--------------------------------^^^^^\n\n'
+ if os.path.exists( os.path.join( autoconfig.build_directory, 'indexing_suite' ) ):
+ shutil.rmtree( os.path.join( autoconfig.build_directory, 'indexing_suite' ) )
+ tester()
+ self.__total_time = time.time() - start_time
+ self.__dump_statistics()
+
+
+if __name__ == "__main__":
+ runner = process_tester_runner_t( testers )
+ runner()
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|