[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.
|