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