Thread: [pygccxml-commit] SF.net SVN: pygccxml:[1703] pyplusplus_dev/unittests (Page 2)
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2009-04-23 10:29:21
|
Revision: 1703 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1703&view=rev Author: roman_yakovenko Date: 2009-04-23 10:29:18 +0000 (Thu, 23 Apr 2009) Log Message: ----------- porting tests to boost 1.39, Python 2.6 and Visual Studio 2008 Modified Paths: -------------- pyplusplus_dev/unittests/autoconfig.py pyplusplus_dev/unittests/test_all.py Added Paths: ----------- pyplusplus_dev/unittests/gccxml.cfg Property Changed: ---------------- pyplusplus_dev/unittests/ Property changes on: pyplusplus_dev/unittests ___________________________________________________________________ Modified: svn:ignore - *.pyc + *.pyc temp Modified: pyplusplus_dev/unittests/autoconfig.py =================================================================== --- pyplusplus_dev/unittests/autoconfig.py 2009-04-23 10:22:07 UTC (rev 1702) +++ pyplusplus_dev/unittests/autoconfig.py 2009-04-23 10:29:18 UTC (rev 1703) @@ -44,7 +44,12 @@ libs = [] libpath = [ python.libs ] + boost.libs cpppath = [ boost.include, python.include, build_directory ] #indexing_suite.include ] - include_dirs = cpppath + [data_directory] + include_dirs = cpppath + [data_directory] + cxx_parsers_cfg.gccxml.include_paths + if cxx_parsers_cfg.gccxml.compiler == 'msvc9': + libpath.append( r'C:\Program Files\Microsoft Visual Studio 9.0\VC\lib' ) + libpath.append( r'C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib' ) + include_dirs.append( r'C:\Program Files\Microsoft Visual Studio 9.0\VC\include' ) + include_dirs.append( r'C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include' ) @staticmethod def create_sconstruct(): Added: pyplusplus_dev/unittests/gccxml.cfg =================================================================== --- pyplusplus_dev/unittests/gccxml.cfg (rev 0) +++ pyplusplus_dev/unittests/gccxml.cfg 2009-04-23 10:29:18 UTC (rev 1703) @@ -0,0 +1,13 @@ +[gccxml] +#path to gccxml executable file - optional, if not provided, os.environ['PATH'] +#variable is used to find it +gccxml_path= +#gccxml working directory - optional, could be set to your source code directory +working_directory= +#additional include directories, separated by ';' or ':' +include_paths= +#gccxml has a nice algorithms, which selects what C++ compiler to emulate. +#You can explicitly set what compiler it should emulate. +#Valid options are: g++, msvc6, msvc7, msvc71, msvc8, cl. +compiler=msvc9 +#GCC-XML site: http://gccxml.org/ Modified: pyplusplus_dev/unittests/test_all.py =================================================================== --- pyplusplus_dev/unittests/test_all.py 2009-04-23 10:22:07 UTC (rev 1702) +++ pyplusplus_dev/unittests/test_all.py 2009-04-23 10:29:18 UTC (rev 1703) @@ -244,7 +244,7 @@ test_file_name = self.module.__file__ if test_file_name.endswith( 'pyc' ): test_file_name = test_file_name[:-1] - command_line = ' '.join([ sys.executable, test_file_name ]) + command_line = ' '.join([ '"%s"' % sys.executable, test_file_name ]) input_, output = os.popen4( command_line ) input_.close() report = [] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-04-24 19:49:02
|
Revision: 1705 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1705&view=rev Author: roman_yakovenko Date: 2009-04-24 19:48:52 +0000 (Fri, 24 Apr 2009) Log Message: ----------- adding test for operator<< Modified Paths: -------------- pyplusplus_dev/unittests/autoconfig.py pyplusplus_dev/unittests/data/indexing_suites2_to_be_exported.hpp Modified: pyplusplus_dev/unittests/autoconfig.py =================================================================== --- pyplusplus_dev/unittests/autoconfig.py 2009-04-24 19:47:36 UTC (rev 1704) +++ pyplusplus_dev/unittests/autoconfig.py 2009-04-24 19:48:52 UTC (rev 1705) @@ -37,6 +37,7 @@ gccxml.define_symbols.append( '__PYGCCXML_%s__' % gccxml.compiler.upper() ) if 'msvc9' == gccxml.compiler: gccxml.define_symbols.append( '_HAS_TR1=0' ) + gccxml.include_paths.append( boost.include ) print 'GCCXML configured to simulate compiler ', cxx_parsers_cfg.gccxml.compiler Modified: pyplusplus_dev/unittests/data/indexing_suites2_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/indexing_suites2_to_be_exported.hpp 2009-04-24 19:47:36 UTC (rev 1704) +++ pyplusplus_dev/unittests/data/indexing_suites2_to_be_exported.hpp 2009-04-24 19:48:52 UTC (rev 1705) @@ -20,6 +20,7 @@ #endif//GCCXML #endif +#include <iostream> #include <vector> #include <string> #include <map> @@ -107,6 +108,13 @@ } +std::ostream& operator<<( std::ostream& o, const indexing_suites2::set_strings_t& x){ + for( indexing_suites2::set_strings_t::const_iterator index = x.begin(); index != x.end(); ++index ){ + o << *index << ','; + } + return o; +} + namespace pyplusplus{ namespace aliases{ typedef std::vector<indexing_suites2::item_t*> items_ptr_t; }} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-05-17 04:38:02
|
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. |
From: <rom...@us...> - 2009-05-17 05:48:52
|
Revision: 1734 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1734&view=rev Author: roman_yakovenko Date: 2009-05-17 05:48:47 +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/return_ref_to_ptr_to_be_exported.hpp pyplusplus_dev/unittests/return_ref_to_ptr_tester.py Added: pyplusplus_dev/unittests/data/return_ref_to_ptr_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/return_ref_to_ptr_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/return_ref_to_ptr_to_be_exported.hpp 2009-05-17 05:48:47 UTC (rev 1734) @@ -0,0 +1,27 @@ +// 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 __return_ref_to_ptr_to_be_exported_hpp__ +#define __return_ref_to_ptr_to_be_exported_hpp__ + +struct number_t{ + int m_value; +}; + + +struct numbers_t{ + numbers_t() + : m_number( new number_t() ) + {} + + typedef number_t * value_type; + const value_type& operator[]( int index ) const { + return m_number; + } + number_t* m_number; +}; + + +#endif//__return_ref_to_ptr_to_be_exported_hpp__ Added: pyplusplus_dev/unittests/return_ref_to_ptr_tester.py =================================================================== --- pyplusplus_dev/unittests/return_ref_to_ptr_tester.py (rev 0) +++ pyplusplus_dev/unittests/return_ref_to_ptr_tester.py 2009-05-17 05:48:47 UTC (rev 1734) @@ -0,0 +1,37 @@ +# 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 = 'return_ref_to_ptr' + + def __init__( self, *args ): + fundamental_tester_base.fundamental_tester_base_t.__init__( + self + , tester_t.EXTENSION_NAME + , *args ) + + def customize(self, mb ): + mb.class_('numbers_t').operator('[]').call_policies = call_policies.return_internal_reference() + + def run_tests(self, module): + numbers = module.numbers_t() + n = numbers[1] + +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-17 04:37:57 UTC (rev 1733) +++ pyplusplus_dev/unittests/test_all.py 2009-05-17 05:48:47 UTC (rev 1734) @@ -116,6 +116,7 @@ import derive_from_deque_tester import std_pair_tester import mem_var_compile_error_bug_tester +import return_ref_to_ptr_tester #import ogre_generate_tester testers = [ @@ -222,6 +223,7 @@ , derive_from_deque_tester , std_pair_tester , mem_var_compile_error_bug_tester + , return_ref_to_ptr_tester # , ogre_generate_tester too much time ] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-06-14 04:17:47
|
Revision: 1739 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1739&view=rev Author: roman_yakovenko Date: 2009-06-14 04:17:46 +0000 (Sun, 14 Jun 2009) Log Message: ----------- adding new test case - immutable by reference Modified Paths: -------------- pyplusplus_dev/unittests/call_policies_tester.py pyplusplus_dev/unittests/classes_tester.py pyplusplus_dev/unittests/data/call_policies_to_be_exported.hpp Modified: pyplusplus_dev/unittests/call_policies_tester.py =================================================================== --- pyplusplus_dev/unittests/call_policies_tester.py 2009-06-10 06:31:44 UTC (rev 1738) +++ pyplusplus_dev/unittests/call_policies_tester.py 2009-06-14 04:17:46 UTC (rev 1739) @@ -24,7 +24,7 @@ ssize_t operator()( boost::python::tuple args ){ boost::python::object self = args[0]; - call_policies::return_range_image_t& image + call_policies::return_range_image_t& image = boost::python::extract<call_policies::return_range_image_t&>( self ); return image.raw_data.size(); } @@ -82,6 +82,9 @@ , 'get_create_images_size_t' , call_policies.return_value_policy(call_policies.reference_existing_object) ) + mb.calldef( '::call_policies::immutable_by_ref_t::get_value' ).call_policies \ + = call_policies.return_value_policy( call_policies.copy_non_const_reference ) + def run_tests(self, module): self.failUnless( module.compare( module.my_address() ) ) @@ -99,26 +102,29 @@ self.failUnless( 1977 == cont[1977] ) self.failUnless( 0.5 == module.get_fundamental_ptr_value() ) - + self.failUnless( None is module.get_fundamental_ptr_value_null() ) - + module.get_impl_details() module.get_opaque() - + x = module.arrays() for i in range( 4 ): arr3 = x.create_arr_3() self.failUnless( arr3 == (0,1,2) ) - + image = module.return_range_image_t() raw_data = image.get_raw_data() self.failUnless( ['1', '\0', '2']==list( raw_data ) ) - raw_data[1] = 'x' + raw_data[1] = 'x' self.failUnless( raw_data[1] == image.raw_data[1] ) for index, img in enumerate( image.create_images() ): print index, img + ibr = module.immutable_by_ref_t() + self.failUnless( ibr.get_value() == ibr.value ) + def create_suite(): suite = unittest.TestSuite() suite.addTest( unittest.makeSuite(tester_t)) Modified: pyplusplus_dev/unittests/classes_tester.py =================================================================== --- pyplusplus_dev/unittests/classes_tester.py 2009-06-10 06:31:44 UTC (rev 1738) +++ pyplusplus_dev/unittests/classes_tester.py 2009-06-14 04:17:46 UTC (rev 1739) @@ -30,6 +30,7 @@ protected_static_t = mb.class_( 'protected_static_t' ) self.failUnless( 'PROTECTED_STATIC' in protected_static_t.alias) protected_static_t.alias = 'protected_static_t' + mb.operators() def run_tests(self, module): self.failIfRaisesAny( module.fundamental1 ) Modified: pyplusplus_dev/unittests/data/call_policies_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/call_policies_to_be_exported.hpp 2009-06-10 06:31:44 UTC (rev 1738) +++ pyplusplus_dev/unittests/data/call_policies_to_be_exported.hpp 2009-06-14 04:17:46 UTC (rev 1739) @@ -122,6 +122,15 @@ } }; + +struct immutable_by_ref_t{ + immutable_by_ref_t() : value ( 2977 ){}; + + int& get_value(){ return value; } + + int value; +}; + } #endif//__call_policies_to_be_exported_hpp__ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-08-05 20:25:19
|
Revision: 1742 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1742&view=rev Author: roman_yakovenko Date: 2009-08-05 20:25:05 +0000 (Wed, 05 Aug 2009) Log Message: ----------- updating testers Modified Paths: -------------- pyplusplus_dev/unittests/test_all.py Added Paths: ----------- pyplusplus_dev/unittests/data/selection_bug_to_be_exported.hpp pyplusplus_dev/unittests/selection_bug_tester.py Added: pyplusplus_dev/unittests/data/selection_bug_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/selection_bug_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/selection_bug_to_be_exported.hpp 2009-08-05 20:25:05 UTC (rev 1742) @@ -0,0 +1,27 @@ +// 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 __selection_bug_to_be_exported_hpp__ +#define __selection_bug_to_be_exported_hpp__ + +#include "libconfig.h" +#include <stdio.h> + +class A{ +public: + void g() { printf("A::g()\n"); } + virtual void foo() = 0; +}; + +class B : public A{ + virtual void foo() { printf("B:foo()\n"); } +}; + +void free_func(A *a){ + a->foo(); +} + + +#endif//__selection_bug_to_be_exported_hpp__ Added: pyplusplus_dev/unittests/selection_bug_tester.py =================================================================== --- pyplusplus_dev/unittests/selection_bug_tester.py (rev 0) +++ pyplusplus_dev/unittests/selection_bug_tester.py 2009-08-05 20:25:05 UTC (rev 1742) @@ -0,0 +1,39 @@ +# 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 + +class tester_t(fundamental_tester_base.fundamental_tester_base_t): + EXTENSION_NAME = 'selection_bug' + + def __init__( self, *args ): + fundamental_tester_base.fundamental_tester_base_t.__init__( + self + , tester_t.EXTENSION_NAME + , *args ) + + def customize(self, mb ): + mb.class_( 'A' ).include() + mb.class_( 'B' ).include() + + #~ mb.member_functions(lambda decl:decl.virtuality == "virtual").include() + #~ mb.member_functions(lambda decl:decl.virtuality != "virtual").exclude() + mb.mem_funs( lambda decl: decl.virtuality == "not virtual" ).exclude() + 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-08-05 20:12:45 UTC (rev 1741) +++ pyplusplus_dev/unittests/test_all.py 2009-08-05 20:25:05 UTC (rev 1742) @@ -117,6 +117,8 @@ import std_pair_tester import mem_var_compile_error_bug_tester import return_ref_to_ptr_tester +import function_adaptor_tester +import selection_bug_tester #import ogre_generate_tester testers = [ @@ -224,6 +226,8 @@ , std_pair_tester , mem_var_compile_error_bug_tester , return_ref_to_ptr_tester + , function_adaptor_tester + , selection_bug_tester # , ogre_generate_tester too much time ] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-11-16 19:37:48
|
Revision: 1775 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1775&view=rev Author: roman_yakovenko Date: 2009-11-16 19:37:39 +0000 (Mon, 16 Nov 2009) Log Message: ----------- adding new test case Modified Paths: -------------- pyplusplus_dev/unittests/test_all.py Added Paths: ----------- pyplusplus_dev/unittests/data/indexing_suites2_support_to_be_exported.hpp pyplusplus_dev/unittests/indexing_suites2_support_tester.py Added: pyplusplus_dev/unittests/data/indexing_suites2_support_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/indexing_suites2_support_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/indexing_suites2_support_to_be_exported.hpp 2009-11-16 19:37:39 UTC (rev 1775) @@ -0,0 +1,21 @@ +// 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 __indexing_suites2_to_be_exported_hpp__ +#define __indexing_suites2_to_be_exported_hpp__ + +#include <vector> + +struct foo{ + int bar; +}; + +typedef std::vector< foo > foo_vector; + +foo_vector get_foos(){ + return foo_vector(); +} + +#endif//__indexing_suites2_to_be_exported_hpp__ Added: pyplusplus_dev/unittests/indexing_suites2_support_tester.py =================================================================== --- pyplusplus_dev/unittests/indexing_suites2_support_tester.py (rev 0) +++ pyplusplus_dev/unittests/indexing_suites2_support_tester.py 2009-11-16 19:37:39 UTC (rev 1775) @@ -0,0 +1,48 @@ +# 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 pygccxml import declarations +from pyplusplus import module_builder + + +class tester_t(fundamental_tester_base.fundamental_tester_base_t): + EXTENSION_NAME = 'indexing_suites2_support' + + def __init__( self, *args ): + fundamental_tester_base.fundamental_tester_base_t.__init__( + self + , tester_t.EXTENSION_NAME + , indexing_suite_version=2 + , *args) + + def customize(self, generator): + fvector = generator.global_ns.typedef( 'foo_vector' ) + fvector = declarations.remove_declarated( fvector.type ) + fvector.indexing_suite.call_policies \ + = module_builder.call_policies.return_internal_reference() + + def run_tests( self, module): + v = module.foo_vector() + f = module.foo() + f.bar = 0 + v.append(f) + self.failUnless( v[0].bar == 0 ) + v[0].bar = 10 + self.failUnless( v[0].bar == 10 ) + +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-11-05 22:56:49 UTC (rev 1774) +++ pyplusplus_dev/unittests/test_all.py 2009-11-16 19:37:39 UTC (rev 1775) @@ -120,7 +120,8 @@ import function_adaptor_tester import selection_bug_tester #import ogre_generate_tester -import ft_from_address +import ft_from_address +import indexing_suites2_support_tester testers = [ algorithms_tester @@ -229,7 +230,8 @@ , return_ref_to_ptr_tester , function_adaptor_tester , selection_bug_tester - , ft_from_address + , ft_from_address + , indexing_suites2_support_tester # , ogre_generate_tester too much time ] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-11-16 19:43:18
|
Revision: 1777 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1777&view=rev Author: roman_yakovenko Date: 2009-11-16 19:43:10 +0000 (Mon, 16 Nov 2009) Log Message: ----------- making ft_from_address_tester to pass Modified Paths: -------------- pyplusplus_dev/unittests/ft_from_address_tester.py Property Changed: ---------------- pyplusplus_dev/unittests/ Property changes on: pyplusplus_dev/unittests ___________________________________________________________________ Modified: svn:ignore - *.pyc temp + *.pyc temp .sconsign.dblite Modified: pyplusplus_dev/unittests/ft_from_address_tester.py =================================================================== --- pyplusplus_dev/unittests/ft_from_address_tester.py 2009-11-16 19:40:43 UTC (rev 1776) +++ pyplusplus_dev/unittests/ft_from_address_tester.py 2009-11-16 19:43:10 UTC (rev 1777) @@ -49,13 +49,11 @@ double_ptr_type = ctypes.POINTER( ctypes.c_double ) value = double_ptr_type.from_address( ptr.value ) self.failUnless( value.contents.value == 5.9 ) - dd = double_ptr_type(ctypes.c_double(0.0) ) - print dir( ctypes.pointer( dd ).contents ) - - ptr.get_v_address( ctypes.pointer( dd ).contents.value ) - print ptr.value - print dd.contents.value + d_ptr = double_ptr_type(ctypes.c_double(0.0) ) + d_ptr_ptr = ctypes.pointer( d_ptr ) + ptr.get_v_address( ctypes.addressof( d_ptr ) ) + def create_suite(): suite = unittest.TestSuite() suite.addTest( unittest.makeSuite(tester_t)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2010-02-15 20:18:19
|
Revision: 1825 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1825&view=rev Author: roman_yakovenko Date: 2010-02-15 20:18:13 +0000 (Mon, 15 Feb 2010) Log Message: ----------- verify that "len" on std::set container works Modified Paths: -------------- pyplusplus_dev/unittests/data/indexing_suites2_to_be_exported.hpp pyplusplus_dev/unittests/indexing_suites2_support_tester.py Modified: pyplusplus_dev/unittests/data/indexing_suites2_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/indexing_suites2_to_be_exported.hpp 2010-01-31 09:02:08 UTC (rev 1824) +++ pyplusplus_dev/unittests/data/indexing_suites2_to_be_exported.hpp 2010-02-15 20:18:13 UTC (rev 1825) @@ -115,6 +115,11 @@ return o; } +std::set<int> ffff( ) { + return std::set<int>(); +} + + namespace pyplusplus{ namespace aliases{ typedef std::vector<indexing_suites2::item_t*> items_ptr_t; }} Modified: pyplusplus_dev/unittests/indexing_suites2_support_tester.py =================================================================== --- pyplusplus_dev/unittests/indexing_suites2_support_tester.py 2010-01-31 09:02:08 UTC (rev 1824) +++ pyplusplus_dev/unittests/indexing_suites2_support_tester.py 2010-02-15 20:18:13 UTC (rev 1825) @@ -35,7 +35,11 @@ self.failUnless( v[0].bar == 0 ) v[0].bar = 10 self.failUnless( v[0].bar == 10 ) - + x = module.create_set_strings() + self.failUnless( len(x) == 0 ) + x = module.ffff() + self.failUnless( len(x) == 0 ) + def create_suite(): suite = unittest.TestSuite() suite.addTest( unittest.makeSuite(tester_t)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2010-03-16 19:59:01
|
Revision: 1826 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1826&view=rev Author: roman_yakovenko Date: 2010-03-16 19:58:55 +0000 (Tue, 16 Mar 2010) Log Message: ----------- add protected member variables tester Modified Paths: -------------- pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.cpp pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.hpp Added Paths: ----------- pyplusplus_dev/unittests/member_variables_protected_tester.py Modified: pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.cpp =================================================================== --- pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.cpp 2010-02-15 20:18:13 UTC (rev 1825) +++ pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.cpp 2010-03-16 19:58:55 UTC (rev 1826) @@ -7,6 +7,9 @@ namespace member_variables{ +const array_t::variable_t array_t::vars[] = { array_t::variable_t(), array_t::variable_t(), array_t::variable_t() }; +array_t::variable_t array_t::vars_nonconst[] = { array_t::variable_t(), array_t::variable_t(), array_t::variable_t() }; + int point::instance_count = 0; const point::color point::default_color = point::red; Modified: pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.hpp 2010-02-15 20:18:13 UTC (rev 1825) +++ pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.hpp 2010-03-16 19:58:55 UTC (rev 1826) @@ -54,7 +54,8 @@ unsigned int get_b(const bit_fields_t& inst); struct array_t{ - array_t(){ + array_t() + { for( int i = 0; i < 10; ++i ){ ivars[i] = -i; } @@ -68,8 +69,9 @@ int get_ivars_item( int index ){ return ivars[index]; } -protected: - const variable_t vars[3]; + + static const variable_t vars[3]; + static variable_t vars_nonconst[3]; int ivars[10]; int ivars2[10]; }; Added: pyplusplus_dev/unittests/member_variables_protected_tester.py =================================================================== --- pyplusplus_dev/unittests/member_variables_protected_tester.py (rev 0) +++ pyplusplus_dev/unittests/member_variables_protected_tester.py 2010-03-16 19:58:55 UTC (rev 1826) @@ -0,0 +1,139 @@ +# 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 ctypes +import unittest +import fundamental_tester_base +from pygccxml import declarations + +class tester_t(fundamental_tester_base.fundamental_tester_base_t): + EXTENSION_NAME = 'member_variables_protected' + + def __init__( self, *args ): + fundamental_tester_base.fundamental_tester_base_t.__init__( + self + , tester_t.EXTENSION_NAME + , *args ) + + def is_protected_var( self, var ): + if not isinstance( var.parent, declarations.class_t ): + return False + if var.access_type == declarations.ACCESS_TYPES.PROTECTED: + return True + else: + return False + + def customize(self, mb ): + mb.variables( self.is_protected_var ).use_make_functions = True + mb.variable( 'prefered_color' ).alias = 'PreferedColor' + mb.classes().always_expose_using_scope = True + image = mb.class_( 'image_t' ) + image.var( 'data' ).expose_address = True + image.var( 'none_image' ).expose_address = True + mb.class_( 'Andy' ).var('userData').expose_address = True + + def change_default_color( self, module ): + module.point.default_color = module.point.color.blue + + def change_prefered_color( self, module ): + xypoint = module.point() + xypoint.PreferedColor = module.point.color.blue + + def set_b( self, bf, value ): + bf.b = value + + def run_tests(self, module): + self.failIfRaisesAny( module.point ) + xypoint = module.point() + self.failUnless( module.point.instance_count == 1) + self.failUnless( xypoint.instance_count == 1) + self.failUnless( module.point.default_color == module.point.color.red) + self.failUnless( xypoint.default_color == module.point.color.red) + self.failUnless( xypoint.x == -1) + self.failUnless( xypoint.y == 2 ) + self.failUnless( xypoint.PreferedColor == xypoint.color.blue ) + self.failUnlessRaises( Exception, self.change_default_color ) + self.failUnlessRaises( Exception, self.change_prefered_color ) + + bf = module.bit_fields_t() + module.set_a( bf, 1 ) + self.failUnless( 1 == bf.a ) + self.failUnless( bf.b == module.get_b( bf ) ) + self.failIfNotRaisesAny( lambda: self.set_b( bf, 23 ) ) + + tree = module.create_tree() + self.failUnless( tree.parent is None ) + self.failUnless( tree.data.value == 0 ) + self.failUnless( tree.right is None ) + self.failUnless( tree.left ) + self.failUnless( tree.left.data.value == 1 ) + + tree.right = module.create_tree() + self.failUnless( tree.right.parent is None ) + self.failUnless( tree.right.data.value == 0 ) + self.failUnless( tree.right.right is None ) + self.failUnless( tree.right.left ) + self.failUnless( tree.right.left.data.value == 1 ) + + mem_var_str = module.mem_var_str_t() + mem_var_str.identity( module.mem_var_str_t.class_name ) + + image = module.image_t() + + data_type = ctypes.POINTER( ctypes.c_int ) + data = data_type.from_address( image.data ) + for j in range(5): + self.failUnless( j == data[j] ) + + int_array = ctypes.c_int * 5 + array = int_array() + for i in range( 5 ): + array[i] = 2*i + image.data = ctypes.addressof(array) + data = data_type.from_address( image.data ) + for j in range(5): + self.failUnless( j*2 == data[j] ) + + data_type = ctypes.POINTER( ctypes.c_int ) + data = data_type.from_address( module.image_t.none_image ) + self.failUnless( 1997 == data.contents.value ) + + array = module.array_t() + self.failUnless( len( array.ivars ) == 10 ) + + ivars = array.ivars + del array #testing call policies + for i in range(20): + for index in range(10): + self.failUnless( ivars[index] == -index ) + + array = module.array_t() + for index in range( len(array.ivars) ): + array.ivars[index] = index * index + self.failUnless( array.get_ivars_item( index ) == index * index ) + + #~ import pdb + #~ pdb.set_trace() + + self.failUnless( len( module.array_t.vars ) == 3 ) + for i in range( len( module.array_t.vars ) ): + self.failUnless( module.array_t.vars[i].value == -9 ) + + self.failUnless( len( module.array_t.vars_nonconst ) == 3 ) + for i in range( len( module.array_t.vars_nonconst ) ): + self.failUnless( module.array_t.vars_nonconst[i].value == -9 ) + +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() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2010-03-20 19:38:18
|
Revision: 1827 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1827&view=rev Author: roman_yakovenko Date: 2010-03-20 19:38:12 +0000 (Sat, 20 Mar 2010) Log Message: ----------- adding protected test case Modified Paths: -------------- pyplusplus_dev/unittests/data/indexing_suites2_to_be_exported.hpp pyplusplus_dev/unittests/indexing_suites2_tester.py Modified: pyplusplus_dev/unittests/data/indexing_suites2_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/indexing_suites2_to_be_exported.hpp 2010-03-16 19:58:55 UTC (rev 1826) +++ pyplusplus_dev/unittests/data/indexing_suites2_to_be_exported.hpp 2010-03-20 19:38:12 UTC (rev 1827) @@ -106,8 +106,38 @@ return set_strings_t(); } +struct protected_item_t{ + protected_item_t() : value( -1 ){} + explicit protected_item_t( int v) : value( v ){} + + int value; +protected: + bool operator==(protected_item_t const& item) const { + return value == item.value; + } + + bool operator!=(protected_item_t const& item) const { + return value != item.value; + } + +}; + + +typedef std::vector<protected_item_t> protected_items_t; + +typedef std::vector<protected_item_t> protected_items_ptr_t; +inline protected_items_t create_protected_items(){ + protected_items_t items; + items.push_back( protected_item_t(0) ); + items.push_back( protected_item_t(1) ); + items.push_back( protected_item_t(2) ); + items.push_back( protected_item_t(3) ); + items.push_back( protected_item_t(4) ); + return items; } +} + std::ostream& operator<<( std::ostream& o, const indexing_suites2::set_strings_t& x){ for( indexing_suites2::set_strings_t::const_iterator index = x.begin(); index != x.end(); ++index ){ o << *index << ','; @@ -122,6 +152,7 @@ namespace pyplusplus{ namespace aliases{ typedef std::vector<indexing_suites2::item_t*> items_ptr_t; + typedef std::vector<indexing_suites2::protected_item_t*> protected_items_ptr_t; }} #endif//__indexing_suites2_to_be_exported_hpp__ Modified: pyplusplus_dev/unittests/indexing_suites2_tester.py =================================================================== --- pyplusplus_dev/unittests/indexing_suites2_tester.py 2010-03-16 19:58:55 UTC (rev 1826) +++ pyplusplus_dev/unittests/indexing_suites2_tester.py 2010-03-20 19:38:12 UTC (rev 1827) @@ -88,6 +88,12 @@ except TypeError: pass + protected_items = module.create_protected_items() + values = map( lambda protected_item: protected_item.value + , protected_items ); + values.sort() + self.failUnless( [0,1,2,3,4]==values ) + def create_suite(): suite = unittest.TestSuite() suite.addTest( unittest.makeSuite(tester_t)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2010-03-25 21:12:53
|
Revision: 1832 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1832&view=rev Author: roman_yakovenko Date: 2010-03-25 21:12:47 +0000 (Thu, 25 Mar 2010) Log Message: ----------- adding example of treating complex class hierarchy Added Paths: ----------- pyplusplus_dev/unittests/data/inner_base_class_to_be_exported.hpp pyplusplus_dev/unittests/inner_base_class_tester.py Added: pyplusplus_dev/unittests/data/inner_base_class_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/inner_base_class_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/inner_base_class_to_be_exported.hpp 2010-03-25 21:12:47 UTC (rev 1832) @@ -0,0 +1,19 @@ +// 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 __inner_base_class_to_be_exported_hpp__ +#define __inner_base_class_to_be_exported_hpp__ + +struct foo1_t{ + struct foo2_t; +}; + +struct foo3_t : public foo1_t +{}; + +struct foo1_t::foo2_t : public foo3_t +{}; + +#endif//__inner_base_class_to_be_exported_hpp__ Added: pyplusplus_dev/unittests/inner_base_class_tester.py =================================================================== --- pyplusplus_dev/unittests/inner_base_class_tester.py (rev 0) +++ pyplusplus_dev/unittests/inner_base_class_tester.py 2010-03-25 21:12:47 UTC (rev 1832) @@ -0,0 +1,41 @@ +# 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 pygccxml import declarations + +class tester_t(fundamental_tester_base.fundamental_tester_base_t): + EXTENSION_NAME = 'inner_base_class' + + def __init__( self, *args ): + fundamental_tester_base.fundamental_tester_base_t.__init__( + self + , tester_t.EXTENSION_NAME + , *args ) + + def customize( self, mb ): + mb.build_code_creator( self.EXTENSION_NAME ) + foo3 = mb.code_creator.body.creators[0] + del mb.code_creator.body.creators[0] + mb.code_creator.body.creators[0].adopt_creator( foo3, 0) + #mb.class_( 'foo2_t' ).bases[0].access_type = declarations.ACCESS_TYPES.PRIVATE + #mb.class_( 'foo3_t' ).bases[0].access_type = declarations.ACCESS_TYPES.PRIVATE + + 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() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2010-04-15 06:11:20
|
Revision: 1837 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1837&view=rev Author: roman_yakovenko Date: 2010-04-15 06:11:14 +0000 (Thu, 15 Apr 2010) Log Message: ----------- misc: testing a work around for an auto_ptr in constructor Modified Paths: -------------- pyplusplus_dev/unittests/data/smart_pointers_to_be_exported.cpp pyplusplus_dev/unittests/data/smart_pointers_to_be_exported.hpp pyplusplus_dev/unittests/fundamental_tester_base.py pyplusplus_dev/unittests/smart_pointers_tester.py Modified: pyplusplus_dev/unittests/data/smart_pointers_to_be_exported.cpp =================================================================== --- pyplusplus_dev/unittests/data/smart_pointers_to_be_exported.cpp 2010-04-14 08:48:52 UTC (rev 1836) +++ pyplusplus_dev/unittests/data/smart_pointers_to_be_exported.cpp 2010-04-15 06:11:14 UTC (rev 1837) @@ -6,7 +6,7 @@ #include "smart_pointers_to_be_exported.hpp" namespace smart_pointers{ - + data_a_ptr create_auto(){ return data_a_ptr( new data() ); } data_s_ptr create_shared(){ return data_s_ptr( new data() ); } @@ -27,7 +27,7 @@ int const_ref_auto_base_value( const base_a_ptr& a ){ return a->get_base_value(); } int const_ref_shared_base_value( const base_s_ptr& a ){ return a->get_base_value(); } - + int ref_auto_some_value( base_a_ptr& a ){ return a->get_some_value(); } @@ -38,7 +38,11 @@ int const_ref_auto_some_value( const base_a_ptr& a ){ return a->get_some_value(); } int const_ref_shared_some_value( const base_s_ptr& a ){ return a->get_some_value(); } - - -} +namespace autoptr_init_bug{ +std::auto_ptr< B > createB(int value, std::auto_ptr<A> a){ + return std::auto_ptr< B >( new B( value, a ) ); +} +} + +} Modified: pyplusplus_dev/unittests/data/smart_pointers_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/smart_pointers_to_be_exported.hpp 2010-04-14 08:48:52 UTC (rev 1836) +++ pyplusplus_dev/unittests/data/smart_pointers_to_be_exported.hpp 2010-04-15 06:11:14 UTC (rev 1837) @@ -29,7 +29,7 @@ typedef std::auto_ptr< data > data_a_ptr; typedef boost::shared_ptr< data > data_s_ptr; - + data_a_ptr create_auto(); data_s_ptr create_shared(); @@ -61,7 +61,7 @@ int const_ref_shared_some_value( const base_s_ptr& a ); struct shared_data_buffer_t{ - shared_data_buffer_t() + shared_data_buffer_t() : size( 0 ) {} int size; @@ -73,11 +73,33 @@ : buffer( new shared_data_buffer_t() ) , const_buffer( new shared_data_buffer_t() ) {} - + holder_impl_t buffer; const holder_impl_t const_buffer; }; -} +namespace autoptr_init_bug{ +struct A{ + A(int value) : m_value(value) {} + int m_value; +}; + +struct B{ + B(int value, std::auto_ptr<A> a) : m_value(value), m_a(a.release() ) {} + + int m_value; + + int get_a_value(){ return m_a->m_value; } + +private: + std::auto_ptr<A> m_a; +}; + +std::auto_ptr< B > createB(int value, std::auto_ptr<A> a); + +} + +} + #endif//__smart_pointers_to_be_exported_hpp__ Modified: pyplusplus_dev/unittests/fundamental_tester_base.py =================================================================== --- pyplusplus_dev/unittests/fundamental_tester_base.py 2010-04-14 08:48:52 UTC (rev 1836) +++ pyplusplus_dev/unittests/fundamental_tester_base.py 2010-04-15 06:11:14 UTC (rev 1837) @@ -97,6 +97,9 @@ def _create_extension_source_file(self): global LICENSE + if os.path.exists( self.__generated_source_file_name + '.xml' ): + os.remove( self.__generated_source_file_name + '.xml' ) + test_header_cfg \ = pygccxml.parser.create_cached_source_fc( self.__to_be_exported_header , self.__generated_source_file_name + '.xml' ) Modified: pyplusplus_dev/unittests/smart_pointers_tester.py =================================================================== --- pyplusplus_dev/unittests/smart_pointers_tester.py 2010-04-14 08:48:52 UTC (rev 1836) +++ pyplusplus_dev/unittests/smart_pointers_tester.py 2010-04-15 06:11:14 UTC (rev 1837) @@ -12,41 +12,49 @@ class tester_t(fundamental_tester_base.fundamental_tester_base_t): EXTENSION_NAME = 'smart_pointers' - + def __init__( self, *args ): - fundamental_tester_base.fundamental_tester_base_t.__init__( + fundamental_tester_base.fundamental_tester_base_t.__init__( self , tester_t.EXTENSION_NAME , *args ) - + def customize( self, mb ): base = mb.class_( 'base' ) shared_ptrs = mb.decls( lambda decl: decl.name.startswith( 'shared_ptr<' ) ) shared_ptrs.disable_warnings( messages.W1040 ) mb.variable( 'buffer' ).apply_smart_ptr_wa = True mb.variable( 'const_buffer' ).apply_smart_ptr_wa = True - + + + A = mb.class_('A' ) + A.held_type = 'std::auto_ptr< %s >' % A.decl_string + B = mb.class_( 'B' ) + B.constructors().exclude() + B.add_fake_constructors( mb.free_function( 'createB' ) ) + + def create_py_derived( self, module ): class py_derived_t( module.base ): def __init__( self ): module.base.__init__( self ) - + def get_some_value( self ): return 28 - + return py_derived_t() - + def run_tests( self, module): da = module.create_auto() py_derived = self.create_py_derived( module ) - + self.failUnless( 11 == da.value ) ds = module.create_shared() self.failUnless( 11 == ds.value ) - + self.failUnless( 11 == module.ref_auto(da) ) self.failUnless( 11 == module.ref_shared(ds) ) - + #why? because in this case held type could not be set #self.failUnless( 11 == module.ref_shared(py_derived) ) @@ -57,7 +65,7 @@ self.failUnless( 11 == module.const_ref_auto(da) ) self.failUnless( 11 == module.const_ref_shared(ds) ) - + #TODO: find out why this fails #self.failUnless( 19 == module.ref_auto_base_value(da) ) #self.failUnless( 19 == module.ref_shared_base_value(ds) ) @@ -73,9 +81,9 @@ self.failUnless( 19 == module.val_auto_base_value(da) ) self.failUnless( 19 == module.val_shared_base_value(ds) ) self.failUnless( 19 == module.val_shared_base_value(py_derived) ) - + da = module.create_auto() - + self.failUnless( 23 == module.val_auto_some_value(da) ) self.failUnless( 28 == module.val_shared_some_value(py_derived) ) @@ -86,17 +94,22 @@ holder1 = module.shared_data_buffer_holder_t() self.failUnless( holder1.buffer.size == 0 ) - + holder2 = module.shared_data_buffer_holder_t() holder2.buffer.size = 2 - + holder1.buffer = holder2.buffer self.failUnless( holder1.buffer.size == 2 ) holder1.buffer.size = 3 self.failUnless( holder2.buffer.size == 3 ) + a = module.A( 23 ) + b = module.B( 21, a ) + + self.failUnless( b.get_a_value() == 23 ) + def create_suite(): - suite = unittest.TestSuite() + suite = unittest.TestSuite() suite.addTest( unittest.makeSuite(tester_t)) return suite This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2010-05-16 10:53:51
|
Revision: 1842 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1842&view=rev Author: roman_yakovenko Date: 2010-05-16 10:53:45 +0000 (Sun, 16 May 2010) Log Message: ----------- adding new test case, where Py++ fails to generate correct code Modified Paths: -------------- pyplusplus_dev/unittests/test_all.py Added Paths: ----------- pyplusplus_dev/unittests/data/indexing_suite2_shared_ptr_value_traits_to_be_exported.cpp pyplusplus_dev/unittests/data/indexing_suite2_shared_ptr_value_traits_to_be_exported.hpp pyplusplus_dev/unittests/indexing_suite2_shared_ptr_value_traits_tester.py Added: pyplusplus_dev/unittests/data/indexing_suite2_shared_ptr_value_traits_to_be_exported.cpp =================================================================== --- pyplusplus_dev/unittests/data/indexing_suite2_shared_ptr_value_traits_to_be_exported.cpp (rev 0) +++ pyplusplus_dev/unittests/data/indexing_suite2_shared_ptr_value_traits_to_be_exported.cpp 2010-05-16 10:53:45 UTC (rev 1842) @@ -0,0 +1,34 @@ +// 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) + +#include "indexing_suite2_shared_ptr_value_traits_to_be_exported.hpp" + + +namespace samples +{ + +boost::shared_ptr<A> func() +{ + return boost::shared_ptr<A>(new A()); +} + +std::vector<A> funcVector() +{ + std::vector<A> items; + items.push_back(A()); + items.push_back(A()); + return items; +} + +std::vector<boost::shared_ptr<A> > funcVectorShared() +{ + std::vector<boost::shared_ptr<A> > items; + items.push_back(boost::shared_ptr<A>(new A())); + items.push_back(boost::shared_ptr<A>(new A())); + return items; +} + +} + Added: pyplusplus_dev/unittests/data/indexing_suite2_shared_ptr_value_traits_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/indexing_suite2_shared_ptr_value_traits_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/indexing_suite2_shared_ptr_value_traits_to_be_exported.hpp 2010-05-16 10:53:45 UTC (rev 1842) @@ -0,0 +1,26 @@ +// 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 __indexing_suite2_shared_ptr_value_traits_to_be_exported_hpp__ +#define __indexing_suite2_shared_ptr_value_traits_to_be_exported_hpp__ + +#include <vector> +#include <boost/shared_ptr.hpp> + +namespace samples +{ + +class A +{}; + +boost::shared_ptr<A> func(); + +std::vector<A> funcVector(); + +std::vector<boost::shared_ptr<A> > funcVectorShared(); + +} + +#endif//__indexing_suite2_shared_ptr_value_traits_to_be_exported_hpp__ Added: pyplusplus_dev/unittests/indexing_suite2_shared_ptr_value_traits_tester.py =================================================================== --- pyplusplus_dev/unittests/indexing_suite2_shared_ptr_value_traits_tester.py (rev 0) +++ pyplusplus_dev/unittests/indexing_suite2_shared_ptr_value_traits_tester.py 2010-05-16 10:53:45 UTC (rev 1842) @@ -0,0 +1,39 @@ +# 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 pygccxml import declarations +from pyplusplus import module_builder + + +class tester_t(fundamental_tester_base.fundamental_tester_base_t): + EXTENSION_NAME = 'indexing_suite2_shared_ptr_value_traits' + + def __init__( self, *args ): + fundamental_tester_base.fundamental_tester_base_t.__init__( + self + , tester_t.EXTENSION_NAME + , indexing_suite_version=2 + , *args) + + def customize(self, generator): + pass + + 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 2010-04-29 18:41:50 UTC (rev 1841) +++ pyplusplus_dev/unittests/test_all.py 2010-05-16 10:53:45 UTC (rev 1842) @@ -127,6 +127,7 @@ import ft_inout_static_matrix_tester import ft_inout_static_array_tester import inner_base_class_tester +import indexing_suite2_shared_ptr_value_traits_tester testers = [ algorithms_tester @@ -242,6 +243,7 @@ , ft_inout_static_matrix_tester , ft_inout_static_array_tester , inner_base_class_tester + , indexing_suite2_shared_ptr_value_traits_tester # , ogre_generate_tester too much time ] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |