[pygccxml-commit] SF.net SVN: pygccxml: [1176] pygccxml_dev/unittests
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2007-11-27 19:56:15
|
Revision: 1176 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1176&view=rev Author: roman_yakovenko Date: 2007-11-27 11:56:18 -0800 (Tue, 27 Nov 2007) Log Message: ----------- adding support for class partial name - name without default template arguments Modified Paths: -------------- pygccxml_dev/unittests/bit_fields_tester.py pygccxml_dev/unittests/decl_string_tester.py pygccxml_dev/unittests/find_container_traits_tester.py pygccxml_dev/unittests/variable_matcher_tester.py Modified: pygccxml_dev/unittests/bit_fields_tester.py =================================================================== --- pygccxml_dev/unittests/bit_fields_tester.py 2007-11-27 19:55:42 UTC (rev 1175) +++ pygccxml_dev/unittests/bit_fields_tester.py 2007-11-27 19:56:18 UTC (rev 1176) @@ -12,16 +12,18 @@ from pygccxml import declarations class tester_t( parser_test_case.parser_test_case_t ): + + global_ns = None + def __init__(self, *args ): parser_test_case.parser_test_case_t.__init__( self, *args ) self.header = 'bit_fields.hpp' - self.global_ns = None def setUp(self): - if not self.global_ns: + if not tester_t.global_ns: decls = parser.parse( [self.header], self.config ) - self.global_ns = declarations.get_global_namespace( decls ) - self.global_ns.init_optimizer() + tester_t.global_ns = declarations.get_global_namespace( decls ) + tester_t.global_ns.init_optimizer() def test( self ): bf_x = self.global_ns.variable( 'x' ) @@ -32,6 +34,9 @@ mv_z = self.global_ns.variable( 'z' ) self.failUnless( mv_z.bits == None ) + + def test2( self ): + pass def create_suite(): suite = unittest.TestSuite() Modified: pygccxml_dev/unittests/decl_string_tester.py =================================================================== --- pygccxml_dev/unittests/decl_string_tester.py 2007-11-27 19:55:42 UTC (rev 1175) +++ pygccxml_dev/unittests/decl_string_tester.py 2007-11-27 19:56:18 UTC (rev 1176) @@ -3,17 +3,19 @@ # accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) +import os import unittest import autoconfig import parser_test_case -import pygccxml -from pygccxml.utils import * -from pygccxml.parser import * -from pygccxml.declarations import * +from pygccxml import utils +from pygccxml import parser +from pygccxml import declarations + class tester_t( parser_test_case.parser_test_case_t ): - COMPILATION_MODE = COMPILATION_MODE.ALL_AT_ONCE + COMPILATION_MODE = parser.COMPILATION_MODE.ALL_AT_ONCE + global_ns = None def __init__(self, *args ): parser_test_case.parser_test_case_t.__init__( self, *args ) self.header = os.path.join( autoconfig.data_directory, 'declarations_calldef.hpp' ) @@ -23,18 +25,20 @@ void test_generated_decl_string( %s ); """ + def setUp(self): + if not tester_t.global_ns: + decls = parser.parse( [self.header], self.config ) + tester_t.global_ns = declarations.get_global_namespace( decls ) + tester_t.global_ns.init_optimizer() + def test_member_function(self): - declarations = parse( [self.header], self.config ) - member_inline_call = find_declaration( declarations, type=member_function_t, name='member_inline_call' ) - self.failUnless( member_inline_call, "unable to find 'member_inline_call' function" ) - decls = parse_string( self.template % member_inline_call.decl_string, self.config ) + member_inline_call = self.global_ns.mem_fun( 'member_inline_call' ) + decls = parser.parse_string( self.template % member_inline_call.decl_string, self.config ) self.failUnless( decls, "Created decl_string for member function containes mistake" ) - def test_free_function(self): - declarations = parse( [self.header], self.config ) - return_default_args = find_declaration( declarations, type=free_function_t, name='return_default_args' ) - self.failUnless( return_default_args, "unable to find 'return_default_args' function" ) - decls = parse_string( self.template % return_default_args.decl_string, self.config ) + def test_free_function(self): + return_default_args = self.global_ns.free_fun( 'return_default_args' ) + decls = parser.parse_string( self.template % return_default_args.decl_string, self.config ) self.failUnless( decls, "Created decl_string for global function containes mistake" ) def create_suite(): Modified: pygccxml_dev/unittests/find_container_traits_tester.py =================================================================== --- pygccxml_dev/unittests/find_container_traits_tester.py 2007-11-27 19:55:42 UTC (rev 1175) +++ pygccxml_dev/unittests/find_container_traits_tester.py 2007-11-27 19:56:18 UTC (rev 1176) @@ -15,15 +15,15 @@ global_ns = None def __init__(self, *args ): parser_test_case.parser_test_case_t.__init__( self, *args ) - self.header = 'remove_template_defaults.hpp' + self.headers = [ 'remove_template_defaults.hpp', 'indexing_suites2.hpp' ] def setUp(self): if not tester_t.global_ns: - decls = parser.parse( [self.header], self.config ) + decls = parser.parse( self.headers, self.config ) tester_t.global_ns = declarations.get_global_namespace( decls ) tester_t.global_ns.init_optimizer() - def __cmp_traits( self, typedef, expected ): + def __cmp_traits( self, typedef, expected, partial_name ): if isinstance( typedef, str ): typedef = self.global_ns.typedef( typedef ) traits = declarations.find_container_traits( typedef ) @@ -33,22 +33,29 @@ % ( str(typedef), expected.__name__, traits.__name__ ) ) cls = declarations.remove_declarated( typedef ) self.failUnless( cls.container_traits is expected ) - - def test_find_traits( self ): - self.__cmp_traits( 'v_int', declarations.vector_traits ) - self.__cmp_traits( 'l_int', declarations.list_traits ) - self.__cmp_traits( 'd_v_int', declarations.deque_traits ) - self.__cmp_traits( 'q_int', declarations.queue_traits ) - self.__cmp_traits( 'pq_int', declarations.priority_queue_traits) - self.__cmp_traits( 's_v_int', declarations.set_traits) - self.__cmp_traits( 'ms_v_int', declarations.multiset_traits) - self.__cmp_traits( 'm_i2d', declarations.map_traits ) - self.__cmp_traits( 'mm_i2d', declarations.multimap_traits ) - self.__cmp_traits( 'hs_v_int', declarations.hash_set_traits ) - self.__cmp_traits( 'mhs_v_int', declarations.hash_multiset_traits ) - self.__cmp_traits( 'hm_i2d', declarations.hash_map_traits ) - self.__cmp_traits( 'hmm_i2d', declarations.hash_multimap_traits ) + self.failUnless( cls.partial_name == partial_name ) + def test_find_traits( self ): + self.__cmp_traits( 'v_int', declarations.vector_traits, "vector< int >" ) + self.__cmp_traits( 'l_int', declarations.list_traits, "list< int >" ) + self.__cmp_traits( 'd_v_int', declarations.deque_traits, "deque< std::vector< int > >" ) + self.__cmp_traits( 'q_int', declarations.queue_traits, "queue< int >" ) + self.__cmp_traits( 'pq_int', declarations.priority_queue_traits, "priority_queue< int >") + self.__cmp_traits( 's_v_int', declarations.set_traits, "set< std::vector< int > >") + self.__cmp_traits( 'ms_v_int', declarations.multiset_traits, "multiset< std::vector< int > >") + self.__cmp_traits( 'm_i2d', declarations.map_traits, "map< int, double >" ) + self.__cmp_traits( 'mm_i2d', declarations.multimap_traits, "multimap< int, double >" ) + self.__cmp_traits( 'hs_v_int', declarations.hash_set_traits, "hash_set< std::vector< int > >" ) + self.__cmp_traits( 'mhs_v_int', declarations.hash_multiset_traits, "hash_multiset< std::vector< int > >" ) + self.__cmp_traits( 'hm_i2d', declarations.hash_map_traits, "hash_map< int, double >" ) + self.__cmp_traits( 'hmm_i2d', declarations.hash_multimap_traits, "hash_multimap< int, double >" ) + + def test_multimap( self ): + mm = self.global_ns.classes( lambda decl: decl.name.startswith( 'multimap' ) ) + for m in mm: + traits = declarations.find_container_traits( m ) + print m.partial_name + def create_suite(): suite = unittest.TestSuite() suite.addTest( unittest.makeSuite(tester_t)) Modified: pygccxml_dev/unittests/variable_matcher_tester.py =================================================================== --- pygccxml_dev/unittests/variable_matcher_tester.py 2007-11-27 19:55:42 UTC (rev 1175) +++ pygccxml_dev/unittests/variable_matcher_tester.py 2007-11-27 19:56:18 UTC (rev 1176) @@ -12,8 +12,9 @@ from pygccxml import parser from pygccxml import declarations -class tester_t( parser_test_case.parser_test_case_t ): +class tester_1_t( parser_test_case.parser_test_case_t ): COMPILATION_MODE = parser.COMPILATION_MODE.ALL_AT_ONCE + declarations = None def __init__(self, *args ): parser_test_case.parser_test_case_t.__init__( self, *args ) self.header = 'bit_fields.hpp' @@ -40,9 +41,29 @@ self.failUnless( 'public' == x.access_type ) +class tester_2_t( parser_test_case.parser_test_case_t ): + COMPILATION_MODE = parser.COMPILATION_MODE.ALL_AT_ONCE + global_ns = None + def __init__(self, *args ): + parser_test_case.parser_test_case_t.__init__( self, *args ) + self.header = 'vector_traits.hpp' + self.global_ns = None + + def setUp(self): + if not self.global_ns: + self.global_ns = declarations.get_global_namespace( parser.parse( [self.header], self.config ) ) + + def test_no_defaults( self ): + vectors = self.global_ns.decls( lambda decl: 'vector<' in decl.name ) + self.global_ns.decl( 'vector< _0_ >' ) + self.global_ns.class_( 'vector< std::vector< int > >' ) + self.global_ns.class_( 'vector< std::string >' ) + self.global_ns.decl( 'vector< const int >' ) + def create_suite(): suite = unittest.TestSuite() - suite.addTest( unittest.makeSuite(tester_t)) + suite.addTest( unittest.makeSuite(tester_1_t)) + suite.addTest( unittest.makeSuite(tester_2_t)) return suite def run_suite(): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |