[pygccxml-commit] SF.net SVN: pygccxml: [914] pyplusplus_dev/unittests
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2007-02-18 20:05:03
|
Revision: 914 http://svn.sourceforge.net/pygccxml/?rev=914&view=rev Author: roman_yakovenko Date: 2007-02-18 12:04:59 -0800 (Sun, 18 Feb 2007) Log Message: ----------- adding tester to return_range call policies Modified Paths: -------------- pyplusplus_dev/unittests/call_policies_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 2007-02-18 18:54:27 UTC (rev 913) +++ pyplusplus_dev/unittests/call_policies_tester.py 2007-02-18 20:04:59 UTC (rev 914) @@ -30,6 +30,15 @@ }; """ +get_create_images_size = """ +struct get_create_images_size_t{ + ssize_t + operator()( boost::python::object self ){ + return 3; + } +}; +""" + class tester_t(fundamental_tester_base.fundamental_tester_base_t): EXTENSION_NAME = 'call_policies' @@ -58,16 +67,20 @@ = call_policies.convert_array_to_tuple( 3, call_policies.memory_managers.delete_ ) image = mb.class_('return_range_image_t') - #image.exclude() image.add_declaration_code( get_size_code ) + image.add_declaration_code( get_create_images_size ) get_raw_data = image.mem_fun( 'get_raw_data' ) get_raw_data.call_policies \ = call_policies.return_range( get_raw_data, 'raw_data_size_t' ) get_raw_data_const = image.mem_fun( 'get_raw_data_const' ) get_raw_data_const.call_policies \ = call_policies.return_range( get_raw_data_const, 'raw_data_size_t' ) + create_images = image.mem_fun( 'create_images' ) + create_images.call_policies \ + = call_policies.return_range( create_images + , 'get_create_images_size_t' + , call_policies.return_value_policy(call_policies.reference_existing_object) ) - def run_tests(self, module): self.failUnless( module.compare( module.my_address() ) ) @@ -102,6 +115,8 @@ self.failUnless( ['1', '\0', '2']==list( raw_data ) ) raw_data[1] = 'x' self.failUnless( raw_data[1] == image.raw_data[1] ) + for index, img in enumerate( image.create_images() ): + print index, img def create_suite(): suite = unittest.TestSuite() Modified: pyplusplus_dev/unittests/data/call_policies_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/call_policies_to_be_exported.hpp 2007-02-18 18:54:27 UTC (rev 913) +++ pyplusplus_dev/unittests/data/call_policies_to_be_exported.hpp 2007-02-18 20:04:59 UTC (rev 914) @@ -94,6 +94,8 @@ raw_data += '\0'; raw_data += '2'; } + + ~return_range_image_t(){} std::string raw_data; @@ -104,9 +106,22 @@ char* get_raw_data(){ return &raw_data.at(0); } - + + return_range_image_t* create_images(){ + return_range_image_t* images = new return_range_image_t[3]; + return_range_image_t x; + x.raw_data = "0"; + images[0] = x; + return_range_image_t y; + y.raw_data = "1"; + images[1] = y; + return_range_image_t z; + z.raw_data = "2"; + images[2] = z; + return images; + } }; -} +} #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. |