[pygccxml-commit] SF.net SVN: pygccxml: [1366] pyplusplus_dev/unittests
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2008-07-06 19:29:31
|
Revision: 1366 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1366&view=rev Author: roman_yakovenko Date: 2008-07-06 12:29:39 -0700 (Sun, 06 Jul 2008) Log Message: ----------- add new unit test Added Paths: ----------- pyplusplus_dev/unittests/bool_by_ref_tester.py pyplusplus_dev/unittests/data/bool_by_ref_to_be_exported.hpp Added: pyplusplus_dev/unittests/bool_by_ref_tester.py =================================================================== --- pyplusplus_dev/unittests/bool_by_ref_tester.py (rev 0) +++ pyplusplus_dev/unittests/bool_by_ref_tester.py 2008-07-06 19:29:39 UTC (rev 1366) @@ -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) + +import os +import sys +import math +import unittest +import fundamental_tester_base +from pygccxml import declarations +from pyplusplus import function_transformers as ft +from pyplusplus.module_builder import call_policies + + +class tester_t(fundamental_tester_base.fundamental_tester_base_t): + EXTENSION_NAME = 'bool_by_ref' + + def __init__( self, *args ): + fundamental_tester_base.fundamental_tester_base_t.__init__( + self + , tester_t.EXTENSION_NAME + , *args ) + + def customize( self, mb ): + set_flag = mb.mem_fun( '::tests::listener::listen' ) + set_flag.add_transformation( ft.inout(2) ) + + + def run_tests(self, module): + class list1 ( module.listener ): + def __init__ ( self ): + module.listener.__init__(self) + def listen( self, id, name, skip): + print "Python: listen called with", id, name, skip + return True ## Test always returns True... + + c = list1() + ret = module.callListener( c ) + print ret + +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/data/bool_by_ref_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/bool_by_ref_to_be_exported.hpp (rev 0) +++ pyplusplus_dev/unittests/data/bool_by_ref_to_be_exported.hpp 2008-07-06 19:29:39 UTC (rev 1366) @@ -0,0 +1,21 @@ +#include <stdexcept> +#include <iostream> + +namespace tests{ + +class listener { + public: + virtual void listen(int id, const std::string& name, bool& skip) { + throw std::runtime_error ( std::string ("Virtual function listener::listen called!") ); + } +}; + +bool callListener ( listener* myListener) { + bool skip = false; + std::cout << "C++: Calling myListener->listen\n"; + myListener->listen(100, "test", skip); + std::cout << "C++: Called OK " << skip <<"\n"; + return skip; +} + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |