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()
|