Thread: [pygccxml-commit] SF.net SVN: pygccxml:[1379] pyplusplus_dev/unittests
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2008-07-27 18:42:51
|
Revision: 1379 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1379&view=rev Author: roman_yakovenko Date: 2008-07-27 18:43:00 +0000 (Sun, 27 Jul 2008) Log Message: ----------- updating from_address FT Modified Paths: -------------- pyplusplus_dev/unittests/data/ft_from_address_to_be_exported.hpp pyplusplus_dev/unittests/ft_from_address_tester.py Modified: pyplusplus_dev/unittests/data/ft_from_address_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/ft_from_address_to_be_exported.hpp 2008-07-23 20:40:56 UTC (rev 1378) +++ pyplusplus_dev/unittests/data/ft_from_address_to_be_exported.hpp 2008-07-27 18:43:00 UTC (rev 1379) @@ -9,14 +9,15 @@ #include <stdexcept> inline unsigned long -sum_matrix( unsigned int** matrix, unsigned int rows, unsigned int columns ){ +sum_matrix( unsigned int* matrix, unsigned int rows, unsigned int columns ){ if( !matrix ){ throw std::runtime_error( "matrix is null" ); } unsigned long result = 0; for( unsigned int r = 0; r < rows; ++r ){ for( unsigned int c = 0; c < columns; ++c ){ - result += matrix[r][c]; + result += *matrix; + ++matrix; } } return result; Modified: pyplusplus_dev/unittests/ft_from_address_tester.py =================================================================== --- pyplusplus_dev/unittests/ft_from_address_tester.py 2008-07-23 20:40:56 UTC (rev 1378) +++ pyplusplus_dev/unittests/ft_from_address_tester.py 2008-07-27 18:43:00 UTC (rev 1379) @@ -29,10 +29,9 @@ mb.calldef( 'sum_matrix' ).add_transformation( ft.from_address(0) ) def run_tests(self, module): - rows = 1 - columns = 1 + rows = 10 + columns = 7 matrix_type = ctypes.c_uint * columns * rows - print matrix_type sum = 0 counter = 0 matrix = matrix_type() @@ -41,10 +40,8 @@ matrix[r][c] = counter sum += counter counter += 1 - print 'matrix filled' result = module.sum_matrix( ctypes.addressof( matrix ), rows, columns ) - print 'result: ', result - print 'sum : ', sum + self.failUnless( result == sum ) def create_suite(): suite = unittest.TestSuite() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2008-09-11 19:02:58
|
Revision: 1414 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1414&view=rev Author: roman_yakovenko Date: 2008-09-11 19:03:08 +0000 (Thu, 11 Sep 2008) Log Message: ----------- add new test case Modified Paths: -------------- pyplusplus_dev/unittests/data/indexing_suites_to_be_exported.hpp pyplusplus_dev/unittests/indexing_suites_tester.py Added Paths: ----------- pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.cpp pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.hpp Modified: pyplusplus_dev/unittests/data/indexing_suites_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/indexing_suites_to_be_exported.hpp 2008-09-11 18:59:42 UTC (rev 1413) +++ pyplusplus_dev/unittests/data/indexing_suites_to_be_exported.hpp 2008-09-11 19:03:08 UTC (rev 1414) @@ -15,6 +15,14 @@ inline void do_nothing( const strings_t& ){} +inline strings_t get_names(){ + strings_t names; + names.push_back( "a" ); + names.push_back( "a" ); + names.push_back( "a" ); + return names; +} + struct item_t{ item_t() : value( -1 ){} Added: pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.cpp =================================================================== --- pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.cpp (rev 0) +++ pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.cpp 2008-09-11 19:03:08 UTC (rev 1414) @@ -0,0 +1,51 @@ +// 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) + +#include "member_variables_protected_to_be_exported.hpp" + +namespace member_variables{ + +int point::instance_count = 0; +const point::color point::default_color = point::red; + +unsigned int get_a(const bit_fields_t& inst){ + return inst.a; +} + +void set_a( bit_fields_t& inst, unsigned int new_value ){ + inst.a = new_value; +} + +unsigned int get_b(const bit_fields_t& inst){ + return inst.b; +} + +namespace pointers{ + +std::auto_ptr<tree_node_t> create_tree(){ + std::auto_ptr<tree_node_t> root( new tree_node_t() ); + root->data = new data_t(); + root->data->value = 0; + + root->left = new tree_node_t( root.get() ); + root->left->data = new data_t(); + root->left->data->value = 1; + + return root; +} + +} + +namespace statics{ + std::string mem_var_str_t::class_name( "mem_var_str_t" ); +} + + +namespace ctypes{ + int xxx = 1997; + int* image_t::none_image = &xxx; +} + +} Added: pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/member_variables_protected_to_be_exported.hpp 2008-09-11 19:03:08 UTC (rev 1414) @@ -0,0 +1,197 @@ +// 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) + +#ifndef __member_variables_protected_to_be_exported_hpp__ +#define __member_variables_protected_to_be_exported_hpp__ +#include <memory> +#include <string> +#include <iostream> + +namespace member_variables{ + +struct point{ + enum color{ red, green, blue }; + + point() + : prefered_color( blue ) + , x( -1 ) + , y( 2 ) + {++instance_count;} + + point( const point& other ) + : prefered_color( other.prefered_color ) + , x( other.x ) + , y( other.y ) + {} + + ~point() + { --instance_count; } +protected: + int x; + int y; + const color prefered_color; + static int instance_count; + static const color default_color; +}; + +struct bit_fields_t{ + friend unsigned int get_a(const bit_fields_t& inst); + friend void set_a( bit_fields_t& inst, unsigned int new_value ); + friend unsigned int get_b(const bit_fields_t& inst); + + bit_fields_t() + : b(28){} +protected: + unsigned int a : 1; + unsigned int : 0; + const unsigned int b : 11; +}; + +unsigned int get_a(const bit_fields_t& inst); +void set_a( bit_fields_t& inst, unsigned int new_value ); +unsigned int get_b(const bit_fields_t& inst); + +struct array_t{ + array_t(){ + for( int i = 0; i < 10; ++i ){ + ivars[i] = -i; + } + } + + struct variable_t{ + variable_t() : value(-9){} + int value; + }; + + int get_ivars_item( int index ){ + return ivars[index]; + } +protected: + const variable_t vars[3]; + int ivars[10]; + int ivars2[10]; +}; + +namespace pointers{ + +struct tree_node_t; + +struct data_t{ + friend struct tree_node_t; + friend std::auto_ptr<tree_node_t> create_tree(); + data_t() : value( 201 ) {} +protected: + int value; + static char* reserved; +}; + +struct tree_node_t{ +protected: + data_t *data; + tree_node_t *left; + tree_node_t *right; + const tree_node_t *parent; +public: + tree_node_t(const tree_node_t* parent=0) + : data(0) + , left( 0 ) + , right( 0 ) + , parent( parent ) + {} + + ~tree_node_t(){ + std::cout << "\n~tree_node_t"; + } + friend std::auto_ptr<tree_node_t> create_tree(); +}; + +std::auto_ptr<tree_node_t> create_tree(); + +} + +namespace reference{ + +enum EFruit{ apple, orange }; + +struct fundamental_t{ + fundamental_t( EFruit& fruit, const int& i ) + : m_fruit( fruit ), m_i( i ) + {} +protected: + EFruit& m_fruit; + const int& m_i; +}; + +struct A{}; + + +struct B { + B( A& a_ ): a( a_ ){} +protected: + A& a; +}; + +struct C { + C( A& a_ ): a( a_ ){} +protected: + const A& a; +}; + +} + +namespace statics{ + +struct mem_var_str_t{ +protected: + static std::string class_name; +public: + std::string identity(std::string x){ return x; } +}; + +} + +namespace bugs{ +struct allocator_ { + void * (*alloc) (unsigned); + void (*dispose) (void *p); +}; + +typedef struct allocator_ *allocator_t; + +struct faulty { +protected: + allocator_t allocator; +}; + +} + + +namespace ctypes{ + struct image_t{ + image_t(){ + data = new int[5]; + for(int i=0; i<5; i++){ + data[i] = i; + } + } + int* data; + + static int* none_image; + }; + + class Andy{ + protected: + Andy() : userData(NULL) {} + + virtual ~Andy() {} + + public: + void * userData; + }; + +} + +} +#endif//__member_variables_protected_to_be_exported_hpp__ Modified: pyplusplus_dev/unittests/indexing_suites_tester.py =================================================================== --- pyplusplus_dev/unittests/indexing_suites_tester.py 2008-09-11 18:59:42 UTC (rev 1413) +++ pyplusplus_dev/unittests/indexing_suites_tester.py 2008-09-11 19:03:08 UTC (rev 1414) @@ -41,6 +41,9 @@ items.append( item ) self.failUnless( module.get_value( items, 0 ).value == 1977 ) self.failUnless( len( items ) == 1 ) + names = module.get_names() + self.failUnless( len( names ) == 3 ) + self.failUnless( names[0] == names[1] == names[2]== "a" ) def create_suite(): suite = unittest.TestSuite() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2008-11-01 19:04:15
|
Revision: 1449 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1449&view=rev Author: roman_yakovenko Date: 2008-11-01 19:04:11 +0000 (Sat, 01 Nov 2008) Log Message: ----------- adding new test case Modified Paths: -------------- pyplusplus_dev/unittests/test_all.py Added Paths: ----------- pyplusplus_dev/unittests/data/protected_bug_to_be_exported.hpp pyplusplus_dev/unittests/protected_bug_tester.py Added: pyplusplus_dev/unittests/data/protected_bug_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/protected_bug_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/protected_bug_to_be_exported.hpp 2008-11-01 19:04:11 UTC (rev 1449) @@ -0,0 +1,66 @@ +template<class T> +class ref_ptr +{ +}; + +template<class T> +class buffered_value +{ +public: + buffered_value() {} + buffered_value(unsigned int size) {} + buffered_value& operator = (const buffered_value& rhs) {} +}; + +class Referenced +{ +public: + Referenced() {} + Referenced(const Referenced&) {} +protected: + virtual ~Referenced() {} +}; + +class Object : public Referenced +{ +public: + Object() {} + virtual const char* className() const = 0; + +protected: + virtual ~Object() {} +}; + +class Shader : public Object +{ +public: + + virtual const char* className() const { return "Shader"; } + + Shader() {} + Shader(const char *source ) {} + +protected: + class PerContextShader : public Referenced + { + public: + PerContextShader(const Shader* shader, unsigned int contextID) {} + + protected: + ~PerContextShader() {} + + private: + PerContextShader() {} + PerContextShader(const PerContextShader&) {} + PerContextShader& operator=(const PerContextShader&) {} + }; + +protected: + virtual ~Shader() {} + + PerContextShader* getPCS(unsigned int contextID) const {} + +protected: + mutable buffered_value< ref_ptr<PerContextShader> > _pcsList; +}; + Added: pyplusplus_dev/unittests/protected_bug_tester.py =================================================================== --- pyplusplus_dev/unittests/protected_bug_tester.py (rev 0) +++ pyplusplus_dev/unittests/protected_bug_tester.py 2008-11-01 19:04:11 UTC (rev 1449) @@ -0,0 +1,47 @@ +# Copyright 2004-2008 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 os +import sys +import unittest +import fundamental_tester_base +from pygccxml import declarations +from pyplusplus import code_creators + +class tester_t(fundamental_tester_base.fundamental_tester_base_t): + EXTENSION_NAME = 'protected_bug' + + def __init__( self, *args ): + fundamental_tester_base.fundamental_tester_base_t.__init__( + self + , tester_t.EXTENSION_NAME + , *args ) + + def customize(self, mb ): + access_type_matcher = declarations.access_type_matcher_t + mb.global_ns.include() + mb.classes( access_type_matcher('protected') ).exclude() + mb.vars( access_type_matcher('protected') ).exclude() + mb.class_( lambda d: d.name.startswith( 'buffered_value' ) ).exclude() + for cls in mb.classes(): + if declarations.has_destructor(cls) \ + and cls.calldef(lambda d: d.name.startswith('~'), recursive=False).access_type == 'protected': + print 'protected destructor: ', str( cls ) + cls.constructors().exclude() + cls.noncopyable = True + + def run_tests( self, module): + pass + +def create_suite(): + suite = unittest.TestSuite() + suite.addTest( unittest.makeSuite(tester_t)) + return suite + +def run_suite(): + unittest.TextTestRunner(verbosity=2).run( create_suite() ) + +if __name__ == "__main__": + run_suite() Modified: pyplusplus_dev/unittests/test_all.py =================================================================== --- pyplusplus_dev/unittests/test_all.py 2008-11-01 08:09:25 UTC (rev 1448) +++ pyplusplus_dev/unittests/test_all.py 2008-11-01 19:04:11 UTC (rev 1449) @@ -57,6 +57,7 @@ import factory_tester import private_assign_tester import protected_tester +import protected_bug_tester import indexing_suites_tester import indexing_suites2_tester import hierarchy3_tester @@ -206,6 +207,7 @@ , cp_return_addressof_tester , make_constructor_tester , return_auto_ptr_tester + , protected_bug_tester # , ogre_generate_tester too much time ] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2008-11-25 18:52:49
|
Revision: 1454 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1454&view=rev Author: roman_yakovenko Date: 2008-11-25 18:52:38 +0000 (Tue, 25 Nov 2008) Log Message: ----------- small changes to unit test process configuration Modified Paths: -------------- gccxml_bin/v09/linux2/share/gccxml-0.9/gccxml_config pyplusplus_dev/environment.py pyplusplus_dev/unittests/test_all.py Modified: gccxml_bin/v09/linux2/share/gccxml-0.9/gccxml_config =================================================================== --- gccxml_bin/v09/linux2/share/gccxml-0.9/gccxml_config 2008-11-24 20:22:35 UTC (rev 1453) +++ gccxml_bin/v09/linux2/share/gccxml-0.9/gccxml_config 2008-11-25 18:52:38 UTC (rev 1454) @@ -1,2 +1,2 @@ -GCCXML_COMPILER="/usr/bin/c++" +GCCXML_COMPILER="/usr/bin/g++-4.2" GCCXML_CXXFLAGS=" " Modified: pyplusplus_dev/environment.py =================================================================== --- pyplusplus_dev/environment.py 2008-11-24 20:22:35 UTC (rev 1453) +++ pyplusplus_dev/environment.py 2008-11-25 18:52:38 UTC (rev 1454) @@ -39,6 +39,8 @@ python.libs = 'e:/python25/libs' python.include = 'e:/python25/include' else: + os.nice( 20 ) + print 'test process niceness: 20' scons.suffix = '.so' scons.ccflags = ['-DBOOST_PYTHON_NO_PY_SIGNATURES' ] boost.libs = ['/home/roman/include/libs' ] Modified: pyplusplus_dev/unittests/test_all.py =================================================================== --- pyplusplus_dev/unittests/test_all.py 2008-11-24 20:22:35 UTC (rev 1453) +++ pyplusplus_dev/unittests/test_all.py 2008-11-25 18:52:38 UTC (rev 1454) @@ -312,7 +312,6 @@ if __name__ == "__main__": - os.nice( 20 ) runner = process_tester_runner_t( testers ) runner() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2008-12-17 19:04:00
|
Revision: 1474 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1474&view=rev Author: roman_yakovenko Date: 2008-12-17 19:03:56 +0000 (Wed, 17 Dec 2008) Log Message: ----------- update testers to the boost svn Modified Paths: -------------- pyplusplus_dev/unittests/dwrapper_printer_tester.py pyplusplus_dev/unittests/exposed_decls_db_tester.py pyplusplus_dev/unittests/mdecl_wrapper_tester.py Modified: pyplusplus_dev/unittests/dwrapper_printer_tester.py =================================================================== --- pyplusplus_dev/unittests/dwrapper_printer_tester.py 2008-12-17 18:39:23 UTC (rev 1473) +++ pyplusplus_dev/unittests/dwrapper_printer_tester.py 2008-12-17 19:03:56 UTC (rev 1474) @@ -7,6 +7,7 @@ import sys import unittest import autoconfig +import pygccxml from pyplusplus import module_builder class tester_t(unittest.TestCase): Modified: pyplusplus_dev/unittests/exposed_decls_db_tester.py =================================================================== --- pyplusplus_dev/unittests/exposed_decls_db_tester.py 2008-12-17 18:39:23 UTC (rev 1473) +++ pyplusplus_dev/unittests/exposed_decls_db_tester.py 2008-12-17 19:03:56 UTC (rev 1474) @@ -7,6 +7,7 @@ import sys import unittest import autoconfig +import pygccxml from pygccxml import parser from pygccxml import declarations from pyplusplus import decl_wrappers @@ -25,7 +26,7 @@ enum bbb{ b=2 }; void fff(); }; - + int VVV; void FFF( int ); } @@ -41,13 +42,13 @@ struct yyy{ struct{ int i;}; }; - + struct zzz{ union{ int x; float y; }; }; - + namespace{ int xxxx; } @@ -57,23 +58,24 @@ def test(self): db = pypp_utils.exposed_decls_db_t() - config = parser.config_t( gccxml_path=autoconfig.gccxml.executable ) + config = parser.config_t( gccxml_path=autoconfig.gccxml.executable + , compiler=pygccxml.utils.native_compiler.get_gccxml_compiler() ) reader = parser.project_reader_t( config, None, decl_wrappers.dwfactory_t() ) decls = reader.read_files( [parser.create_text_fc(self.CODE)] ) - + global_ns = declarations.get_global_namespace( decls ) ns = global_ns.namespace( 'ns' ) ns_skip = global_ns.namespace( 'ns_skip' ) - global_ns.exclude() + global_ns.exclude() ns.include() - + db.register_decls( global_ns, [] ) - + for x in ns.decls(recursive=True): self.failUnless( db.is_exposed( x ) == True ) - + for x in ns_skip.decls(recursive=True): self.failUnless( db.is_exposed( x ) == False ) Modified: pyplusplus_dev/unittests/mdecl_wrapper_tester.py =================================================================== --- pyplusplus_dev/unittests/mdecl_wrapper_tester.py 2008-12-17 18:39:23 UTC (rev 1473) +++ pyplusplus_dev/unittests/mdecl_wrapper_tester.py 2008-12-17 19:03:56 UTC (rev 1474) @@ -7,6 +7,7 @@ import sys import unittest import autoconfig +import pygccxml from pygccxml import declarations from pyplusplus import module_builder This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2008-12-24 22:22:10
|
Revision: 1498 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1498&view=rev Author: roman_yakovenko Date: 2008-12-24 21:48:48 +0000 (Wed, 24 Dec 2008) Log Message: ----------- adding initial test for ctypes builder Modified Paths: -------------- pyplusplus_dev/unittests/test_all.py Added Paths: ----------- pyplusplus_dev/unittests/ctypes_pof_tester.py pyplusplus_dev/unittests/data/ctypes_pof/ pyplusplus_dev/unittests/data/ctypes_pof/mydll.cpp pyplusplus_dev/unittests/data/ctypes_pof/mydll.h pyplusplus_dev/unittests/data/ctypes_pof/mydll.vcproj Added: pyplusplus_dev/unittests/ctypes_pof_tester.py =================================================================== --- pyplusplus_dev/unittests/ctypes_pof_tester.py (rev 0) +++ pyplusplus_dev/unittests/ctypes_pof_tester.py 2008-12-24 21:48:48 UTC (rev 1498) @@ -0,0 +1,33 @@ +# Copyright 2004-2008 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 os +import sys +import ctypes +import unittest +import autoconfig +from pyplusplus.module_builder import ctypes_module_builder_t + +class tester_t(unittest.TestCase): + def __init__( self, *args, **keywd ): + unittest.TestCase.__init__( self, *args, **keywd ) + self.project_dir = os.path.join( autoconfig.data_directory, 'ctypes_pof' ) + self.header = os.path.join( self.project_dir, 'mydll.h' ) + self.symbols_file = os.path.join( self.project_dir, 'release', 'mydll.dll' ) + + def test(self): + mb = ctypes_module_builder_t( [self.header], self.symbols_file, autoconfig.cxx_parsers_cfg.gccxml ) + +def create_suite(): + suite = unittest.TestSuite() + if 'win' in sys.platform: + suite.addTest( unittest.makeSuite(tester_t)) + return suite + +def run_suite(): + unittest.TextTestRunner(verbosity=2).run( create_suite() ) + +if __name__ == "__main__": + run_suite() Added: pyplusplus_dev/unittests/data/ctypes_pof/mydll.cpp =================================================================== --- pyplusplus_dev/unittests/data/ctypes_pof/mydll.cpp (rev 0) +++ pyplusplus_dev/unittests/data/ctypes_pof/mydll.cpp 2008-12-24 21:48:48 UTC (rev 1498) @@ -0,0 +1,59 @@ +#include "mydll.h" +#include "windows.h" +#include <iostream> + +number_t::number_t() +: m_value(0) +{ +// std::cout << "{C++} number_t( 0 )" << std::endl; +} + + +number_t::number_t(int value) +: m_value(value) +{ +// std::cout << "{C++} number_t( " << value << " )" << std::endl; +} + +number_t::~number_t() { +// std::cout << "{C++} ~number_t()" << std::endl; +} +void number_t::print_it() const { + std::cout << "{C++} value: " << m_value << std::endl; +} + +int number_t::get_value() const{ + return m_value; +} + +void number_t::set_value(int x){ + m_value = x; +} + +number_t number_t::clone() const{ + return number_t(*this); +} + +std::auto_ptr<number_t> number_t::clone_ptr() const{ + return std::auto_ptr<number_t>( new number_t( *this ) ); +} + +void do_smth( number_aptr_t& ){ +} + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + Added: pyplusplus_dev/unittests/data/ctypes_pof/mydll.h =================================================================== --- pyplusplus_dev/unittests/data/ctypes_pof/mydll.h (rev 0) +++ pyplusplus_dev/unittests/data/ctypes_pof/mydll.h 2008-12-24 21:48:48 UTC (rev 1498) @@ -0,0 +1,25 @@ +#pragma once + +#include <memory> + +class __declspec(dllexport) number_t{ +public: + number_t(); + explicit number_t(int value); + virtual ~number_t(); + void print_it() const; + int get_value() const; + int get_value(){ return m_value; } + void set_value(int x); + + number_t clone() const; + std::auto_ptr<number_t> clone_ptr() const; +private: + int m_value; +}; + +template class __declspec(dllexport) std::auto_ptr< number_t >; + +typedef std::auto_ptr< number_t > number_aptr_t; + +void __declspec(dllexport) do_smth( number_aptr_t& ); \ No newline at end of file Added: pyplusplus_dev/unittests/data/ctypes_pof/mydll.vcproj =================================================================== --- pyplusplus_dev/unittests/data/ctypes_pof/mydll.vcproj (rev 0) +++ pyplusplus_dev/unittests/data/ctypes_pof/mydll.vcproj 2008-12-24 21:48:48 UTC (rev 1498) @@ -0,0 +1,182 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9.00" + Name="mydll" + ProjectGUID="{E7A34C45-534F-43A6-AF95-3CA2428619E2}" + RootNamespace="mydll" + Keyword="Win32Proj" + TargetFrameworkVersion="196613" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="2" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MYDLL_EXPORTS" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="2" + WarningLevel="3" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="2" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + EnableIntrinsicFunctions="true" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MYDLL_EXPORTS" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + BrowseInformation="1" + WarningLevel="3" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + LinkIncremental="1" + GenerateDebugInformation="true" + GenerateMapFile="true" + MapExports="true" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <File + RelativePath=".\mydll.cpp" + > + </File> + <File + RelativePath=".\mydll.h" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Modified: pyplusplus_dev/unittests/test_all.py =================================================================== --- pyplusplus_dev/unittests/test_all.py 2008-12-24 21:22:12 UTC (rev 1497) +++ pyplusplus_dev/unittests/test_all.py 2008-12-24 21:48:48 UTC (rev 1498) @@ -110,6 +110,7 @@ import cp_return_addressof_tester import make_constructor_tester import return_auto_ptr_tester +import ctypes_pof_tester #import ogre_generate_tester testers = [ @@ -208,6 +209,7 @@ , make_constructor_tester , return_auto_ptr_tester , protected_bug_tester + , ctypes_pof_tester # , ogre_generate_tester too much time ] @@ -306,7 +308,11 @@ def __call__( self ): start_time = time.time() - [ m() for m in self.__m_runners ] + for index, tester in enumerate( self.__m_runners ): + print '\n\n{[<@>]}running tests complition: %d%%' % int( index * 100.0 // len(self.__m_runners) ) + print '--------------------------------^^^^^\n\n' + ( index, len(self.__m_runners) ) + tester() self.__total_time = time.time() - start_time self.__dump_statistics() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-01-03 19:48:58
|
Revision: 1523 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1523&view=rev Author: roman_yakovenko Date: 2009-01-03 19:48:47 +0000 (Sat, 03 Jan 2009) Log Message: ----------- moving to scons Added Paths: ----------- pyplusplus_dev/unittests/data/ctypes_pof/sconscript pyplusplus_dev/unittests/sconstruct Removed Paths: ------------- pyplusplus_dev/unittests/data/ctypes_pof/mydll.80.vcproj pyplusplus_dev/unittests/data/ctypes_pof/mydll.90.vcproj Property Changed: ---------------- pyplusplus_dev/unittests/data/ctypes_pof/ Property changes on: pyplusplus_dev/unittests/data/ctypes_pof ___________________________________________________________________ Added: svn:ignore + .sconsign.dblite Deleted: pyplusplus_dev/unittests/data/ctypes_pof/mydll.80.vcproj =================================================================== --- pyplusplus_dev/unittests/data/ctypes_pof/mydll.80.vcproj 2009-01-03 09:03:22 UTC (rev 1522) +++ pyplusplus_dev/unittests/data/ctypes_pof/mydll.80.vcproj 2009-01-03 19:48:47 UTC (rev 1523) @@ -1,187 +0,0 @@ -<?xml version="1.0" encoding="windows-1255"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="mydll" - ProjectGUID="{0B9466BC-60F8-4FC2-A1A9-6A01577690E5}" - RootNamespace="mydll" - Keyword="Win32Proj" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="2" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MYDLL_EXPORTS" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="3" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - LinkIncremental="2" - GenerateDebugInformation="true" - SubSystem="2" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="2" - CharacterSet="1" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MYDLL_EXPORTS" - RuntimeLibrary="2" - UsePrecompiledHeader="0" - BrowseInformation="1" - WarningLevel="3" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="3" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - LinkIncremental="1" - GenerateDebugInformation="true" - GenerateMapFile="true" - MapFileName="$(TargetDir)$(TargetName).map" - MapExports="true" - SubSystem="2" - OptimizeReferences="2" - EnableCOMDATFolding="2" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <File - RelativePath=".\mydll.cpp" - > - </File> - <File - RelativePath=".\mydll.h" - > - </File> - </Files> - <Globals> - </Globals> -</VisualStudioProject> Deleted: pyplusplus_dev/unittests/data/ctypes_pof/mydll.90.vcproj =================================================================== --- pyplusplus_dev/unittests/data/ctypes_pof/mydll.90.vcproj 2009-01-03 09:03:22 UTC (rev 1522) +++ pyplusplus_dev/unittests/data/ctypes_pof/mydll.90.vcproj 2009-01-03 19:48:47 UTC (rev 1523) @@ -1,182 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="9.00" - Name="mydll" - ProjectGUID="{E7A34C45-534F-43A6-AF95-3CA2428619E2}" - RootNamespace="mydll" - Keyword="Win32Proj" - TargetFrameworkVersion="196613" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="2" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MYDLL_EXPORTS" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="3" - UsePrecompiledHeader="2" - WarningLevel="3" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - LinkIncremental="2" - GenerateDebugInformation="true" - SubSystem="2" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="2" - CharacterSet="1" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="2" - EnableIntrinsicFunctions="true" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MYDLL_EXPORTS" - RuntimeLibrary="2" - EnableFunctionLevelLinking="true" - UsePrecompiledHeader="0" - BrowseInformation="1" - WarningLevel="3" - DebugInformationFormat="3" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - LinkIncremental="1" - GenerateDebugInformation="true" - GenerateMapFile="true" - MapExports="true" - SubSystem="2" - OptimizeReferences="2" - EnableCOMDATFolding="2" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <File - RelativePath=".\mydll.cpp" - > - </File> - <File - RelativePath=".\mydll.h" - > - </File> - </Files> - <Globals> - </Globals> -</VisualStudioProject> Added: pyplusplus_dev/unittests/data/ctypes_pof/sconscript =================================================================== --- pyplusplus_dev/unittests/data/ctypes_pof/sconscript (rev 0) +++ pyplusplus_dev/unittests/data/ctypes_pof/sconscript 2009-01-03 19:48:47 UTC (rev 1523) @@ -0,0 +1,6 @@ +Import('*') + +t = env.SharedLibrary( target=r'mydll' + , source=[ r'mydll.cpp' ] + , CCFLAGS=[ r"/MD",r"/EHsc",r"/GR",r"/Zc:wchar_t",r"/Zc:forScope" ] + , LINKFLAGS=[r"/MAP:${TARGET.base}.map", r"/MAPINFO:EXPORTS"] ) Added: pyplusplus_dev/unittests/sconstruct =================================================================== --- pyplusplus_dev/unittests/sconstruct (rev 0) +++ pyplusplus_dev/unittests/sconstruct 2009-01-03 19:48:47 UTC (rev 1523) @@ -0,0 +1,15 @@ +import os + +env = Environment() + +if os.path.exists( r'E:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib' ): + env.Append( LIBPATH=[ r'E:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib' + , r'E:\Program Files\Microsoft Visual Studio 9.0\VC\lib'] ) + env.Append( CPPPATH=[r"E:\Program Files\Microsoft SDKs\Windows\v6.0A\Include" + , r"E:\Program Files\Microsoft Visual Studio 9.0\VC\include"]) + +SConscript( 'data/ctypes_pof/sconscript' + , variant_dir='data/ctypes_pof/binaries' + , duplicate=0 + , exports=["env"] ) + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-01-04 19:03:59
|
Revision: 1527 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1527&view=rev Author: roman_yakovenko Date: 2009-01-04 19:03:55 +0000 (Sun, 04 Jan 2009) Log Message: ----------- setup ctypes testers framework Modified Paths: -------------- pygccxml_dev/pygccxml/msvc/common_utils.py pyplusplus_dev/pyplusplus/code_creators/library_reference.py pyplusplus_dev/unittests/autoconfig.py pyplusplus_dev/unittests/ctypes_pof_tester.py pyplusplus_dev/unittests/data/ctypes/pof/sconscript pyplusplus_dev/unittests/sconstruct Added Paths: ----------- pyplusplus_dev/unittests/data/ctypes/pof/pof.cpp pyplusplus_dev/unittests/data/ctypes/pof/pof.h Removed Paths: ------------- pygccxml_dev/unittests/data/xxx.bsc.bz2 pygccxml_dev/unittests/data/xxx.pdb.bz2 pyplusplus_dev/unittests/data/ctypes/pof/ctypes_pof.cpp pyplusplus_dev/unittests/data/ctypes/pof/ctypes_pof.h Property Changed: ---------------- pygccxml_dev/unittests/ pygccxml_dev/unittests/data/msvc/ pygccxml_dev/unittests/data/msvc_build/ pyplusplus_dev/unittests/data/ctypes/pof/ Modified: pygccxml_dev/pygccxml/msvc/common_utils.py =================================================================== --- pygccxml_dev/pygccxml/msvc/common_utils.py 2009-01-04 18:32:59 UTC (rev 1526) +++ pygccxml_dev/pygccxml/msvc/common_utils.py 2009-01-04 19:03:55 UTC (rev 1527) @@ -110,7 +110,7 @@ buffer = ctypes.create_string_buffer(1024*16) res = self.__undname( str(name), buffer, ctypes.sizeof(buffer), options) if res: - return self.normalize_undecorated_blob( str(buffer[:res]) ) + return self.normalize_undecorated( str(buffer[:res]) ) else: return name Property changes on: pygccxml_dev/unittests ___________________________________________________________________ Modified: svn:ignore - *.pyc temp + *.pyc temp *.pdbrc Property changes on: pygccxml_dev/unittests/data/msvc ___________________________________________________________________ Added: svn:ignore + Release Property changes on: pygccxml_dev/unittests/data/msvc_build ___________________________________________________________________ Added: svn:ignore + Debug Deleted: pygccxml_dev/unittests/data/xxx.bsc.bz2 =================================================================== (Binary files differ) Deleted: pygccxml_dev/unittests/data/xxx.pdb.bz2 =================================================================== (Binary files differ) Modified: pyplusplus_dev/pyplusplus/code_creators/library_reference.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/library_reference.py 2009-01-04 18:32:59 UTC (rev 1526) +++ pyplusplus_dev/pyplusplus/code_creators/library_reference.py 2009-01-04 19:03:55 UTC (rev 1527) @@ -25,7 +25,7 @@ return library_var_name else: basename = os.path.splitext( os.path.basename( library_path ) )[0] - return decl_wrappers.algorithm.create_valid_name( basename ) + return decl_wrappers.algorithm.create_valid_name( basename ) + 'lib' def _create_impl(self): return '%(var)s = ctypes.%(loader)s( r"%(path)s" )' \ Modified: pyplusplus_dev/unittests/autoconfig.py =================================================================== --- pyplusplus_dev/unittests/autoconfig.py 2009-01-04 18:32:59 UTC (rev 1526) +++ pyplusplus_dev/unittests/autoconfig.py 2009-01-04 19:03:55 UTC (rev 1527) @@ -28,7 +28,7 @@ class cxx_parsers_cfg: keywd = { 'working_directory' : data_directory , 'define_symbols' : [ gccxml_version ] - , 'compiler' : "msvc71" + , 'compiler' : compiler , 'gccxml_path': gccxml.executable } if 'win' in sys.platform: Modified: pyplusplus_dev/unittests/ctypes_pof_tester.py =================================================================== --- pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-04 18:32:59 UTC (rev 1526) +++ pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-04 19:03:55 UTC (rev 1527) @@ -10,15 +10,19 @@ import autoconfig from pyplusplus.module_builder import ctypes_module_builder_t -class tester_t(unittest.TestCase): +class ctypes_base_tester_t(unittest.TestCase): _module_ref_ = None - def __init__( self, *args, **keywd ): + def __init__( self, base_name, *args, **keywd ): unittest.TestCase.__init__( self, *args, **keywd ) - self.base_name = 'ctypes_pof' + self.__base_name = base_name @property + def base_name( self ): + return self.__base_name + + @property def project_dir( self ): - return os.path.join( autoconfig.data_directory, self.base_name ) + return os.path.join( autoconfig.data_directory, 'ctypes', self.base_name ) @property def header( self ): @@ -29,19 +33,25 @@ return os.path.join( self.project_dir, 'binaries', self.base_name + '.dll' ) def setUp( self ): - if tester_t._module_ref_: + if ctypes_base_tester_t._module_ref_: return autoconfig.scons_config.compile( autoconfig.scons.cmd_build + ' ' + self.base_name ) mb = ctypes_module_builder_t( [self.header], self.symbols_file, autoconfig.cxx_parsers_cfg.gccxml ) mb.build_code_creator( self.symbols_file ) - mb.write_module( os.path.join( autoconfig.build_directory, self.module_name + '.py' ) ) - tester_t._module_ref_ = __import__( os.path.join( autoconfig.build_directory, self.base_name + '.py' ) ) + mb.write_module( os.path.join( self.project_dir, 'binaries', self.base_name + '.py' ) ) + sys.path.insert( 0, os.path.join( self.project_dir, 'binaries' ) ) + ctypes_base_tester_t._module_ref_ = __import__( self.base_name ) @property def module_ref(self): return self._module_ref_ + +class tester_t( ctypes_base_tester_t ): + def __init__( self, *args, **keywd ): + ctypes_base_tester_t.__init__( self, 'pof', *args, **keywd ) + def test_constructors(self): n0 = self.module_ref.pof.number_t() self.failUnless( 0 == n0.get_value() ) @@ -74,15 +84,6 @@ #~ obj2 = obj1.clone() #~ self.fail( obj1.get_value() == obj2.get_value() ) - - def test_bsc( self ): - root = r'E:\Documents and Settings\romany\Desktop\ToInstall\bsckit70\bscsdk' - mb = ctypes_module_builder_t( [os.path.join( root, 'bsc.h' )] - , os.path.join( root, 'msbsc70.dll' ), autoconfig.cxx_parsers_cfg.gccxml ) - mb.build_code_creator( self.symbols_file ) - mb.write_module( os.path.join( root, 'bsc.py' ) ) - - def create_suite(): suite = unittest.TestSuite() if 'win' in sys.platform: Property changes on: pyplusplus_dev/unittests/data/ctypes/pof ___________________________________________________________________ Added: svn:ignore + binaries Deleted: pyplusplus_dev/unittests/data/ctypes/pof/ctypes_pof.cpp =================================================================== --- pyplusplus_dev/unittests/data/ctypes/pof/ctypes_pof.cpp 2009-01-04 18:32:59 UTC (rev 1526) +++ pyplusplus_dev/unittests/data/ctypes/pof/ctypes_pof.cpp 2009-01-04 19:03:55 UTC (rev 1527) @@ -1,69 +0,0 @@ -#include "ctypes_pof.h" -#include "windows.h" -#include <iostream> - -namespace pof{ - -number_t::number_t() -: m_value(0) -{ -// std::cout << "{C++} number_t( 0 )" << std::endl; -} - - -number_t::number_t(int value) -: m_value(value) -{ -// std::cout << "{C++} number_t( " << value << " )" << std::endl; -} - -number_t::~number_t() { -// std::cout << "{C++} ~number_t()" << std::endl; -} -void number_t::print_it() const { - std::cout << "{C++} value: " << m_value << std::endl; -} - -int number_t::get_value() const{ - return m_value; -} - -void number_t::set_value(int x){ - m_value = x; -} - -number_t number_t::clone() const{ - return number_t(*this); -} - -std::auto_ptr<number_t> number_t::clone_ptr() const{ - return std::auto_ptr<number_t>( new number_t( *this ) ); -} - -} - -using namespace pof; - -void do_smth( number_aptr_t& ){ -} - -int identity( int some_data){ return some_data;} - -int identity_cpp( int data){ return data; } - -//~ BOOL APIENTRY DllMain( HMODULE hModule, - //~ DWORD ul_reason_for_call, - //~ LPVOID lpReserved - //~ ) -//~ { - //~ switch (ul_reason_for_call) - //~ { - //~ case DLL_PROCESS_ATTACH: - //~ case DLL_THREAD_ATTACH: - //~ case DLL_THREAD_DETACH: - //~ case DLL_PROCESS_DETACH: - //~ break; - //~ } - //~ return TRUE; -//~ } - Deleted: pyplusplus_dev/unittests/data/ctypes/pof/ctypes_pof.h =================================================================== --- pyplusplus_dev/unittests/data/ctypes/pof/ctypes_pof.h 2009-01-04 18:32:59 UTC (rev 1526) +++ pyplusplus_dev/unittests/data/ctypes/pof/ctypes_pof.h 2009-01-04 19:03:55 UTC (rev 1527) @@ -1,36 +0,0 @@ -#pragma once - -#include <memory> - -namespace pof{ - -class __declspec(dllexport) number_t{ -public: - number_t(); - explicit number_t(int value); - virtual ~number_t(); - virtual void print_it() const; - int get_value() const; - int get_value(){ return m_value; } - void set_value(int x); - - number_t clone() const; - std::auto_ptr<number_t> clone_ptr() const; -private: - int m_value; -}; - -} -template class __declspec(dllexport) std::auto_ptr< pof::number_t >; - -typedef std::auto_ptr< pof::number_t > number_aptr_t; - -void __declspec(dllexport) do_smth( number_aptr_t& ); - -extern "C"{ - -int __declspec(dllexport) identity( int ); - -} - -int __declspec(dllexport) identity_cpp( int ); \ No newline at end of file Added: pyplusplus_dev/unittests/data/ctypes/pof/pof.cpp =================================================================== --- pyplusplus_dev/unittests/data/ctypes/pof/pof.cpp (rev 0) +++ pyplusplus_dev/unittests/data/ctypes/pof/pof.cpp 2009-01-04 19:03:55 UTC (rev 1527) @@ -0,0 +1,52 @@ +#include "pof.h" +#include <iostream> + +namespace pof{ + +number_t::number_t() +: m_value(0) +{ +// std::cout << "{C++} number_t( 0 )" << std::endl; +} + + +number_t::number_t(int value) +: m_value(value) +{ +// std::cout << "{C++} number_t( " << value << " )" << std::endl; +} + +number_t::~number_t() { +// std::cout << "{C++} ~number_t()" << std::endl; +} +void number_t::print_it() const { + std::cout << "{C++} value: " << m_value << std::endl; +} + +int number_t::get_value() const{ + return m_value; +} + +void number_t::set_value(int x){ + m_value = x; +} + +number_t number_t::clone() const{ + return number_t(*this); +} + +std::auto_ptr<number_t> number_t::clone_ptr() const{ + return std::auto_ptr<number_t>( new number_t( *this ) ); +} + +} + +using namespace pof; + +void do_smth( number_aptr_t& ){ +} + +int identity( int some_data){ return some_data;} + +int identity_cpp( int data){ return data; } + Copied: pyplusplus_dev/unittests/data/ctypes/pof/pof.h (from rev 1526, pyplusplus_dev/unittests/data/ctypes/pof/ctypes_pof.h) =================================================================== --- pyplusplus_dev/unittests/data/ctypes/pof/pof.h (rev 0) +++ pyplusplus_dev/unittests/data/ctypes/pof/pof.h 2009-01-04 19:03:55 UTC (rev 1527) @@ -0,0 +1,36 @@ +#pragma once + +#include <memory> + +namespace pof{ + +class __declspec(dllexport) number_t{ +public: + number_t(); + explicit number_t(int value); + virtual ~number_t(); + virtual void print_it() const; + int get_value() const; + int get_value(){ return m_value; } + void set_value(int x); + + number_t clone() const; + std::auto_ptr<number_t> clone_ptr() const; +private: + int m_value; +}; + +} +template class __declspec(dllexport) std::auto_ptr< pof::number_t >; + +typedef std::auto_ptr< pof::number_t > number_aptr_t; + +void __declspec(dllexport) do_smth( number_aptr_t& ); + +extern "C"{ + +int __declspec(dllexport) identity( int ); + +} + +int __declspec(dllexport) identity_cpp( int ); \ No newline at end of file Modified: pyplusplus_dev/unittests/data/ctypes/pof/sconscript =================================================================== --- pyplusplus_dev/unittests/data/ctypes/pof/sconscript 2009-01-04 18:32:59 UTC (rev 1526) +++ pyplusplus_dev/unittests/data/ctypes/pof/sconscript 2009-01-04 19:03:55 UTC (rev 1527) @@ -1,9 +1,7 @@ Import('*') -target_name = 'ctypes_pof' -shlib = env.SharedLibrary( target=target_name - , source=[ target_name + '.cpp' ] - , CCFLAGS=[ r"/MD",r"/EHsc",r"/GR",r"/Zc:wchar_t",r"/Zc:forScope" ] +target_name = 'pof' +shlib = env.SharedLibrary( target=target_name, source=[ target_name + '.cpp' ] , LINKFLAGS=[r"/MAP:${TARGET.base}.map", r"/MAPINFO:EXPORTS"] ) env.Alias( target_name, shlib ) Modified: pyplusplus_dev/unittests/sconstruct =================================================================== --- pyplusplus_dev/unittests/sconstruct 2009-01-04 18:32:59 UTC (rev 1526) +++ pyplusplus_dev/unittests/sconstruct 2009-01-04 19:03:55 UTC (rev 1527) @@ -8,8 +8,11 @@ env.Append( CPPPATH=[r"E:\Program Files\Microsoft SDKs\Windows\v6.0A\Include" , r"E:\Program Files\Microsoft Visual Studio 9.0\VC\include"]) -SConscript( 'data/ctypes_pof/sconscript' - , variant_dir='data/ctypes_pof/binaries' +env.AppendUnique( CCFLAGS=[ r"/MD",r"/EHsc",r"/GR",r"/Zc:wchar_t",r"/Zc:forScope" ] ) +env.AppendUnique( LINKFLAGS=[r"/MAP:${TARGET.base}.map", r"/MAPINFO:EXPORTS"] ) + +SConscript( 'data/ctypes/pof/sconscript' + , variant_dir='data/ctypes/pof/binaries' , duplicate=0 , exports=["env"] ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-01-11 19:18:54
|
Revision: 1557 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1557&view=rev Author: roman_yakovenko Date: 2009-01-11 19:18:50 +0000 (Sun, 11 Jan 2009) Log Message: ----------- updating enum tester Modified Paths: -------------- pyplusplus_dev/unittests/autoconfig.py pyplusplus_dev/unittests/ctypes_pof_tester.py pyplusplus_dev/unittests/sconstruct Modified: pyplusplus_dev/unittests/autoconfig.py =================================================================== --- pyplusplus_dev/unittests/autoconfig.py 2009-01-11 09:42:07 UTC (rev 1556) +++ pyplusplus_dev/unittests/autoconfig.py 2009-01-11 19:18:50 UTC (rev 1557) @@ -23,7 +23,6 @@ import pygccxml compiler = pygccxml.utils.native_compiler.get_gccxml_compiler() -compiler = "msvc71" print 'GCCXML configured to simulate compiler ', compiler gccxml_version = '__GCCXML_09__' class cxx_parsers_cfg: Modified: pyplusplus_dev/unittests/ctypes_pof_tester.py =================================================================== --- pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-11 09:42:07 UTC (rev 1556) +++ pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-11 19:18:50 UTC (rev 1557) @@ -31,11 +31,19 @@ @property def symbols_file( self ): - return os.path.join( self.project_dir, 'binaries', self.base_name + '.map' ) + ext = '.so' + prefix = 'lib' + if 'win32' in sys.platform: + prefix = '' + ext = '.map' + return os.path.join( self.project_dir, 'binaries', prefix + self.base_name + ext ) @property def library_file( self ): - return os.path.join( self.project_dir, 'binaries', self.base_name + '.dll' ) + if 'win32' in sys.platform: + return os.path.join( self.project_dir, 'binaries', self.base_name + '.dll' ) + else: + return self.symbols_file def customize(self, mb ): pass @@ -116,14 +124,18 @@ mb.enums().include() def test(self): - pass + self.failUnless( self.module_ref.Chisla.nol == 0 ) + self.failUnless( self.module_ref.Chisla.odin == 1 ) + self.failUnless( self.module_ref.Chisla.dva == 2 ) + self.failUnless( self.module_ref.Chisla.tri == 3 ) + def create_suite(): suite = unittest.TestSuite() if 'win' in sys.platform: suite.addTest( unittest.makeSuite(pof_tester_t)) suite.addTest( unittest.makeSuite(issues_tester_t)) - suite.addTest( unittest.makeSuite(enums_tester_t)) + suite.addTest( unittest.makeSuite(enums_tester_t)) return suite def run_suite(): Modified: pyplusplus_dev/unittests/sconstruct =================================================================== --- pyplusplus_dev/unittests/sconstruct 2009-01-11 09:42:07 UTC (rev 1556) +++ pyplusplus_dev/unittests/sconstruct 2009-01-11 19:18:50 UTC (rev 1557) @@ -1,15 +1,17 @@ import os +import sys env = Environment() -if os.path.exists( r'E:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib' ): - env.Append( LIBPATH=[ r'E:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib' - , r'E:\Program Files\Microsoft Visual Studio 9.0\VC\lib'] ) - env.Append( CPPPATH=[r"E:\Program Files\Microsoft SDKs\Windows\v6.0A\Include" - , r"E:\Program Files\Microsoft Visual Studio 9.0\VC\include"]) +if 'win32' in sys.platform: + if os.path.exists( r'E:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib' ): + env.Append( LIBPATH=[ r'E:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib' + , r'E:\Program Files\Microsoft Visual Studio 9.0\VC\lib'] ) + env.Append( CPPPATH=[r"E:\Program Files\Microsoft SDKs\Windows\v6.0A\Include" + , r"E:\Program Files\Microsoft Visual Studio 9.0\VC\include"]) -env.AppendUnique( CCFLAGS=[ r"/MD",r"/EHsc",r"/GR",r"/Zc:wchar_t",r"/Zc:forScope" ] ) -env.AppendUnique( LINKFLAGS=[r"/MAP:${TARGET.base}.map", r"/MAPINFO:EXPORTS"] ) + env.AppendUnique( CCFLAGS=[ r"/MD",r"/EHsc",r"/GR",r"/Zc:wchar_t",r"/Zc:forScope" ] ) + env.AppendUnique( LINKFLAGS=[r"/MAP:${TARGET.base}.map", r"/MAPINFO:EXPORTS"] ) scripts = [ 'pof', 'issues', 'enums' ] for s in scripts: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-01-15 08:39:35
|
Revision: 1576 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1576&view=rev Author: roman_yakovenko Date: 2009-01-15 08:39:29 +0000 (Thu, 15 Jan 2009) Log Message: ----------- removing dead code ( reference to pdb ) Modified Paths: -------------- pygccxml_dev/unittests/type_traits_tester.py pyplusplus_dev/pyplusplus/code_creators/fields_definition.py pyplusplus_dev/unittests/member_variables_tester.py pyplusplus_dev/unittests/unions_tester.py Modified: pygccxml_dev/unittests/type_traits_tester.py =================================================================== --- pygccxml_dev/unittests/type_traits_tester.py 2009-01-15 07:06:24 UTC (rev 1575) +++ pygccxml_dev/unittests/type_traits_tester.py 2009-01-15 08:39:29 UTC (rev 1576) @@ -45,9 +45,6 @@ elif isinstance( decl, declarations.calldef_t ) and decl.name.startswith( 'test_' ): continue else: - #~ if 'mf1_type_const_volatile_t' in decl.name: - #~ import pdb - #~ pdb.set_trace() self.failUnless( controller( decl ) , 'for type "%s" the answer to the question "%s" should be True' % ( decl.decl_string, ns_name ) ) Modified: pyplusplus_dev/pyplusplus/code_creators/fields_definition.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/fields_definition.py 2009-01-15 07:06:24 UTC (rev 1575) +++ pyplusplus_dev/pyplusplus/code_creators/fields_definition.py 2009-01-15 08:39:29 UTC (rev 1576) @@ -30,10 +30,7 @@ return False def _create_impl(self): - result = [] - #~ import pdb - #~ pdb.set_trace() - + result = [] anonymous_vars = self.declaration.vars( self.has_unnamed_type, recursive=False, allow_empty=True ) if anonymous_vars: formated_vars = [] Modified: pyplusplus_dev/unittests/member_variables_tester.py =================================================================== --- pyplusplus_dev/unittests/member_variables_tester.py 2009-01-15 07:06:24 UTC (rev 1575) +++ pyplusplus_dev/unittests/member_variables_tester.py 2009-01-15 08:39:29 UTC (rev 1576) @@ -8,7 +8,6 @@ import ctypes import unittest import fundamental_tester_base -import pdb class tester_t(fundamental_tester_base.fundamental_tester_base_t): EXTENSION_NAME = 'member_variables' @@ -92,7 +91,6 @@ image = module.image_t() - #pdb.set_trace() data_type = ctypes.POINTER( ctypes.c_int ) data = data_type.from_address( image.data ) for j in range(5): Modified: pyplusplus_dev/unittests/unions_tester.py =================================================================== --- pyplusplus_dev/unittests/unions_tester.py 2009-01-15 07:06:24 UTC (rev 1575) +++ pyplusplus_dev/unittests/unions_tester.py 2009-01-15 08:39:29 UTC (rev 1576) @@ -5,7 +5,6 @@ import os import sys -import pdb import ctypes import unittest import fundamental_tester_base This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-01-15 08:57:42
|
Revision: 1577 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1577&view=rev Author: roman_yakovenko Date: 2009-01-15 08:57:39 +0000 (Thu, 15 Jan 2009) Log Message: ----------- making ctypes testers to work on windows with python 2.5 and visual studio 2003 Modified Paths: -------------- pyplusplus_dev/unittests/autoconfig.py pyplusplus_dev/unittests/ctypes_pof_tester.py pyplusplus_dev/unittests/sconstruct Modified: pyplusplus_dev/unittests/autoconfig.py =================================================================== --- pyplusplus_dev/unittests/autoconfig.py 2009-01-15 08:39:29 UTC (rev 1576) +++ pyplusplus_dev/unittests/autoconfig.py 2009-01-15 08:57:39 UTC (rev 1577) @@ -22,24 +22,22 @@ import pygccxml -compiler = pygccxml.utils.native_compiler.get_gccxml_compiler() -print 'GCCXML configured to simulate compiler ', compiler gccxml_version = '__GCCXML_09__' + class cxx_parsers_cfg: - keywd = { 'working_directory' : data_directory - , 'define_symbols' : [ gccxml_version ] - , 'compiler' : compiler - , 'gccxml_path': gccxml.executable } + gccxml = pygccxml.parser.load_gccxml_configuration( 'gccxml.cfg' + , gccxml_path=gccxml.executable + , working_directory=data_directory + , compiler=pygccxml.utils.native_compiler.get_gccxml_compiler() ) + gccxml.define_symbols.append( gccxml_version ) if 'win' in sys.platform: - keywd['define_symbols'].append( '__PYGCCXML_%s__' % compiler.upper() ) - if 'msvc9' == compiler: - keywd['define_symbols'].append( '_HAS_TR1=0' ) + gccxml.define_symbols.append( '__PYGCCXML_%s__' % gccxml.compiler.upper() ) + if 'msvc9' == gccxml.compiler: + gccxml.define_symbols.append( '_HAS_TR1=0' ) - gccxml = pygccxml.parser.gccxml_configuration_t( **keywd ) +print 'GCCXML configured to simulate compiler ', cxx_parsers_cfg.gccxml.compiler - - class scons_config: libs = [] libpath = [ python.libs ] + boost.libs Modified: pyplusplus_dev/unittests/ctypes_pof_tester.py =================================================================== --- pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-15 08:39:29 UTC (rev 1576) +++ pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-15 08:57:39 UTC (rev 1577) @@ -48,12 +48,17 @@ def customize(self, mb ): pass + def __build_scons_cmd( self ): + cmd = autoconfig.scons.cmd_build + ' ' + self.base_name + if autoconfig.cxx_parsers_cfg.gccxml.compiler == 'msvc71': + cmd = cmd + ' use_msvc71=True' + return cmd + def setUp( self ): if self.base_name in sys.modules: return sys.modules[ self.base_name ] - #~ import pdb - #~ pdb.set_trace() - autoconfig.scons_config.compile( autoconfig.scons.cmd_build + ' ' + self.base_name ) + + autoconfig.scons_config.compile( self.__build_scons_cmd() ) mb = ctypes_module_builder_t( [self.header], self.symbols_file, autoconfig.cxx_parsers_cfg.gccxml ) self.customize( mb ) mb.build_code_creator( self.library_file ) @@ -150,7 +155,7 @@ self.failUnless( mb.global_ns.class_( 'io_marker_t' ).ignore == False ) def test(self): - self.failUnless( mb.module_ref.io_marker_t ) + self.failUnless( self.module_ref.io_marker_t ) class anonymous_tester_t( ctypes_base_tester_t ): def __init__( self, *args, **keywd ): @@ -166,12 +171,12 @@ def create_suite(): suite = unittest.TestSuite() - #~ if 'win' in sys.platform: - #~ suite.addTest( unittest.makeSuite(pof_tester_t)) - #~ suite.addTest( unittest.makeSuite(issues_tester_t)) - #~ suite.addTest( unittest.makeSuite(enums_tester_t)) - #~ suite.addTest( unittest.makeSuite(opaque_tester_t)) - #~ suite.addTest( unittest.makeSuite(include_algorithm_tester_t)) + if 'win' in sys.platform: + suite.addTest( unittest.makeSuite(pof_tester_t)) + suite.addTest( unittest.makeSuite(issues_tester_t)) + suite.addTest( unittest.makeSuite(enums_tester_t)) + suite.addTest( unittest.makeSuite(opaque_tester_t)) + suite.addTest( unittest.makeSuite(include_algorithm_tester_t)) suite.addTest( unittest.makeSuite(anonymous_tester_t)) return suite Modified: pyplusplus_dev/unittests/sconstruct =================================================================== --- pyplusplus_dev/unittests/sconstruct 2009-01-15 08:39:29 UTC (rev 1576) +++ pyplusplus_dev/unittests/sconstruct 2009-01-15 08:57:39 UTC (rev 1577) @@ -1,8 +1,12 @@ import os import sys -env = Environment() +opts = Options( "options.txt", ARGUMENTS ) +opts.Add( BoolOption( 'use_msvc71', 'use msvc71 compiler', False ) ) + +env = Environment(options=opts) + if 'win32' in sys.platform: if os.path.exists( r'E:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib' ): env.Append( LIBPATH=[ r'E:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib' @@ -13,6 +17,12 @@ env.AppendUnique( CCFLAGS=[ r"/MD",r"/EHsc",r"/GR",r"/Zc:wchar_t",r"/Zc:forScope" ] ) env.AppendUnique( LINKFLAGS=[r"/MAP:${TARGET.base}.map", r"/MAPINFO:EXPORTS"] ) + if env[ 'use_msvc71' ]: + env['MSVS'] = {'VERSION': '7.1'} + env['MSVS_VERSION'] = '7.1' + Tool('msvc')(env) + + env.AppendUnique( CPPPATH=['#data'] ) scripts = [ 'pof', 'issues', 'enums', 'opaque', 'include_algorithm', 'anonymous' ] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-01-15 12:54:43
|
Revision: 1578 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1578&view=rev Author: roman_yakovenko Date: 2009-01-15 11:51:47 +0000 (Thu, 15 Jan 2009) Log Message: ----------- making ctypes tests to work on windows Modified Paths: -------------- pyplusplus_dev/unittests/autoconfig.py pyplusplus_dev/unittests/ctypes_pof_tester.py Modified: pyplusplus_dev/unittests/autoconfig.py =================================================================== --- pyplusplus_dev/unittests/autoconfig.py 2009-01-15 08:57:39 UTC (rev 1577) +++ pyplusplus_dev/unittests/autoconfig.py 2009-01-15 11:51:47 UTC (rev 1578) @@ -25,7 +25,7 @@ gccxml_version = '__GCCXML_09__' class cxx_parsers_cfg: - gccxml = pygccxml.parser.load_gccxml_configuration( 'gccxml.cfg' + gccxml = pygccxml.parser.load_gccxml_configuration( os.path.join( this_module_dir_path, 'gccxml.cfg' ) , gccxml_path=gccxml.executable , working_directory=data_directory , compiler=pygccxml.utils.native_compiler.get_gccxml_compiler() ) @@ -72,14 +72,14 @@ return os.linesep.join( code ) @staticmethod - def compile( cmd ) : + def compile( cmd, cwd=build_directory ) : print '\n', cmd process = subprocess.Popen( args=cmd , shell=True , stdin=subprocess.PIPE , stdout=subprocess.PIPE , stderr=subprocess.STDOUT - , cwd=this_module_dir_path ) + , cwd=cwd ) process.stdin.close() while process.poll() is None: Modified: pyplusplus_dev/unittests/ctypes_pof_tester.py =================================================================== --- pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-15 08:57:39 UTC (rev 1577) +++ pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-15 11:51:47 UTC (rev 1578) @@ -58,7 +58,7 @@ if self.base_name in sys.modules: return sys.modules[ self.base_name ] - autoconfig.scons_config.compile( self.__build_scons_cmd() ) + autoconfig.scons_config.compile( self.__build_scons_cmd(), cwd=autoconfig.this_module_dir_path ) mb = ctypes_module_builder_t( [self.header], self.symbols_file, autoconfig.cxx_parsers_cfg.gccxml ) self.customize( mb ) mb.build_code_creator( self.library_file ) @@ -146,7 +146,7 @@ udt = self.module_ref.create() self.failUnless( 1977 == self.module_ref.read_user_data(udt) ) self.module_ref.destroy( udt ) - + class include_algorithm_tester_t( ctypes_base_tester_t ): def __init__( self, *args, **keywd ): ctypes_base_tester_t.__init__( self, 'include_algorithm', *args, **keywd ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-01-17 09:29:40
|
Revision: 1582 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1582&view=rev Author: roman_yakovenko Date: 2009-01-17 09:29:36 +0000 (Sat, 17 Jan 2009) Log Message: ----------- fixing small compilation bug Modified Paths: -------------- pyplusplus_dev/unittests/data/ctypes/opaque/opaque.h Property Changed: ---------------- pyplusplus_dev/unittests/data/ctypes/anonymous/ pyplusplus_dev/unittests/data/ctypes/enums/ pyplusplus_dev/unittests/data/ctypes/include_algorithm/ pyplusplus_dev/unittests/data/ctypes/issues/ pyplusplus_dev/unittests/data/ctypes/opaque/ pyplusplus_dev/unittests/temp/ Property changes on: pyplusplus_dev/unittests/data/ctypes/anonymous ___________________________________________________________________ Added: svn:ignore + binaries Property changes on: pyplusplus_dev/unittests/data/ctypes/enums ___________________________________________________________________ Added: svn:ignore + binaries Property changes on: pyplusplus_dev/unittests/data/ctypes/include_algorithm ___________________________________________________________________ Added: svn:ignore + binaries Property changes on: pyplusplus_dev/unittests/data/ctypes/issues ___________________________________________________________________ Added: svn:ignore + binaries Property changes on: pyplusplus_dev/unittests/data/ctypes/opaque ___________________________________________________________________ Added: svn:ignore + binaries Modified: pyplusplus_dev/unittests/data/ctypes/opaque/opaque.h =================================================================== --- pyplusplus_dev/unittests/data/ctypes/opaque/opaque.h 2009-01-15 21:27:30 UTC (rev 1581) +++ pyplusplus_dev/unittests/data/ctypes/opaque/opaque.h 2009-01-17 09:29:36 UTC (rev 1582) @@ -7,6 +7,6 @@ }; -user_data_t* EXPORT_SYMBOL create(); +EXPORT_SYMBOL user_data_t* create(); int EXPORT_SYMBOL read_user_data(user_data_t*); void EXPORT_SYMBOL destroy(user_data_t*); Property changes on: pyplusplus_dev/unittests/temp ___________________________________________________________________ Modified: svn:ignore - internal_classes.dll member_functions.dll member_variables.dll module_body.dll namespaces.dll noncopyable.dll operators.dll operators_bug.dll optional.dll optional_bug.dll pointer_as_arg.dll pointer_to_function_as_argument.dll private_assign.dll recursive.dll regression1.dll regression2.dll regression3.dll smart_pointers.dll special_operators.dll statics.dll temprorary_variable.dll unnamed_enums.dll user_text.dll abstract.cpp~ call_policies.cpp~ casting.cpp~ class_order2.cpp~ class_order3.cpp~ class_order4.cpp~ class_order.cpp~ classes.cpp~ enums.cpp~ factory.cpp~ finalizables.cpp~ free_functions.cpp~ free_operators.cpp~ global_variables.cpp~ index_operator.cpp~ internal_classes.cpp~ member_functions.cpp~ member_variables.cpp~ noncopyable.cpp~ operators_bug.cpp~ optional.cpp~ optional_bug.cpp~ pointer_as_arg.cpp~ pointer_to_function_as_argument.cpp~ private_assign.cpp~ recursive.cpp~ regression1.cpp~ regression2.cpp~ regression3.cpp~ smart_pointers.cpp~ special_operators.cpp~ statics.cpp~ temprorary_variable.cpp~ unnamed_enums.cpp~ user_text.cpp~ abstract.exp call_policies.exp casting.exp class_order2.exp class_order3.exp class_order4.exp class_order.exp classes.exp enums.exp factory.exp finalizables.exp free_function_ignore_bug.exp free_functions.exp free_operators.exp global_variables.exp index_operator.exp internal_classes.exp member_functions.exp member_variables.exp module_body.exp namespaces.exp noncopyable.exp operators.exp operators_bug.exp optional.exp optional_bug.exp pointer_as_arg.exp pointer_to_function_as_argument.exp private_assign.exp recursive.exp regression1.exp regression2.exp regression3.exp smart_pointers.exp special_operators.exp statics.exp temprorary_variable.exp unnamed_enums.exp user_text.exp abstract.lib call_policies.lib casting.lib class_order2.lib class_order3.lib class_order4.lib class_order.lib classes.lib enums.lib factory.lib finalizables.lib free_function_ignore_bug.lib free_functions.lib free_operators.lib global_variables.lib index_operator.lib internal_classes.lib member_functions.lib member_variables.lib module_body.lib namespaces.lib noncopyable.lib operators.lib operators_bug.lib optional.lib optional_bug.lib pointer_as_arg.lib pointer_to_function_as_argument.lib private_assign.lib recursive.lib regression1.lib regression2.lib regression3.lib smart_pointers.lib special_operators.lib statics.lib temprorary_variable.lib unnamed_enums.lib user_text.lib abstract.obj call_policies.obj casting.obj class_order2.obj class_order3.obj class_order4.obj class_order.obj classes.obj enums.obj factory.obj finalizables.obj free_function_ignore_bug.obj free_functions.obj free_operators.obj global_variables.obj index_operator.obj internal_classes.obj member_functions.obj member_variables.obj module_body.obj namespaces.obj noncopyable.obj operators.obj operators_bug.obj optional.obj optional_bug.obj pointer_as_arg.obj pointer_to_function_as_argument.obj private_assign.obj recursive.obj regression1.obj regression2.obj regression3.obj smart_pointers.obj special_operators.obj statics.obj temprorary_variable.obj unnamed_enums.obj user_text.obj abstract.scons call_policies.scons casting.scons class_order2.scons class_order3.scons class_order4.scons class_order.scons classes.scons enums.scons factory.scons finalizables.scons free_function_ignore_bug.scons free_functions.scons free_operators.scons global_variables.scons index_operator.scons internal_classes.scons member_functions.scons member_variables.scons module_body.scons namespaces.scons noncopyable.scons operators.scons operators_bug.scons optional.scons optional_bug.scons pointer_as_arg.scons pointer_to_function_as_argument.scons private_assign.scons recursive.scons regression1.scons regression2.scons regression3.scons smart_pointers.scons special_operators.scons statics.scons temprorary_variable.scons unnamed_enums.scons user_text.scons abstract.dll call_policies.dll casting.dll class_order2.dll class_order3.dll class_order4.dll class_order.dll classes.dll enums.dll factory.dll finalizables.dll free_function_ignore_bug.dll free_functions.dll free_operators.dll global_variables.dll index_operator.dll .sconsign.dblite __array_1.pypp.hpp classes.cpp enums.cpp free_functions.cpp module_body.cpp namespaces.cpp unnamed_enums.cpp abstract.cpp call_policies.cpp casting.cpp class_order.cpp class_order2.cpp class_order3.cpp class_order4.cpp factory.cpp finalizables.cpp free_function_ignore_bug.cpp free_operators.cpp global_variables.cpp index_operator.cpp internal_classes.cpp member_functions.cpp member_variables.cpp noncopyable.cpp operators.cpp operators_bug.cpp optional.cpp optional_bug.cpp pointer_as_arg.cpp pointer_to_function_as_argument.cpp private_assign.cpp protected.cpp recursive.cpp regression1.cpp regression2.cpp regression3.cpp smart_pointers.cpp special_operators.cpp statics.cpp temprorary_variable.cpp user_text.cpp protected.dll protected.exp protected.lib protected.obj protected.scons indexing_suites.cpp indexing_suites.cpp~ indexing_suites.dll indexing_suites.exp indexing_suites.lib indexing_suites.obj indexing_suites.scons *.pyd *.exp *.lib *.obj *.scons + internal_classes.dll member_functions.dll member_variables.dll module_body.dll namespaces.dll noncopyable.dll operators.dll operators_bug.dll optional.dll optional_bug.dll pointer_as_arg.dll pointer_to_function_as_argument.dll private_assign.dll recursive.dll regression1.dll regression2.dll regression3.dll smart_pointers.dll special_operators.dll statics.dll temprorary_variable.dll unnamed_enums.dll user_text.dll abstract.cpp~ call_policies.cpp~ casting.cpp~ class_order2.cpp~ class_order3.cpp~ class_order4.cpp~ class_order.cpp~ classes.cpp~ enums.cpp~ factory.cpp~ finalizables.cpp~ free_functions.cpp~ free_operators.cpp~ global_variables.cpp~ index_operator.cpp~ internal_classes.cpp~ member_functions.cpp~ member_variables.cpp~ noncopyable.cpp~ operators_bug.cpp~ optional.cpp~ optional_bug.cpp~ pointer_as_arg.cpp~ pointer_to_function_as_argument.cpp~ private_assign.cpp~ recursive.cpp~ regression1.cpp~ regression2.cpp~ regression3.cpp~ smart_pointers.cpp~ special_operators.cpp~ statics.cpp~ temprorary_variable.cpp~ unnamed_enums.cpp~ user_text.cpp~ abstract.exp call_policies.exp casting.exp class_order2.exp class_order3.exp class_order4.exp class_order.exp classes.exp enums.exp factory.exp finalizables.exp free_function_ignore_bug.exp free_functions.exp free_operators.exp global_variables.exp index_operator.exp internal_classes.exp member_functions.exp member_variables.exp module_body.exp namespaces.exp noncopyable.exp operators.exp operators_bug.exp optional.exp optional_bug.exp pointer_as_arg.exp pointer_to_function_as_argument.exp private_assign.exp recursive.exp regression1.exp regression2.exp regression3.exp smart_pointers.exp special_operators.exp statics.exp temprorary_variable.exp unnamed_enums.exp user_text.exp abstract.lib call_policies.lib casting.lib class_order2.lib class_order3.lib class_order4.lib class_order.lib classes.lib enums.lib factory.lib finalizables.lib free_function_ignore_bug.lib free_functions.lib free_operators.lib global_variables.lib index_operator.lib internal_classes.lib member_functions.lib member_variables.lib module_body.lib namespaces.lib noncopyable.lib operators.lib operators_bug.lib optional.lib optional_bug.lib pointer_as_arg.lib pointer_to_function_as_argument.lib private_assign.lib recursive.lib regression1.lib regression2.lib regression3.lib smart_pointers.lib special_operators.lib statics.lib temprorary_variable.lib unnamed_enums.lib user_text.lib abstract.obj call_policies.obj casting.obj class_order2.obj class_order3.obj class_order4.obj class_order.obj classes.obj enums.obj factory.obj finalizables.obj free_function_ignore_bug.obj free_functions.obj free_operators.obj global_variables.obj index_operator.obj internal_classes.obj member_functions.obj member_variables.obj module_body.obj namespaces.obj noncopyable.obj operators.obj operators_bug.obj optional.obj optional_bug.obj pointer_as_arg.obj pointer_to_function_as_argument.obj private_assign.obj recursive.obj regression1.obj regression2.obj regression3.obj smart_pointers.obj special_operators.obj statics.obj temprorary_variable.obj unnamed_enums.obj user_text.obj abstract.scons call_policies.scons casting.scons class_order2.scons class_order3.scons class_order4.scons class_order.scons classes.scons enums.scons factory.scons finalizables.scons free_function_ignore_bug.scons free_functions.scons free_operators.scons global_variables.scons index_operator.scons internal_classes.scons member_functions.scons member_variables.scons module_body.scons namespaces.scons noncopyable.scons operators.scons operators_bug.scons optional.scons optional_bug.scons pointer_as_arg.scons pointer_to_function_as_argument.scons private_assign.scons recursive.scons regression1.scons regression2.scons regression3.scons smart_pointers.scons special_operators.scons statics.scons temprorary_variable.scons unnamed_enums.scons user_text.scons abstract.dll call_policies.dll casting.dll class_order2.dll class_order3.dll class_order4.dll class_order.dll classes.dll enums.dll factory.dll finalizables.dll free_function_ignore_bug.dll free_functions.dll free_operators.dll global_variables.dll index_operator.dll .sconsign.dblite __array_1.pypp.hpp classes.cpp enums.cpp free_functions.cpp module_body.cpp namespaces.cpp unnamed_enums.cpp abstract.cpp call_policies.cpp casting.cpp class_order.cpp class_order2.cpp class_order3.cpp class_order4.cpp factory.cpp finalizables.cpp free_function_ignore_bug.cpp free_operators.cpp global_variables.cpp index_operator.cpp internal_classes.cpp member_functions.cpp member_variables.cpp noncopyable.cpp operators.cpp operators_bug.cpp optional.cpp optional_bug.cpp pointer_as_arg.cpp pointer_to_function_as_argument.cpp private_assign.cpp protected.cpp recursive.cpp regression1.cpp regression2.cpp regression3.cpp smart_pointers.cpp special_operators.cpp statics.cpp temprorary_variable.cpp user_text.cpp protected.dll protected.exp protected.lib protected.obj protected.scons indexing_suites.cpp indexing_suites.cpp~ indexing_suites.dll indexing_suites.exp indexing_suites.lib indexing_suites.obj indexing_suites.scons *.pyd *.exp *.lib *.obj *.scons to_be_exposed already_exposed This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-01-18 07:15:29
|
Revision: 1586 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1586&view=rev Author: roman_yakovenko Date: 2009-01-18 07:15:23 +0000 (Sun, 18 Jan 2009) Log Message: ----------- adding ability to expose function with variable number of arguments Modified Paths: -------------- pygccxml_dev/pygccxml/declarations/type_visitor.py pyplusplus_dev/pyplusplus/code_creators/ctypes_formatter.py pyplusplus_dev/pyplusplus/code_creators/function_definition.py pyplusplus_dev/unittests/ctypes_pof_tester.py pyplusplus_dev/unittests/sconstruct Added Paths: ----------- pyplusplus_dev/unittests/data/ctypes/varargs/ pyplusplus_dev/unittests/data/ctypes/varargs/sconscript pyplusplus_dev/unittests/data/ctypes/varargs/varargs.cpp pyplusplus_dev/unittests/data/ctypes/varargs/varargs.h Modified: pygccxml_dev/pygccxml/declarations/type_visitor.py =================================================================== --- pygccxml_dev/pygccxml/declarations/type_visitor.py 2009-01-18 06:14:01 UTC (rev 1585) +++ pygccxml_dev/pygccxml/declarations/type_visitor.py 2009-01-18 07:15:23 UTC (rev 1586) @@ -10,7 +10,7 @@ class type_visitor_t(object): """ types visitor interface - + All functions within this class should be redefined in derived classes. """ def __init__(self): @@ -18,55 +18,55 @@ def visit_void( self ): raise NotImplementedError() - + def visit_char( self ): raise NotImplementedError() - + def visit_unsigned_char( self ): raise NotImplementedError() def visit_signed_char( self ): raise NotImplementedError() - + def visit_wchar( self ): raise NotImplementedError() - + def visit_short_int( self ): raise NotImplementedError() - + def visit_short_unsigned_int( self ): raise NotImplementedError() - + def visit_bool( self ): raise NotImplementedError() - + def visit_int( self ): raise NotImplementedError() - + def visit_unsigned_int( self ): raise NotImplementedError() - + def visit_long_int( self ): raise NotImplementedError() - + def visit_long_unsigned_int( self ): raise NotImplementedError() - + def visit_long_long_int( self ): raise NotImplementedError() - + def visit_long_long_unsigned_int( self ): raise NotImplementedError() - + def visit_float( self ): raise NotImplementedError() - + def visit_double( self ): raise NotImplementedError() - + def visit_long_double( self ): raise NotImplementedError() - + def visit_complex_long_double(self): raise NotImplementedError() @@ -75,58 +75,60 @@ def visit_complex_float(self): raise NotImplementedError() - + def visit_jbyte(self): raise NotImplementedError() - + def visit_jshort(self): raise NotImplementedError() - + def visit_jint(self): raise NotImplementedError() - + def visit_jlong(self): raise NotImplementedError() - + def visit_jfloat(self): raise NotImplementedError() - + def visit_jdouble(self): raise NotImplementedError() - + def visit_jchar(self): raise NotImplementedError() - + def visit_jboolean(self): raise NotImplementedError() - + def visit_volatile( self ): raise NotImplementedError() - + def visit_const( self ): raise NotImplementedError() - + def visit_pointer( self ): raise NotImplementedError() - + def visit_reference( self ): raise NotImplementedError() - + def visit_array( self ): raise NotImplementedError() - + def visit_free_function_type( self ): raise NotImplementedError() - + def visit_member_function_type( self ): raise NotImplementedError() - + def visit_member_variable_type( self ): raise NotImplementedError() - + def visit_declarated( self ): raise NotImplementedError() def visit_restrict( self ): raise NotImplementedError() - \ No newline at end of file + + def visit_ellipsis( self ): + raise NotImplementedError() Modified: pyplusplus_dev/pyplusplus/code_creators/ctypes_formatter.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/ctypes_formatter.py 2009-01-18 06:14:01 UTC (rev 1585) +++ pyplusplus_dev/pyplusplus/code_creators/ctypes_formatter.py 2009-01-18 07:15:23 UTC (rev 1586) @@ -144,6 +144,9 @@ base_visitor = type_converter_t( self.user_type.base, self.decl_formatter ) return declarations.apply_visitor( base_visitor, base_visitor.user_type ) + def visit_ellipsis( self ): + return '' + def as_ctype( type_, decl_formatter=algorithm.complete_py_name ): v = type_converter_t( type_, decl_formatter ) return declarations.apply_visitor( v, type_ ) Modified: pyplusplus_dev/pyplusplus/code_creators/function_definition.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/function_definition.py 2009-01-18 06:14:01 UTC (rev 1585) +++ pyplusplus_dev/pyplusplus/code_creators/function_definition.py 2009-01-18 07:15:23 UTC (rev 1586) @@ -61,6 +61,8 @@ args_str = ' ' + args[0] + ' ' else: args_str = ' ' + arg_separator.join( args ) + ' ' + if args_str.endswith( ' ' ): + args_str = args_str[:-1] if group_in_list: return '[%s]' % args_str else: Modified: pyplusplus_dev/unittests/ctypes_pof_tester.py =================================================================== --- pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-18 06:14:01 UTC (rev 1585) +++ pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-18 07:15:23 UTC (rev 1586) @@ -184,23 +184,35 @@ self.module_ref.j.value = 78 self.failUnless( self.module_ref.get_value_j() == 78 ) - + self.module_ref.data.i = 987 self.failUnless( self.module_ref.get_value_data() == 987 ) - + self.module_ref.data_ptr.contents.i = 34 self.failUnless( self.module_ref.get_value_data_p() == 34 ) + +class varargs_tester_t( ctypes_base_tester_t ): + def __init__( self, *args, **keywd ): + ctypes_base_tester_t.__init__( self, 'varargs', *args, **keywd ) + + def customize( self, mb ): + pass + + def test(self): + self.failUnless( 21 == self.module_ref.sum_ints( 3, 5,7,9) ) + def create_suite(): suite = unittest.TestSuite() - if 'win' in sys.platform: - suite.addTest( unittest.makeSuite(pof_tester_t)) - suite.addTest( unittest.makeSuite(issues_tester_t)) + #~ if 'win' in sys.platform: + #~ suite.addTest( unittest.makeSuite(pof_tester_t)) + #~ suite.addTest( unittest.makeSuite(issues_tester_t)) suite.addTest( unittest.makeSuite(enums_tester_t)) suite.addTest( unittest.makeSuite(opaque_tester_t)) suite.addTest( unittest.makeSuite(include_algorithm_tester_t)) suite.addTest( unittest.makeSuite(anonymous_tester_t)) suite.addTest( unittest.makeSuite(variables_tester_t)) + suite.addTest( unittest.makeSuite(varargs_tester_t)) return suite def run_suite(): Added: pyplusplus_dev/unittests/data/ctypes/varargs/sconscript =================================================================== --- pyplusplus_dev/unittests/data/ctypes/varargs/sconscript (rev 0) +++ pyplusplus_dev/unittests/data/ctypes/varargs/sconscript 2009-01-18 07:15:23 UTC (rev 1586) @@ -0,0 +1,7 @@ +Import('*') + +target_name = 'varargs' +shlib = env.SharedLibrary( target=target_name + , source=[ target_name + '.cpp' ] + , CPPPATH=['#data'] ) +env.Alias( target_name, shlib ) Added: pyplusplus_dev/unittests/data/ctypes/varargs/varargs.cpp =================================================================== --- pyplusplus_dev/unittests/data/ctypes/varargs/varargs.cpp (rev 0) +++ pyplusplus_dev/unittests/data/ctypes/varargs/varargs.cpp 2009-01-18 07:15:23 UTC (rev 1586) @@ -0,0 +1,15 @@ +#include "varargs.h" +#include <stdio.h> +#include <stdarg.h> + +EXPORT_SYMBOL unsigned long sum_ints( int count, ... ){ + va_list vl; + unsigned long result = 0; + va_start( vl, count ); + // Step through the list. + for( int i = 0; i < count; ++i ){ + result += va_arg( vl, int ); + } + va_end( vl ); + return result; +} Added: pyplusplus_dev/unittests/data/ctypes/varargs/varargs.h =================================================================== --- pyplusplus_dev/unittests/data/ctypes/varargs/varargs.h (rev 0) +++ pyplusplus_dev/unittests/data/ctypes/varargs/varargs.h 2009-01-18 07:15:23 UTC (rev 1586) @@ -0,0 +1,3 @@ +#include "libconfig.h" + +EXPORT_SYMBOL unsigned long sum_ints( int count, ... ); Modified: pyplusplus_dev/unittests/sconstruct =================================================================== --- pyplusplus_dev/unittests/sconstruct 2009-01-18 06:14:01 UTC (rev 1585) +++ pyplusplus_dev/unittests/sconstruct 2009-01-18 07:15:23 UTC (rev 1586) @@ -31,7 +31,8 @@ , 'opaque' , 'include_algorithm' , 'anonymous' - , 'variables' ] + , 'variables' + , 'varargs'] for s in scripts: SConscript( 'data/ctypes/%s/sconscript' % s This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-01-20 07:40:36
|
Revision: 1600 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1600&view=rev Author: roman_yakovenko Date: 2009-01-20 07:40:31 +0000 (Tue, 20 Jan 2009) Log Message: ----------- adding new unit test that checks code generation for references Modified Paths: -------------- pyplusplus_dev/unittests/test_all.py Added Paths: ----------- pyplusplus_dev/unittests/data/refee_refer_to_be_exported.hpp pyplusplus_dev/unittests/refee_refer_tester.py Added: pyplusplus_dev/unittests/data/refee_refer_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/refee_refer_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/refee_refer_to_be_exported.hpp 2009-01-20 07:40:31 UTC (rev 1600) @@ -0,0 +1,24 @@ +// Copyright 2004-2008 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) + +#ifndef __refee_refer_to_be_exported_hpp__ +#define __refee_refer_to_be_exported_hpp__ + +#include <memory> + +struct refee_t{ + int i; +}; + +struct refer_t{ + refee_t& refee; +}; + +inline std::auto_ptr<refer_t> make_refer(refee_t* refee){ + refer_t tmp = { *refee }; + return std::auto_ptr<refer_t>(new refer_t(tmp)); +} + +#endif//__refee_refer_to_be_exported_hpp__ Added: pyplusplus_dev/unittests/refee_refer_tester.py =================================================================== --- pyplusplus_dev/unittests/refee_refer_tester.py (rev 0) +++ pyplusplus_dev/unittests/refee_refer_tester.py 2009-01-20 07:40:31 UTC (rev 1600) @@ -0,0 +1,37 @@ +# Copyright 2004-2008 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 os +import sys +import unittest +import fundamental_tester_base +from pygccxml import declarations + +class tester_t(fundamental_tester_base.fundamental_tester_base_t): + EXTENSION_NAME = 'refee_refer' + + def __init__( self, *args ): + fundamental_tester_base.fundamental_tester_base_t.__init__( + self + , tester_t.EXTENSION_NAME + , *args ) + + def run_tests(self, module): + refee = module.refee_t(); + refee.i = 19888 + + refer = module.make_refer( refee ) + self.failUnless( refer.get_refee().i == 19888 ) + +def create_suite(): + suite = unittest.TestSuite() + suite.addTest( unittest.makeSuite(tester_t)) + return suite + +def run_suite(): + unittest.TextTestRunner(verbosity=2).run( create_suite() ) + +if __name__ == "__main__": + run_suite() Modified: pyplusplus_dev/unittests/test_all.py =================================================================== --- pyplusplus_dev/unittests/test_all.py 2009-01-20 06:16:27 UTC (rev 1599) +++ pyplusplus_dev/unittests/test_all.py 2009-01-20 07:40:31 UTC (rev 1600) @@ -112,6 +112,7 @@ import make_constructor_tester import return_auto_ptr_tester import ctypes_pof_tester +import refee_refer_tester #import ogre_generate_tester testers = [ @@ -211,6 +212,7 @@ , return_auto_ptr_tester , protected_bug_tester , ctypes_pof_tester + , refee_refer_tester # , ogre_generate_tester too much time ] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-01-20 07:53:05
|
Revision: 1601 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1601&view=rev Author: roman_yakovenko Date: 2009-01-20 07:53:01 +0000 (Tue, 20 Jan 2009) Log Message: ----------- removing temp directory Modified Paths: -------------- pyplusplus_dev/unittests/autoconfig.py Removed Paths: ------------- pyplusplus_dev/unittests/temp/ Modified: pyplusplus_dev/unittests/autoconfig.py =================================================================== --- pyplusplus_dev/unittests/autoconfig.py 2009-01-20 07:40:31 UTC (rev 1600) +++ pyplusplus_dev/unittests/autoconfig.py 2009-01-20 07:53:01 UTC (rev 1601) @@ -16,6 +16,9 @@ build_directory = os.path.join( this_module_dir_path, 'temp' ) build_dir = build_directory +if not os.path.exists( build_dir ): + os.mkdir( build_dir ) + sys.path.append( os.path.dirname( this_module_dir_path ) ) from environment import scons, boost, python, gccxml, indexing_suite This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-01-20 07:55:21
|
Revision: 1602 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1602&view=rev Author: roman_yakovenko Date: 2009-01-20 07:55:16 +0000 (Tue, 20 Jan 2009) Log Message: ----------- rename ctypes_pof_tester.py to ctypes_tester.py Modified Paths: -------------- pyplusplus_dev/unittests/test_all.py Added Paths: ----------- pyplusplus_dev/unittests/ctypes_tester.py Removed Paths: ------------- pyplusplus_dev/unittests/ctypes_pof_tester.py Deleted: pyplusplus_dev/unittests/ctypes_pof_tester.py =================================================================== --- pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-20 07:53:01 UTC (rev 1601) +++ pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-20 07:55:16 UTC (rev 1602) @@ -1,222 +0,0 @@ -# Copyright 2004-2008 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 os -import sys -import ctypes -import unittest -import autoconfig -from pyplusplus.module_builder import ctypes_module_builder_t - -class ctypes_base_tester_t(unittest.TestCase): - - _module_ref_ = None - def __init__( self, base_name, *args, **keywd ): - unittest.TestCase.__init__( self, *args, **keywd ) - self.__base_name = base_name - - @property - def base_name( self ): - return self.__base_name - - @property - def project_dir( self ): - return os.path.join( autoconfig.data_directory, 'ctypes', self.base_name ) - - @property - def header( self ): - return os.path.join( self.project_dir, self.base_name + '.h' ) - - @property - def symbols_file( self ): - ext = '.so' - prefix = 'lib' - if 'win32' in sys.platform: - prefix = '' - ext = '.map' - return os.path.join( self.project_dir, 'binaries', prefix + self.base_name + ext ) - - @property - def library_file( self ): - if 'win32' in sys.platform: - return os.path.join( self.project_dir, 'binaries', self.base_name + '.dll' ) - else: - return self.symbols_file - - def customize(self, mb ): - pass - - def __build_scons_cmd( self ): - cmd = autoconfig.scons.cmd_build + ' ' + self.base_name - if autoconfig.cxx_parsers_cfg.gccxml.compiler == 'msvc71': - cmd = cmd + ' use_msvc71=True' - return cmd - - def setUp( self ): - if self.base_name in sys.modules: - return sys.modules[ self.base_name ] - - autoconfig.scons_config.compile( self.__build_scons_cmd(), cwd=autoconfig.this_module_dir_path ) - mb = ctypes_module_builder_t( [self.header], self.symbols_file, autoconfig.cxx_parsers_cfg.gccxml ) - self.customize( mb ) - mb.build_code_creator( self.library_file ) - mb.write_module( os.path.join( self.project_dir, 'binaries', self.base_name + '.py' ) ) - sys.path.insert( 0, os.path.join( self.project_dir, 'binaries' ) ) - __import__( self.base_name ) - - @property - def module_ref(self): - return sys.modules[ self.base_name ] - - -class pof_tester_t( ctypes_base_tester_t ): - def __init__( self, *args, **keywd ): - ctypes_base_tester_t.__init__( self, 'pof', *args, **keywd ) - - def test_constructors(self): - n0 = self.module_ref.pof.number_t() - self.failUnless( 0 == n0.get_value() ) - n1 = self.module_ref.pof.number_t( ctypes.c_long(32) ) - self.failUnless( 32 == n1.get_value() ) - n2 = self.module_ref.pof.number_t( ctypes.pointer(n1) ) - self.failUnless( 32 == n2.get_value() ) - - def test_free_functions(self): - #the following code fails - difference in the calling conventions - #TODO: the following test failes, because of the wrong calling convention used - self.failUnless( self.module_ref.identity_cpp( int(111) ) == 111 ) - - def test_get_set_values( self ): - n0 = self.module_ref.pof.number_t() - n0.set_value( 1977 ) - self.failUnless( 1977 == n0.get_value() ) - - #the following functionality is still missing - #~ def test_operator_assign( self ): - #~ obj1 = number_t(1) - #~ obj2 = number_t(2) - #~ x = obj1.operator_assign( obj2 ) - #~ #there are special cases, where ctypes could introduce "optimized" behaviour and not create new python object - #~ self.failUnless( x is obj1 ) - #~ self.failUnless( obj1.m_value == obj2.m_value ) - - #~ def test_clone( self ): - #~ obj1 = number_t(1) - #~ obj2 = obj1.clone() - #~ self.fail( obj1.get_value() == obj2.get_value() ) - - -class issues_tester_t( ctypes_base_tester_t ): - def __init__( self, *args, **keywd ): - ctypes_base_tester_t.__init__( self, 'issues', *args, **keywd ) - - def test_return_by_value(self): - x = self.module_ref.return_by_value_t() - result = x.add( 32, 2 ).result - self.failUnless( 34 == result, "Expected result 34, got %d" % result) - - def test_free_fun_add( self ): - self.failUnless( 1977 == self.module_ref.add( 77, 1900 ) ) - - -class enums_tester_t( ctypes_base_tester_t ): - def __init__( self, *args, **keywd ): - ctypes_base_tester_t.__init__( self, 'enums', *args, **keywd ) - - def customize( self, mb ): - mb.enums().include() - - def test(self): - self.failUnless( self.module_ref.Chisla.nol == 0 ) - self.failUnless( self.module_ref.Chisla.odin == 1 ) - self.failUnless( self.module_ref.Chisla.dva == 2 ) - self.failUnless( self.module_ref.Chisla.tri == 3 ) - -class opaque_tester_t( ctypes_base_tester_t ): - def __init__( self, *args, **keywd ): - ctypes_base_tester_t.__init__( self, 'opaque', *args, **keywd ) - - def customize( self, mb ): - mb.class_( 'user_data_t' ).opaque = True - - def test(self): - self.failUnlessRaises( RuntimeError, self.module_ref.user_data_t ) - udt = self.module_ref.create() - self.failUnless( 1977 == self.module_ref.read_user_data(udt) ) - self.module_ref.destroy( udt ) - -class include_algorithm_tester_t( ctypes_base_tester_t ): - def __init__( self, *args, **keywd ): - ctypes_base_tester_t.__init__( self, 'include_algorithm', *args, **keywd ) - - def customize( self, mb ): - self.failUnless( mb.global_ns.class_( 'io_marker_t' ).ignore == False ) - - def test(self): - self.failUnless( self.module_ref.io_marker_t ) - -class anonymous_tester_t( ctypes_base_tester_t ): - def __init__( self, *args, **keywd ): - ctypes_base_tester_t.__init__( self, 'anonymous', *args, **keywd ) - - def customize( self, mb ): - mb.class_( 'rgbai' ).include() - - def test(self): - c = self.module_ref.color() - c.r - c.val - -class variables_tester_t( ctypes_base_tester_t ): - def __init__( self, *args, **keywd ): - ctypes_base_tester_t.__init__( self, 'variables', *args, **keywd ) - - def customize( self, mb ): - pass - - def test(self): - self.module_ref.init() - self.failUnless( self.module_ref.j.value == 87 ) - self.failUnless( self.module_ref.data.i == 1900 ) - self.failUnless( self.module_ref.data_ptr.contents.i == 11 ) - - self.module_ref.j.value = 78 - self.failUnless( self.module_ref.get_value_j() == 78 ) - - self.module_ref.data.i = 987 - self.failUnless( self.module_ref.get_value_data() == 987 ) - - self.module_ref.data_ptr.contents.i = 34 - self.failUnless( self.module_ref.get_value_data_p() == 34 ) - - -class varargs_tester_t( ctypes_base_tester_t ): - def __init__( self, *args, **keywd ): - ctypes_base_tester_t.__init__( self, 'varargs', *args, **keywd ) - - def customize( self, mb ): - pass - - def test(self): - self.failUnless( 21 == self.module_ref.sum_ints( 3, 5,7,9) ) - -def create_suite(): - suite = unittest.TestSuite() - #~ if 'win' in sys.platform: - #~ suite.addTest( unittest.makeSuite(pof_tester_t)) - #~ suite.addTest( unittest.makeSuite(issues_tester_t)) - suite.addTest( unittest.makeSuite(enums_tester_t)) - suite.addTest( unittest.makeSuite(opaque_tester_t)) - suite.addTest( unittest.makeSuite(include_algorithm_tester_t)) - suite.addTest( unittest.makeSuite(anonymous_tester_t)) - suite.addTest( unittest.makeSuite(variables_tester_t)) - suite.addTest( unittest.makeSuite(varargs_tester_t)) - return suite - -def run_suite(): - unittest.TextTestRunner(verbosity=2).run( create_suite() ) - -if __name__ == "__main__": - run_suite() Copied: pyplusplus_dev/unittests/ctypes_tester.py (from rev 1595, pyplusplus_dev/unittests/ctypes_pof_tester.py) =================================================================== --- pyplusplus_dev/unittests/ctypes_tester.py (rev 0) +++ pyplusplus_dev/unittests/ctypes_tester.py 2009-01-20 07:55:16 UTC (rev 1602) @@ -0,0 +1,222 @@ +# Copyright 2004-2008 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 os +import sys +import ctypes +import unittest +import autoconfig +from pyplusplus.module_builder import ctypes_module_builder_t + +class ctypes_base_tester_t(unittest.TestCase): + + _module_ref_ = None + def __init__( self, base_name, *args, **keywd ): + unittest.TestCase.__init__( self, *args, **keywd ) + self.__base_name = base_name + + @property + def base_name( self ): + return self.__base_name + + @property + def project_dir( self ): + return os.path.join( autoconfig.data_directory, 'ctypes', self.base_name ) + + @property + def header( self ): + return os.path.join( self.project_dir, self.base_name + '.h' ) + + @property + def symbols_file( self ): + ext = '.so' + prefix = 'lib' + if 'win32' in sys.platform: + prefix = '' + ext = '.map' + return os.path.join( self.project_dir, 'binaries', prefix + self.base_name + ext ) + + @property + def library_file( self ): + if 'win32' in sys.platform: + return os.path.join( self.project_dir, 'binaries', self.base_name + '.dll' ) + else: + return self.symbols_file + + def customize(self, mb ): + pass + + def __build_scons_cmd( self ): + cmd = autoconfig.scons.cmd_build + ' ' + self.base_name + if autoconfig.cxx_parsers_cfg.gccxml.compiler == 'msvc71': + cmd = cmd + ' use_msvc71=True' + return cmd + + def setUp( self ): + if self.base_name in sys.modules: + return sys.modules[ self.base_name ] + + autoconfig.scons_config.compile( self.__build_scons_cmd(), cwd=autoconfig.this_module_dir_path ) + mb = ctypes_module_builder_t( [self.header], self.symbols_file, autoconfig.cxx_parsers_cfg.gccxml ) + self.customize( mb ) + mb.build_code_creator( self.library_file ) + mb.write_module( os.path.join( self.project_dir, 'binaries', self.base_name + '.py' ) ) + sys.path.insert( 0, os.path.join( self.project_dir, 'binaries' ) ) + __import__( self.base_name ) + + @property + def module_ref(self): + return sys.modules[ self.base_name ] + + +class pof_tester_t( ctypes_base_tester_t ): + def __init__( self, *args, **keywd ): + ctypes_base_tester_t.__init__( self, 'pof', *args, **keywd ) + + def test_constructors(self): + n0 = self.module_ref.pof.number_t() + self.failUnless( 0 == n0.get_value() ) + n1 = self.module_ref.pof.number_t( ctypes.c_long(32) ) + self.failUnless( 32 == n1.get_value() ) + n2 = self.module_ref.pof.number_t( ctypes.pointer(n1) ) + self.failUnless( 32 == n2.get_value() ) + + def test_free_functions(self): + #the following code fails - difference in the calling conventions + #TODO: the following test failes, because of the wrong calling convention used + self.failUnless( self.module_ref.identity_cpp( int(111) ) == 111 ) + + def test_get_set_values( self ): + n0 = self.module_ref.pof.number_t() + n0.set_value( 1977 ) + self.failUnless( 1977 == n0.get_value() ) + + #the following functionality is still missing + #~ def test_operator_assign( self ): + #~ obj1 = number_t(1) + #~ obj2 = number_t(2) + #~ x = obj1.operator_assign( obj2 ) + #~ #there are special cases, where ctypes could introduce "optimized" behaviour and not create new python object + #~ self.failUnless( x is obj1 ) + #~ self.failUnless( obj1.m_value == obj2.m_value ) + + #~ def test_clone( self ): + #~ obj1 = number_t(1) + #~ obj2 = obj1.clone() + #~ self.fail( obj1.get_value() == obj2.get_value() ) + + +class issues_tester_t( ctypes_base_tester_t ): + def __init__( self, *args, **keywd ): + ctypes_base_tester_t.__init__( self, 'issues', *args, **keywd ) + + def test_return_by_value(self): + x = self.module_ref.return_by_value_t() + result = x.add( 32, 2 ).result + self.failUnless( 34 == result, "Expected result 34, got %d" % result) + + def test_free_fun_add( self ): + self.failUnless( 1977 == self.module_ref.add( 77, 1900 ) ) + + +class enums_tester_t( ctypes_base_tester_t ): + def __init__( self, *args, **keywd ): + ctypes_base_tester_t.__init__( self, 'enums', *args, **keywd ) + + def customize( self, mb ): + mb.enums().include() + + def test(self): + self.failUnless( self.module_ref.Chisla.nol == 0 ) + self.failUnless( self.module_ref.Chisla.odin == 1 ) + self.failUnless( self.module_ref.Chisla.dva == 2 ) + self.failUnless( self.module_ref.Chisla.tri == 3 ) + +class opaque_tester_t( ctypes_base_tester_t ): + def __init__( self, *args, **keywd ): + ctypes_base_tester_t.__init__( self, 'opaque', *args, **keywd ) + + def customize( self, mb ): + mb.class_( 'user_data_t' ).opaque = True + + def test(self): + self.failUnlessRaises( RuntimeError, self.module_ref.user_data_t ) + udt = self.module_ref.create() + self.failUnless( 1977 == self.module_ref.read_user_data(udt) ) + self.module_ref.destroy( udt ) + +class include_algorithm_tester_t( ctypes_base_tester_t ): + def __init__( self, *args, **keywd ): + ctypes_base_tester_t.__init__( self, 'include_algorithm', *args, **keywd ) + + def customize( self, mb ): + self.failUnless( mb.global_ns.class_( 'io_marker_t' ).ignore == False ) + + def test(self): + self.failUnless( self.module_ref.io_marker_t ) + +class anonymous_tester_t( ctypes_base_tester_t ): + def __init__( self, *args, **keywd ): + ctypes_base_tester_t.__init__( self, 'anonymous', *args, **keywd ) + + def customize( self, mb ): + mb.class_( 'rgbai' ).include() + + def test(self): + c = self.module_ref.color() + c.r + c.val + +class variables_tester_t( ctypes_base_tester_t ): + def __init__( self, *args, **keywd ): + ctypes_base_tester_t.__init__( self, 'variables', *args, **keywd ) + + def customize( self, mb ): + pass + + def test(self): + self.module_ref.init() + self.failUnless( self.module_ref.j.value == 87 ) + self.failUnless( self.module_ref.data.i == 1900 ) + self.failUnless( self.module_ref.data_ptr.contents.i == 11 ) + + self.module_ref.j.value = 78 + self.failUnless( self.module_ref.get_value_j() == 78 ) + + self.module_ref.data.i = 987 + self.failUnless( self.module_ref.get_value_data() == 987 ) + + self.module_ref.data_ptr.contents.i = 34 + self.failUnless( self.module_ref.get_value_data_p() == 34 ) + + +class varargs_tester_t( ctypes_base_tester_t ): + def __init__( self, *args, **keywd ): + ctypes_base_tester_t.__init__( self, 'varargs', *args, **keywd ) + + def customize( self, mb ): + pass + + def test(self): + self.failUnless( 21 == self.module_ref.sum_ints( 3, 5,7,9) ) + +def create_suite(): + suite = unittest.TestSuite() + #~ if 'win' in sys.platform: + #~ suite.addTest( unittest.makeSuite(pof_tester_t)) + #~ suite.addTest( unittest.makeSuite(issues_tester_t)) + suite.addTest( unittest.makeSuite(enums_tester_t)) + suite.addTest( unittest.makeSuite(opaque_tester_t)) + suite.addTest( unittest.makeSuite(include_algorithm_tester_t)) + suite.addTest( unittest.makeSuite(anonymous_tester_t)) + suite.addTest( unittest.makeSuite(variables_tester_t)) + suite.addTest( unittest.makeSuite(varargs_tester_t)) + return suite + +def run_suite(): + unittest.TextTestRunner(verbosity=2).run( create_suite() ) + +if __name__ == "__main__": + run_suite() Modified: pyplusplus_dev/unittests/test_all.py =================================================================== --- pyplusplus_dev/unittests/test_all.py 2009-01-20 07:53:01 UTC (rev 1601) +++ pyplusplus_dev/unittests/test_all.py 2009-01-20 07:55:16 UTC (rev 1602) @@ -111,7 +111,7 @@ import cp_return_addressof_tester import make_constructor_tester import return_auto_ptr_tester -import ctypes_pof_tester +import ctypes_tester import refee_refer_tester #import ogre_generate_tester @@ -211,7 +211,7 @@ , make_constructor_tester , return_auto_ptr_tester , protected_bug_tester - , ctypes_pof_tester + , ctypes_tester , refee_refer_tester # , ogre_generate_tester too much time ] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-01-25 06:34:45
|
Revision: 1608 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1608&view=rev Author: roman_yakovenko Date: 2009-01-25 06:34:33 +0000 (Sun, 25 Jan 2009) Log Message: ----------- adding templates test case Modified Paths: -------------- pyplusplus_dev/unittests/ctypes_tester.py pyplusplus_dev/unittests/sconstruct Added Paths: ----------- pyplusplus_dev/unittests/data/ctypes/templates/ pyplusplus_dev/unittests/data/ctypes/templates/sconscript pyplusplus_dev/unittests/data/ctypes/templates/templates.cpp pyplusplus_dev/unittests/data/ctypes/templates/templates.h Modified: pyplusplus_dev/unittests/ctypes_tester.py =================================================================== --- pyplusplus_dev/unittests/ctypes_tester.py 2009-01-21 20:07:41 UTC (rev 1607) +++ pyplusplus_dev/unittests/ctypes_tester.py 2009-01-25 06:34:33 UTC (rev 1608) @@ -61,7 +61,7 @@ binaries_dir = os.path.dirname( self.symbols_file ) if os.path.exists( binaries_dir ): - print '\nrmdir ', binaries_dir + print '\nrmdir ', binaries_dir shutil.rmtree( binaries_dir ) autoconfig.scons_config.compile( self.__build_scons_cmd(), cwd=autoconfig.this_module_dir_path ) @@ -208,6 +208,21 @@ def test(self): self.failUnless( 21 == self.module_ref.sum_ints( 3, 5,7,9) ) +class templates_tester_t( ctypes_base_tester_t ): + def __init__( self, *args, **keywd ): + ctypes_base_tester_t.__init__( self, 'templates', *args, **keywd ) + + def customize( self, mb ): + mb.class_( 'value_t<int>' ).alias = 'int_value_t' + + def test(self): + v = self.module_ref.int_value_t() + self.module_ref.init( v ) + self.failUnless( v.value == 2009 ) + self.failUnless( v.get_value() != 2009, "thiscall is not working yet" ) + + + def create_suite(): suite = unittest.TestSuite() #~ if 'win' in sys.platform: @@ -219,6 +234,7 @@ suite.addTest( unittest.makeSuite(anonymous_tester_t)) suite.addTest( unittest.makeSuite(variables_tester_t)) suite.addTest( unittest.makeSuite(varargs_tester_t)) + suite.addTest( unittest.makeSuite(templates_tester_t)) return suite def run_suite(): Added: pyplusplus_dev/unittests/data/ctypes/templates/sconscript =================================================================== --- pyplusplus_dev/unittests/data/ctypes/templates/sconscript (rev 0) +++ pyplusplus_dev/unittests/data/ctypes/templates/sconscript 2009-01-25 06:34:33 UTC (rev 1608) @@ -0,0 +1,7 @@ +Import('*') + +target_name = 'templates' +shlib = env.SharedLibrary( target=target_name + , source=[ target_name + '.cpp' ] + , CPPPATH=['#data'] ) +env.Alias( target_name, shlib ) Added: pyplusplus_dev/unittests/data/ctypes/templates/templates.cpp =================================================================== --- pyplusplus_dev/unittests/data/ctypes/templates/templates.cpp (rev 0) +++ pyplusplus_dev/unittests/data/ctypes/templates/templates.cpp 2009-01-25 06:34:33 UTC (rev 1608) @@ -0,0 +1,5 @@ +#include "templates.h" + +void EXPORT_SYMBOL init( value_t<int>& x){ + x.value = 2009; +} Added: pyplusplus_dev/unittests/data/ctypes/templates/templates.h =================================================================== --- pyplusplus_dev/unittests/data/ctypes/templates/templates.h (rev 0) +++ pyplusplus_dev/unittests/data/ctypes/templates/templates.h 2009-01-25 06:34:33 UTC (rev 1608) @@ -0,0 +1,11 @@ +#include "libconfig.h" + +template< class ValueType > +struct value_t{ + ValueType get_value(){ return value;} + ValueType value; +}; + +void EXPORT_SYMBOL init( value_t<int>& ); + +template class EXPORT_SYMBOL value_t<int>; Modified: pyplusplus_dev/unittests/sconstruct =================================================================== --- pyplusplus_dev/unittests/sconstruct 2009-01-21 20:07:41 UTC (rev 1607) +++ pyplusplus_dev/unittests/sconstruct 2009-01-25 06:34:33 UTC (rev 1608) @@ -32,7 +32,8 @@ , 'include_algorithm' , 'anonymous' , 'variables' - , 'varargs'] + , 'varargs' + , 'templates' ] for s in scripts: SConscript( 'data/ctypes/%s/sconscript' % s This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-01-25 09:15:24
|
Revision: 1609 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1609&view=rev Author: roman_yakovenko Date: 2009-01-25 09:15:15 +0000 (Sun, 25 Jan 2009) Log Message: ----------- adding circular_references test case Modified Paths: -------------- pyplusplus_dev/unittests/ctypes_tester.py pyplusplus_dev/unittests/sconstruct Added Paths: ----------- pyplusplus_dev/unittests/data/ctypes/circular_references/ pyplusplus_dev/unittests/data/ctypes/circular_references/circular_references.cpp pyplusplus_dev/unittests/data/ctypes/circular_references/circular_references.h pyplusplus_dev/unittests/data/ctypes/circular_references/sconscript Modified: pyplusplus_dev/unittests/ctypes_tester.py =================================================================== --- pyplusplus_dev/unittests/ctypes_tester.py 2009-01-25 06:34:33 UTC (rev 1608) +++ pyplusplus_dev/unittests/ctypes_tester.py 2009-01-25 09:15:15 UTC (rev 1609) @@ -216,13 +216,23 @@ mb.class_( 'value_t<int>' ).alias = 'int_value_t' def test(self): - v = self.module_ref.int_value_t() - self.module_ref.init( v ) - self.failUnless( v.value == 2009 ) - self.failUnless( v.get_value() != 2009, "thiscall is not working yet" ) + pass +class circular_references_tester_t( ctypes_base_tester_t ): + def __init__( self, *args, **keywd ): + ctypes_base_tester_t.__init__( self, 'circular_references', *args, **keywd ) + def customize( self, mb ): + pass + def test(self): + bar = self.module_ref.bar_t() + foo = self.module_ref.foo_t() + + #TODO: add typedefs + #TODO: sort structs and classes by dependencies + pass #just test that module could be loaded + def create_suite(): suite = unittest.TestSuite() #~ if 'win' in sys.platform: @@ -235,6 +245,7 @@ suite.addTest( unittest.makeSuite(variables_tester_t)) suite.addTest( unittest.makeSuite(varargs_tester_t)) suite.addTest( unittest.makeSuite(templates_tester_t)) + suite.addTest( unittest.makeSuite(circular_references_tester_t)) return suite def run_suite(): Added: pyplusplus_dev/unittests/data/ctypes/circular_references/circular_references.cpp =================================================================== --- pyplusplus_dev/unittests/data/ctypes/circular_references/circular_references.cpp (rev 0) +++ pyplusplus_dev/unittests/data/ctypes/circular_references/circular_references.cpp 2009-01-25 09:15:15 UTC (rev 1609) @@ -0,0 +1 @@ +#include "circular_references.h" Added: pyplusplus_dev/unittests/data/ctypes/circular_references/circular_references.h =================================================================== --- pyplusplus_dev/unittests/data/ctypes/circular_references/circular_references.h (rev 0) +++ pyplusplus_dev/unittests/data/ctypes/circular_references/circular_references.h 2009-01-25 09:15:15 UTC (rev 1609) @@ -0,0 +1,17 @@ +#include "libconfig.h" + +struct foo_t; +struct bar_t; + +typedef int (*foo_func_type)( struct foo_t* ); +typedef int (*bar_func_type)( struct bar_t* ); + +struct EXPORT_SYMBOL foo_t{ + foo_func_type* f_foo; + bar_func_type* f_bar; +}; + +struct EXPORT_SYMBOL bar_t{ + int a, b; + struct foo_t foo; +}; Added: pyplusplus_dev/unittests/data/ctypes/circular_references/sconscript =================================================================== --- pyplusplus_dev/unittests/data/ctypes/circular_references/sconscript (rev 0) +++ pyplusplus_dev/unittests/data/ctypes/circular_references/sconscript 2009-01-25 09:15:15 UTC (rev 1609) @@ -0,0 +1,7 @@ +Import('*') + +target_name = 'circular_references' +shlib = env.SharedLibrary( target=target_name + , source=[ target_name + '.cpp' ] + , CPPPATH=['#data'] ) +env.Alias( target_name, shlib ) Modified: pyplusplus_dev/unittests/sconstruct =================================================================== --- pyplusplus_dev/unittests/sconstruct 2009-01-25 06:34:33 UTC (rev 1608) +++ pyplusplus_dev/unittests/sconstruct 2009-01-25 09:15:15 UTC (rev 1609) @@ -33,7 +33,8 @@ , 'anonymous' , 'variables' , 'varargs' - , 'templates' ] + , 'templates' + , 'circular_references' ] for s in scripts: SConscript( 'data/ctypes/%s/sconscript' % s This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-02-09 19:10:01
|
Revision: 1668 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1668&view=rev Author: roman_yakovenko Date: 2009-02-09 19:09:47 +0000 (Mon, 09 Feb 2009) Log Message: ----------- add new test case Modified Paths: -------------- pyplusplus_dev/unittests/data/protected_to_be_exported.hpp pyplusplus_dev/unittests/protected_tester.py Modified: pyplusplus_dev/unittests/data/protected_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/protected_to_be_exported.hpp 2009-02-09 14:09:58 UTC (rev 1667) +++ pyplusplus_dev/unittests/data/protected_to_be_exported.hpp 2009-02-09 19:09:47 UTC (rev 1668) @@ -7,28 +7,44 @@ #define __protected_to_be_exported_hpp__ namespace protected_{ - -struct protected_t{ -protected: - int get_1(){ return 1; } -}; - -struct protected_s_t{ -protected: - static int get_2(){ return 2; } -}; + +struct protected_t{ +protected: + int get_1(){ return 1; } +}; + +struct protected_s_t{ +protected: + static int get_2(){ return 2; } +}; - -struct protected_v_t{ -protected: - virtual int get_i(){ return 10; } -}; +struct protected_v_t{ +protected: + virtual int get_i(){ return 10; } +}; + struct protected_v_derived_t : public protected_v_t{ }; } -#endif//__protected_to_be_exported_hpp__ +class Thing +{ +protected: + virtual ~Thing() {} +}; +class Callback +{ +public: + Callback() { } + virtual void execute(const Thing& t) { } +protected: + virtual ~Callback() {} +}; + +#endif//__protected_to_be_exported_hpp__ + + Modified: pyplusplus_dev/unittests/protected_tester.py =================================================================== --- pyplusplus_dev/unittests/protected_tester.py 2009-02-09 14:09:58 UTC (rev 1667) +++ pyplusplus_dev/unittests/protected_tester.py 2009-02-09 19:09:47 UTC (rev 1668) @@ -8,6 +8,7 @@ import unittest import fundamental_tester_base from pygccxml import declarations +from pyplusplus import function_transformers as ft class tester_t(fundamental_tester_base.fundamental_tester_base_t): EXTENSION_NAME = 'protected' @@ -19,8 +20,16 @@ , *args ) def customize(self, mb ): + def tt( type_ ): + type_ = declarations.remove_reference( type_ ) + type_ = declarations.remove_const( type_ ) + return declarations.reference_t( type_ ) mb.classes().always_expose_using_scope = True mb.calldefs().create_with_signature = True + mb.class_( 'Callback' ).add_wrapper_code( '//hhhh' ) + execute = mb.class_( 'Callback' ).mem_fun( 'execute' ) + execute.add_transformation( ft.modify_type(0, tt ) ) + #execute.exclude() def create_protected_s_derived_no_override( self, module ): class derived(module.protected_v_t): @@ -71,4 +80,4 @@ unittest.TextTestRunner(verbosity=2).run( create_suite() ) if __name__ == "__main__": - run_suite() \ No newline at end of file + run_suite() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-02-17 06:00:28
|
Revision: 1686 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1686&view=rev Author: roman_yakovenko Date: 2009-02-17 06:00:16 +0000 (Tue, 17 Feb 2009) Log Message: ----------- adding new test case Modified Paths: -------------- pyplusplus_dev/unittests/test_all.py Added Paths: ----------- pyplusplus_dev/unittests/data/indexing_suites_v2_bug_a_to_be_exported.hpp pyplusplus_dev/unittests/data/indexing_suites_v2_bug_b_to_be_exported.hpp pyplusplus_dev/unittests/indexing_suites_v2_bug_tester.py Added: pyplusplus_dev/unittests/data/indexing_suites_v2_bug_a_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/indexing_suites_v2_bug_a_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/indexing_suites_v2_bug_a_to_be_exported.hpp 2009-02-17 06:00:16 UTC (rev 1686) @@ -0,0 +1,26 @@ +// Copyright 2004-2008 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) + +#ifndef __indexing_suites_v2_bug_to_be_exported_hpp__ +#define __indexing_suites_v2_bug_to_be_exported_hpp__ + +#include <vector> + +namespace indexing_suites2 { + +std::vector<double> create_vector(){ + std::vector<double> ret; + for(size_t i = 0; i < 10; i++) + ret.push_back(i); + return ret; +} + +} + +namespace pyplusplus{ namespace aliases{ + typedef std::vector< double > numbers_t; +}} + +#endif//__indexing_suites_v2_bug_to_be_exported_hpp__ Added: pyplusplus_dev/unittests/data/indexing_suites_v2_bug_b_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/indexing_suites_v2_bug_b_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/indexing_suites_v2_bug_b_to_be_exported.hpp 2009-02-17 06:00:16 UTC (rev 1686) @@ -0,0 +1,26 @@ +// Copyright 2004-2008 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) + +#ifndef __indexing_suites_v2_bug_to_be_exported_hpp__ +#define __indexing_suites_v2_bug_to_be_exported_hpp__ + +#include <vector> + +namespace indexing_suites2 { + +std::vector<double> create_vector(){ + std::vector<double> ret; + for(size_t i = 0; i < 10; i++) + ret.push_back(i); + return ret; +} + +} + +namespace pyplusplus{ namespace aliases{ + typedef std::vector< double > numbers_t; +}} + +#endif//__indexing_suites_v2_bug_to_be_exported_hpp__ Added: pyplusplus_dev/unittests/indexing_suites_v2_bug_tester.py =================================================================== --- pyplusplus_dev/unittests/indexing_suites_v2_bug_tester.py (rev 0) +++ pyplusplus_dev/unittests/indexing_suites_v2_bug_tester.py 2009-02-17 06:00:16 UTC (rev 1686) @@ -0,0 +1,44 @@ +# Copyright 2004-2008 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 os +import sys +import unittest +import autoconfig +import fundamental_tester_base +from pyplusplus import code_creators + +class tester_t(fundamental_tester_base.fundamental_tester_base_t): + def __init__( self, *args ): + fundamental_tester_base.fundamental_tester_base_t.__init__( self, self.EXTENSION_NAME, indexing_suite_version=2, *args ) + + def run_tests(self, module): + v = module.create_vector() + for i in v: + print i + +class tester_a_t(tester_t): + EXTENSION_NAME = 'indexing_suites_v2_bug_a' + def __init__( self, *args ): + tester_t.__init__( self, *args ) + + +class tester_b_t(tester_t): + EXTENSION_NAME = 'indexing_suites_v2_bug_b' + def __init__( self, *args ): + tester_t.__init__( self, *args ) + + +def create_suite(): + suite = unittest.TestSuite() + suite.addTest( unittest.makeSuite(tester_a_t)) + suite.addTest( unittest.makeSuite(tester_b_t)) + return suite + +def run_suite(): + unittest.TextTestRunner(verbosity=2).run( create_suite() ) + +if __name__ == "__main__": + run_suite() Modified: pyplusplus_dev/unittests/test_all.py =================================================================== --- pyplusplus_dev/unittests/test_all.py 2009-02-16 19:37:12 UTC (rev 1685) +++ pyplusplus_dev/unittests/test_all.py 2009-02-17 06:00:16 UTC (rev 1686) @@ -113,6 +113,7 @@ import return_auto_ptr_tester import ctypes_tester import refee_refer_tester +import indexing_suites_v2_bug_tester #import ogre_generate_tester testers = [ @@ -213,6 +214,7 @@ , protected_bug_tester , ctypes_tester , refee_refer_tester + , indexing_suites_v2_bug_tester # , ogre_generate_tester too much time ] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-02-17 19:30:55
|
Revision: 1688 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1688&view=rev Author: roman_yakovenko Date: 2009-02-17 19:30:51 +0000 (Tue, 17 Feb 2009) Log Message: ----------- adding new test cases Added Paths: ----------- pyplusplus_dev/unittests/data/indexing_suite_v1_to_be_exported.hpp pyplusplus_dev/unittests/data/virtual_inheritance_to_be_exported.hpp pyplusplus_dev/unittests/indexing_suite_v1_tester.py pyplusplus_dev/unittests/virtual_inheritance_tester.py Added: pyplusplus_dev/unittests/data/indexing_suite_v1_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/indexing_suite_v1_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/indexing_suite_v1_to_be_exported.hpp 2009-02-17 19:30:51 UTC (rev 1688) @@ -0,0 +1,23 @@ +// Copyright 2004-2008 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) + +#ifndef __indexing_suite_v1__to_be_exported_hpp__ +#define __indexing_suite_v1__to_be_exported_hpp__ + +#include <vector> +#include "boost/shared_ptr.hpp" + +typedef std::vector< boost::shared_ptr< unsigned short* > > ushort_sptr_ptr_t; + +inline ushort_sptr_ptr_t get_empty(){ + ushort_sptr_ptr_t x; + typedef unsigned short ushort; + ushort * y = new ushort(5); + ushort ** yy = new ushort*( y ); + x.push_back( boost::shared_ptr< unsigned short* >( yy ) ); + return x; +} + +#endif//__indexing_suite_v1__to_be_exported_hpp__ Added: pyplusplus_dev/unittests/data/virtual_inheritance_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/virtual_inheritance_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/virtual_inheritance_to_be_exported.hpp 2009-02-17 19:30:51 UTC (rev 1688) @@ -0,0 +1,17 @@ +// Copyright 2004-2008 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) + +#ifndef __virtual_inheritance_to_be_exported_hpp__ +#define __virtual_inheritance_to_be_exported_hpp__ + +struct base{ + virtual void do_smth() {} +}; + +struct derived : virtual public base +{ +}; + +#endif//__virtual_inheritance_to_be_exported_hpp__ Added: pyplusplus_dev/unittests/indexing_suite_v1_tester.py =================================================================== --- pyplusplus_dev/unittests/indexing_suite_v1_tester.py (rev 0) +++ pyplusplus_dev/unittests/indexing_suite_v1_tester.py 2009-02-17 19:30:51 UTC (rev 1688) @@ -0,0 +1,49 @@ +# Copyright 2004-2008 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 os +import sys +import unittest +import autoconfig +from pyplusplus import utils +import fundamental_tester_base +from pygccxml import declarations +from pyplusplus import module_builder +from pyplusplus.module_builder import call_policies + +class tester_t(fundamental_tester_base.fundamental_tester_base_t): + EXTENSION_NAME = 'indexing_suite_v1' + + def __init__( self, *args ): + fundamental_tester_base.fundamental_tester_base_t.__init__( + self + , tester_t.EXTENSION_NAME + , indexing_suite_version=1 + , *args ) + self.files = [] + + def customize( self, mb ): + v = mb.class_( lambda x: x.name.startswith( 'vector' ) ) + v.exclude() + + def run_tests(self, module): + x = module.get_empty() + try: + for i in x: + print i + self.fail( "TypeError exception was not raised" ) + except TypeError: + pass + +def create_suite(): + suite = unittest.TestSuite() + suite.addTest( unittest.makeSuite(tester_t)) + return suite + +def run_suite(): + unittest.TextTestRunner(verbosity=2).run( create_suite() ) + +if __name__ == "__main__": + run_suite() Added: pyplusplus_dev/unittests/virtual_inheritance_tester.py =================================================================== --- pyplusplus_dev/unittests/virtual_inheritance_tester.py (rev 0) +++ pyplusplus_dev/unittests/virtual_inheritance_tester.py 2009-02-17 19:30:51 UTC (rev 1688) @@ -0,0 +1,33 @@ +# Copyright 2004-2008 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 os +import sys +import unittest +import fundamental_tester_base + +class tester_t(fundamental_tester_base.fundamental_tester_base_t): + EXTENSION_NAME = 'virtual_inheritance' + + def __init__( self, *args ): + fundamental_tester_base.fundamental_tester_base_t.__init__( + self + , tester_t.EXTENSION_NAME + , *args ) + + + def run_tests( self, module): + pass + +def create_suite(): + suite = unittest.TestSuite() + suite.addTest( unittest.makeSuite(tester_t)) + return suite + +def run_suite(): + unittest.TextTestRunner(verbosity=2).run( create_suite() ) + +if __name__ == "__main__": + run_suite() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-02-17 20:29:16
|
Revision: 1689 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1689&view=rev Author: roman_yakovenko Date: 2009-02-17 20:29:14 +0000 (Tue, 17 Feb 2009) Log Message: ----------- porting test to linux Modified Paths: -------------- pyplusplus_dev/unittests/indexing_suites_v2_bug_tester.py pyplusplus_dev/unittests/test_all.py Modified: pyplusplus_dev/unittests/indexing_suites_v2_bug_tester.py =================================================================== --- pyplusplus_dev/unittests/indexing_suites_v2_bug_tester.py 2009-02-17 19:30:51 UTC (rev 1688) +++ pyplusplus_dev/unittests/indexing_suites_v2_bug_tester.py 2009-02-17 20:29:14 UTC (rev 1689) @@ -4,21 +4,35 @@ # http://www.boost.org/LICENSE_1_0.txt) import os +import dl import sys import unittest import autoconfig import fundamental_tester_base from pyplusplus import code_creators +sys.setdlopenflags(dl.RTLD_NOW | dl.RTLD_GLOBAL) + + + class tester_t(fundamental_tester_base.fundamental_tester_base_t): def __init__( self, *args ): fundamental_tester_base.fundamental_tester_base_t.__init__( self, self.EXTENSION_NAME, indexing_suite_version=2, *args ) def run_tests(self, module): - v = module.create_vector() - for i in v: - print i - + try: + v = module.create_vector() + print self.__class__.__name__ + for i in v: + print i + print self.__class__.__name__, ' - done' + print self.__class__.__name__ + for i in v: + print i + print self.__class__.__name__, ' - done(2)' + except Exception, ex: + print 'Error: ', str( ex ) + class tester_a_t(tester_t): EXTENSION_NAME = 'indexing_suites_v2_bug_a' def __init__( self, *args ): Modified: pyplusplus_dev/unittests/test_all.py =================================================================== --- pyplusplus_dev/unittests/test_all.py 2009-02-17 19:30:51 UTC (rev 1688) +++ pyplusplus_dev/unittests/test_all.py 2009-02-17 20:29:14 UTC (rev 1689) @@ -87,9 +87,6 @@ import templates_tester import deepcopy_tester import override_bug_tester -#gui_tester -#gui_wizard_tester -# import mem_fun_with_exception_tester import overriden_virtual_functions_bug_tester import split_module_bug_tester @@ -114,6 +111,8 @@ import ctypes_tester import refee_refer_tester import indexing_suites_v2_bug_tester +import virtual_inheritance_tester +import indexing_suite_v1_tester #import ogre_generate_tester testers = [ @@ -215,6 +214,8 @@ , ctypes_tester , refee_refer_tester , indexing_suites_v2_bug_tester + , virtual_inheritance_tester + , indexing_suite_v1_tester # , ogre_generate_tester too much time ] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-04-08 21:10:48
|
Revision: 1699 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1699&view=rev Author: roman_yakovenko Date: 2009-04-08 21:10:42 +0000 (Wed, 08 Apr 2009) Log Message: ----------- adding new test case Modified Paths: -------------- pyplusplus_dev/unittests/test_all.py Added Paths: ----------- pyplusplus_dev/unittests/data/derive_from_deque_to_be_exported.hpp pyplusplus_dev/unittests/derive_from_deque_tester.py Added: pyplusplus_dev/unittests/data/derive_from_deque_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/derive_from_deque_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/derive_from_deque_to_be_exported.hpp 2009-04-08 21:10:42 UTC (rev 1699) @@ -0,0 +1,45 @@ +// Copyright 2004-2008 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) + +#ifndef __derive_from_deque_to_be_exported_hpp__ +#define __derive_from_deque_to_be_exported_hpp__ + +#include <iostream> +#include <vector> +#include <deque> + + +struct A{ + A(int a, int b) + : a_(a),b_(b) + {} + + int a_; + int b_; + + int compute(){return a_ + b_;} +}; + +struct C : A{ + + C(int a, int b) + : A(a,b) + {} +}; + +namespace pyplusplus{ namespace aliases{ + + typedef std::deque< C > CDeque; + void instantiate( std::deque<C> d){ + } +} } + +struct F : public std::deque<C> +{ + F(){} + int dlugosc() {return this->size();} +}; + +#endif//__derive_from_deque_to_be_exported_hpp__ Added: pyplusplus_dev/unittests/derive_from_deque_tester.py =================================================================== --- pyplusplus_dev/unittests/derive_from_deque_tester.py (rev 0) +++ pyplusplus_dev/unittests/derive_from_deque_tester.py 2009-04-08 21:10:42 UTC (rev 1699) @@ -0,0 +1,45 @@ +# Copyright 2004-2008 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 os +import sys +import unittest +import fundamental_tester_base +from pygccxml import declarations +from pyplusplus import module_builder + + +class tester_t(fundamental_tester_base.fundamental_tester_base_t): + EXTENSION_NAME = 'derive_from_deque' + + def __init__( self, *args ): + fundamental_tester_base.fundamental_tester_base_t.__init__( + self + , tester_t.EXTENSION_NAME + , indexing_suite_version=2 + , *args) + + def customize(self, mb): + pass + #~ mb.class_( 'deque<C>' ).include() + + + def run_tests( self, module): + c = module.C( 1,2) + f = module.F() + f.append(c) + c2 = f[0] + self.failUnless( c2.a_ == c.a_ and c2.b_ == c.b_ ) + +def create_suite(): + suite = unittest.TestSuite() + suite.addTest( unittest.makeSuite(tester_t)) + return suite + +def run_suite(): + unittest.TextTestRunner(verbosity=2).run( create_suite() ) + +if __name__ == "__main__": + run_suite() Modified: pyplusplus_dev/unittests/test_all.py =================================================================== --- pyplusplus_dev/unittests/test_all.py 2009-03-03 13:57:49 UTC (rev 1698) +++ pyplusplus_dev/unittests/test_all.py 2009-04-08 21:10:42 UTC (rev 1699) @@ -113,6 +113,7 @@ import indexing_suites_v2_bug_tester import virtual_inheritance_tester import indexing_suite_v1_tester +import derive_from_deque_tester #import ogre_generate_tester testers = [ @@ -215,7 +216,8 @@ , refee_refer_tester , indexing_suites_v2_bug_tester , virtual_inheritance_tester - , indexing_suite_v1_tester + , indexing_suite_v1_tester + , derive_from_deque_tester # , ogre_generate_tester too much time ] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rom...@us...> - 2009-04-16 05:47:51
|
Revision: 1700 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1700&view=rev Author: roman_yakovenko Date: 2009-04-16 05:47:47 +0000 (Thu, 16 Apr 2009) Log Message: ----------- testing std::pair Modified Paths: -------------- pyplusplus_dev/unittests/test_all.py Added Paths: ----------- pyplusplus_dev/unittests/data/std_pair_to_be_exported.hpp pyplusplus_dev/unittests/std_pair_tester.py Added: pyplusplus_dev/unittests/data/std_pair_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/std_pair_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/std_pair_to_be_exported.hpp 2009-04-16 05:47:47 UTC (rev 1700) @@ -0,0 +1,22 @@ +// Copyright 2004-2008 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) + +#ifndef __std_pair_to_be_exported_hpp__ +#define __std_pair_to_be_exported_hpp__ + +#include <utility> + +struct tester_t{ + tester_t(int a, int b){ + pair_.first = a; + pair_.second = b; + } + + int compute(){return pair_.first + pair_.second;} + + std::pair<int, int> pair_; +}; +#endif//__std_pair_to_be_exported_hpp__ + Added: pyplusplus_dev/unittests/std_pair_tester.py =================================================================== --- pyplusplus_dev/unittests/std_pair_tester.py (rev 0) +++ pyplusplus_dev/unittests/std_pair_tester.py 2009-04-16 05:47:47 UTC (rev 1700) @@ -0,0 +1,35 @@ +# Copyright 2004-2008 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 os +import sys +import unittest +import fundamental_tester_base + +class tester_t(fundamental_tester_base.fundamental_tester_base_t): + EXTENSION_NAME = 'std_pair' + + def __init__( self, *args ): + fundamental_tester_base.fundamental_tester_base_t.__init__( + self + , tester_t.EXTENSION_NAME + , *args ) + + def customize( self, mb ): + mb.class_( 'pair< int, int >' ).include() + + def run_tests( self, module): + pass + +def create_suite(): + suite = unittest.TestSuite() + suite.addTest( unittest.makeSuite(tester_t)) + return suite + +def run_suite(): + unittest.TextTestRunner(verbosity=2).run( create_suite() ) + +if __name__ == "__main__": + run_suite() Modified: pyplusplus_dev/unittests/test_all.py =================================================================== --- pyplusplus_dev/unittests/test_all.py 2009-04-08 21:10:42 UTC (rev 1699) +++ pyplusplus_dev/unittests/test_all.py 2009-04-16 05:47:47 UTC (rev 1700) @@ -114,6 +114,7 @@ import virtual_inheritance_tester import indexing_suite_v1_tester import derive_from_deque_tester +import std_pair_tester #import ogre_generate_tester testers = [ @@ -218,6 +219,7 @@ , virtual_inheritance_tester , indexing_suite_v1_tester , derive_from_deque_tester + , std_pair_tester # , ogre_generate_tester too much time ] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |