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