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