From: Roman <rom...@us...> - 2006-04-20 04:32:20
|
Update of /cvsroot/pygccxml/source/pygccxml/unittests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26712/pygccxml/unittests Modified Files: decl_printer_tester.py declarations_tester.py test_all.py Added Files: typedefs_tester.py Log Message: Adding new feature: instance of class_t has now references to all it's typedes. This will allow pyplusplus to suggest/set better alais without user invocation. Index: declarations_tester.py =================================================================== RCS file: /cvsroot/pygccxml/source/pygccxml/unittests/declarations_tester.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** declarations_tester.py 2 Mar 2006 05:55:41 -0000 1.4 --- declarations_tester.py 20 Apr 2006 04:32:16 -0000 1.5 *************** *** 88,98 **** no_return_1_arg = find_declaration( ns.declarations, type=free_function_t, name='no_return_1_arg' ) self.failUnless( no_return_1_arg, "unable to find 'no_return_1_arg' function" ) ! self._test_calldef_args( no_return_1_arg, [ argument_t( name='arg0', type=int_t() )] ) return_default_args = find_declaration( ns.declarations, type=free_function_t, name='return_default_args' ) self.failUnless( return_default_args, "unable to find 'return_default_args' function" ) self._test_calldef_args( return_default_args ! , [ argument_t( name='arg0', type=int_t(), default_value='1' ) ! , argument_t( name='arg1', type=bool_t(), default_value='false' ) ] ) self._test_calldef_exceptions( return_default_args, [] ) --- 88,103 ---- no_return_1_arg = find_declaration( ns.declarations, type=free_function_t, name='no_return_1_arg' ) self.failUnless( no_return_1_arg, "unable to find 'no_return_1_arg' function" ) ! self.failUnless( no_return_1_arg.arguments[0].name in [ 'arg', 'arg0' ] ) ! self._test_calldef_args( no_return_1_arg, [ argument_t( name=no_return_1_arg.arguments[0].name, type=int_t() )] ) return_default_args = find_declaration( ns.declarations, type=free_function_t, name='return_default_args' ) self.failUnless( return_default_args, "unable to find 'return_default_args' function" ) + self.failUnless( return_default_args.arguments[0].name in [ 'arg', 'arg0' ] ) + self.failUnless( return_default_args.arguments[1].name in [ 'arg1', 'flag' ] ) self._test_calldef_args( return_default_args ! , [ argument_t( name=return_default_args.arguments[0].name ! , type=int_t(), default_value='1' ) ! , argument_t( name=return_default_args.arguments[1].name ! , type=bool_t(), default_value='false' ) ] ) self._test_calldef_exceptions( return_default_args, [] ) Index: test_all.py =================================================================== RCS file: /cvsroot/pygccxml/source/pygccxml/unittests/test_all.py,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** test_all.py 6 Mar 2006 05:02:40 -0000 1.18 --- test_all.py 20 Apr 2006 04:32:16 -0000 1.19 *************** *** 32,35 **** --- 32,36 ---- import cache_enums_tester import decl_printer_tester + import typedefs_tester def create_suite(): *************** *** 62,65 **** --- 63,67 ---- , cache_enums_tester , decl_printer_tester + , typedefs_tester ] Index: decl_printer_tester.py =================================================================== RCS file: /cvsroot/pygccxml/source/pygccxml/unittests/decl_printer_tester.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** decl_printer_tester.py 22 Mar 2006 11:08:11 -0000 1.2 --- decl_printer_tester.py 20 Apr 2006 04:32:16 -0000 1.3 *************** *** 27,30 **** --- 27,31 ---- , 'core_overloads_1.hpp' , 'core_overloads_2.hpp' + , 'typedefs_base.hpp' ] prj_reader = parser.project_reader_t( self.config ) *************** *** 35,39 **** writer = lambda decl: None declarations.print_declarations( self.decls, writer=writer ) ! def test__str__(self): decls = declarations.make_flatten(self.decls) --- 36,41 ---- writer = lambda decl: None declarations.print_declarations( self.decls, writer=writer ) ! #declarations.print_declarations( self.decls ) ! def test__str__(self): decls = declarations.make_flatten(self.decls) --- NEW FILE: typedefs_tester.py --- # Copyright 2004 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 unittest import autoconfig import parser_test_case from pygccxml import utils from pygccxml import parser from pygccxml import declarations class tester_src_t( parser_test_case.parser_test_case_t ): #tester source reader COMPILATION_MODE = parser.COMPILATION_MODE.ALL_AT_ONCE def __init__(self, *args ): parser_test_case.parser_test_case_t.__init__( self, *args ) self.header = 'typedefs_base.hpp' self.declarations = None def setUp(self): if not self.declarations: self.declarations = parser.parse( [self.header], self.config ) def test( self ): item_cls = declarations.find_declaration( self.declarations , type=declarations.class_t , name='item_t' ) self.failUnless( item_cls, "unable to find class 'item_t'" ) self.failUnless( len( item_cls.typedefs ) == 1 ) self.failUnless( item_cls.typedefs[0].name == 'Item' ) class tester_prj_t( parser_test_case.parser_test_case_t ): #tester source reader COMPILATION_MODE = parser.COMPILATION_MODE.FILE_BY_FILE def __init__(self, *args ): parser_test_case.parser_test_case_t.__init__( self, *args ) self.declarations = None def setUp(self): if not self.declarations: self.declarations = parser.parse( [ 'typedefs1.hpp', 'typedefs2.hpp' ] , self.config , self.COMPILATION_MODE ) def test( self ): item_cls = declarations.find_declaration( self.declarations , type=declarations.class_t , name='item_t' ) self.failUnless( item_cls, "unable to find class 'item_t'" ) self.failUnless( len( item_cls.typedefs ) == 3 ) expected_aliases = set( ['Item', 'Item1', 'Item2' ] ) real_aliases = set( map( lambda typedef: typedef.name, item_cls.typedefs ) ) self.failUnless( real_aliases == expected_aliases ) def create_suite(): suite = unittest.TestSuite() suite.addTest( unittest.makeSuite(tester_src_t)) suite.addTest( unittest.makeSuite(tester_prj_t)) return suite def run_suite(): unittest.TextTestRunner(verbosity=2).run( create_suite() ) if __name__ == "__main__": run_suite() |