[pygccxml-commit] SF.net SVN: pygccxml:[1527] pyplusplus_dev/unittests
Brought to you by:
mbaas,
roman_yakovenko
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. |