[pygccxml-commit] SF.net SVN: pygccxml: [1233] pyplusplus_dev/unittests
Brought to you by:
mbaas,
roman_yakovenko
|
From: <rom...@us...> - 2008-02-06 07:55:16
|
Revision: 1233
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1233&view=rev
Author: roman_yakovenko
Date: 2008-02-05 23:55:18 -0800 (Tue, 05 Feb 2008)
Log Message:
-----------
adding new test
Modified Paths:
--------------
pyplusplus_dev/unittests/test_all.py
Added Paths:
-----------
pyplusplus_dev/unittests/data/deepcopy_to_be_exported.hpp
pyplusplus_dev/unittests/deepcopy_tester.py
Added: pyplusplus_dev/unittests/data/deepcopy_to_be_exported.hpp
===================================================================
--- pyplusplus_dev/unittests/data/deepcopy_to_be_exported.hpp (rev 0)
+++ pyplusplus_dev/unittests/data/deepcopy_to_be_exported.hpp 2008-02-06 07:55:18 UTC (rev 1233)
@@ -0,0 +1,33 @@
+// 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 __deepcopy_to_be_exported_hpp__
+#define __deepcopy_to_be_exported_hpp__
+
+#include <vector>
+
+namespace deepcopy{
+
+struct item_t{
+ item_t(){
+ id = reinterpret_cast< int >( this );
+ }
+ int id;
+};
+
+typedef std::vector< item_t > items_t;
+
+inline items_t create_items(){
+ items_t items;
+ items.push_back( item_t() );
+ items.push_back( item_t() );
+ items.push_back( item_t() );
+ return items;
+}
+
+}//statics
+
+
+#endif//__deepcopy_to_be_exported_hpp__
Added: pyplusplus_dev/unittests/deepcopy_tester.py
===================================================================
--- pyplusplus_dev/unittests/deepcopy_tester.py (rev 0)
+++ pyplusplus_dev/unittests/deepcopy_tester.py 2008-02-06 07:55:18 UTC (rev 1233)
@@ -0,0 +1,41 @@
+# 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)
+
+import os
+import sys
+import copy
+import unittest
+import fundamental_tester_base
+from pyplusplus import code_creators
+
+class tester_t(fundamental_tester_base.fundamental_tester_base_t):
+ EXTENSION_NAME = 'deepcopy'
+
+ 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
+
+ def run_tests( self, module):
+ items = module.create_items()
+ for i in items:
+ print i.id
+ self.failIfNotRaisesAny( copy.deepcopy, items )
+
+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-02-04 16:08:50 UTC (rev 1232)
+++ pyplusplus_dev/unittests/test_all.py 2008-02-06 07:55:18 UTC (rev 1233)
@@ -83,6 +83,7 @@
import custom_string_tester
import final_classes_tester
import templates_tester
+import deepcopy_tester
#gui_tester
#gui_wizard_tester
#
@@ -185,6 +186,7 @@
, precompiled_header_tester
, balanced_files_tester
, ft_inout_tester
+ , deepcopy_tester
]
class module_runner_t( object ):
@@ -192,11 +194,11 @@
test_name_re = re.compile( '(?P<name>.+ \(.+\))\s\.\.\.' )
failed_test_re = re.compile( 'FAIL\:\s(?P<name>.+ \(.+\))' )
error_test_re = re.compile( 'ERROR\:\s(?P<name>.+ \(.+\))' )
-
+
def __init__( self, module ):
self.module = module
self.output = None
-
+
self.test_results = {} #test name : result
self.num_of_tests = 0
self.total_run_time = 0
@@ -204,7 +206,7 @@
def __call__( self ):
print os.linesep, '<*> start %s tester' % os.path.basename( self.module.__file__)
-
+
test_file_name = self.module.__file__
if test_file_name.endswith( 'pyc' ):
test_file_name = test_file_name[:-1]
@@ -219,11 +221,11 @@
break
else:
print data,
- self.output = ''.join( report )
+ self.output = ''.join( report )
self.exit_status = output.close()
self.__update()
print '<***> finish %s tester' % os.path.basename( self.module.__file__)
-
+
def __create_unique_name( self, name ):
if '__main__.' in name:
name = name.replace( '__main__', os.path.basename( self.module.__file__)[:-4] )
@@ -231,14 +233,14 @@
def __update( self ):
match_found = self.bottom_line_re.search( self.output )
- if match_found:
+ if match_found:
self.num_of_tests += int( match_found.group( 'num_of_tests' ) )
self.total_run_time += float( match_found.group( 'seconds' ) )
-
+
uname = self.__create_unique_name
for match_found in self.test_name_re.finditer( self.output ):
self.test_results[ uname( match_found.group( 'name' ) ) ] = 'ok'
-
+
for match_found in self.failed_test_re.finditer( self.output ):
self.test_results[ uname( match_found.group( 'name' ) ) ] = 'FAIL'
@@ -249,11 +251,11 @@
class process_tester_runner_t( object ):
-
+
def __init__( self, modules ):
self.__m_runners = [ module_runner_t(m) for m in modules ]
self.__total_time = 0
-
+
def __dump_statistics( self ):
num_of_tests = 0
test_results = {}
@@ -265,20 +267,20 @@
test_results.update( stat.test_results )
exit_status = max( exit_status, stat.exit_status )
test_failed = len( filter( lambda result: result != 'ok', test_results.values() ) )
-
+
for name, result in test_results.iteritems():
if result != 'ok':
print '! ',
print name, ' - ', result
- print '----------------------------------------------------------------------'
+ print '----------------------------------------------------------------------'
print 'Final exit status: ', exit_status
print 'Ran %d test in %fs. Multi-processing overhead: %fs.' \
% ( num_of_tests, self.__total_time, self.__total_time - total_tests_only_run_time )
print ' '
if test_failed:
- print os.linesep.join(['FAILED (failures=%d)' % test_failed, 'False'])
+ print os.linesep.join(['FAILED (failures=%d)' % test_failed, 'False'])
else:
- print 'ok'
+ print 'ok'
def __call__( self ):
start_time = time.time()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|