📄 alltests.cpp
字号:
// **********************************************************************//// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.//// This copy of Ice is licensed to you under the terms described in the// ICE_LICENSE file included in this distribution.//// **********************************************************************#include <Ice/Ice.h>#include <TestCommon.h>#include <Test.h>using namespace std;using namespace Test;class CallbackBase : public IceUtil::Monitor<IceUtil::Mutex>{public: CallbackBase() : _called(false) { } virtual ~CallbackBase() { } bool check() { IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this); while(!_called) { if(!timedWait(IceUtil::Time::seconds(5))) { return false; } } _called = false; return true; }protected: void called() { IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this); assert(!_called); _called = true; notify(); }private: bool _called;};class AMI_Test_baseAsBaseI : public AMI_TestIntf_baseAsBase, public CallbackBase{ virtual void ice_response() { test(false); } virtual void ice_exception(const Ice::Exception& exc) { try { exc.ice_throw(); } catch(const Base& b) { test(b.b == "Base.b"); test(b.ice_name() =="Test::Base"); } catch(...) { test(false); } called(); }};typedef IceUtil::Handle<AMI_Test_baseAsBaseI> AMI_Test_baseAsBaseIPtr;class AMI_Test_unknownDerivedAsBaseI : public AMI_TestIntf_unknownDerivedAsBase, public CallbackBase{ virtual void ice_response() { test(false); } virtual void ice_exception(const Ice::Exception& exc) { try { exc.ice_throw(); } catch(const Base& b) { test(b.b == "UnknownDerived.b"); test(b.ice_name() =="Test::Base"); } catch(...) { test(false); } called(); }};typedef IceUtil::Handle<AMI_Test_unknownDerivedAsBaseI> AMI_Test_unknownDerivedAsBaseIPtr;class AMI_Test_knownDerivedAsBaseI : public AMI_TestIntf_knownDerivedAsBase, public CallbackBase{ virtual void ice_response() { test(false); } virtual void ice_exception(const Ice::Exception& exc) { try { exc.ice_throw(); } catch(const KnownDerived& k) { test(k.b == "KnownDerived.b"); test(k.kd == "KnownDerived.kd"); test(k.ice_name() =="Test::KnownDerived"); } catch(...) { test(false); } called(); }};typedef IceUtil::Handle<AMI_Test_knownDerivedAsBaseI> AMI_Test_knownDerivedAsBaseIPtr;class AMI_Test_knownDerivedAsKnownDerivedI : public AMI_TestIntf_knownDerivedAsKnownDerived, public CallbackBase{ virtual void ice_response() { test(false); } virtual void ice_exception(const Ice::Exception& exc) { try { exc.ice_throw(); } catch(const KnownDerived& k) { test(k.b == "KnownDerived.b"); test(k.kd == "KnownDerived.kd"); test(k.ice_name() =="Test::KnownDerived"); } catch(...) { test(false); } called(); }};typedef IceUtil::Handle<AMI_Test_knownDerivedAsKnownDerivedI> AMI_Test_knownDerivedAsKnownDerivedIPtr;class AMI_Test_unknownIntermediateAsBaseI : public AMI_TestIntf_unknownIntermediateAsBase, public CallbackBase{ virtual void ice_response() { test(false); } virtual void ice_exception(const Ice::Exception& exc) { try { exc.ice_throw(); } catch(const Base& b) { test(b.b == "UnknownIntermediate.b"); test(b.ice_name() =="Test::Base"); } catch(...) { test(false); } called(); }};typedef IceUtil::Handle<AMI_Test_unknownIntermediateAsBaseI> AMI_Test_unknownIntermediateAsBaseIPtr;class AMI_Test_knownIntermediateAsBaseI : public AMI_TestIntf_knownIntermediateAsBase, public CallbackBase{ virtual void ice_response() { test(false); } virtual void ice_exception(const Ice::Exception& exc) { try { exc.ice_throw(); } catch(const KnownIntermediate& ki) { test(ki.b == "KnownIntermediate.b"); test(ki.ki == "KnownIntermediate.ki"); test(ki.ice_name() =="Test::KnownIntermediate"); } catch(...) { test(false); } called(); }};typedef IceUtil::Handle<AMI_Test_knownIntermediateAsBaseI> AMI_Test_knownIntermediateAsBaseIPtr;class AMI_Test_knownMostDerivedAsBaseI : public AMI_TestIntf_knownMostDerivedAsBase, public CallbackBase{ virtual void ice_response() { test(false); } virtual void ice_exception(const Ice::Exception& exc) { try { exc.ice_throw(); } catch(const KnownMostDerived& kmd) { test(kmd.b == "KnownMostDerived.b"); test(kmd.ki == "KnownMostDerived.ki"); test(kmd.kmd == "KnownMostDerived.kmd"); test(kmd.ice_name() =="Test::KnownMostDerived"); } catch(...) { test(false); } called(); }};typedef IceUtil::Handle<AMI_Test_knownMostDerivedAsBaseI> AMI_Test_knownMostDerivedAsBaseIPtr;class AMI_Test_knownIntermediateAsKnownIntermediateI : public AMI_TestIntf_knownIntermediateAsKnownIntermediate, public CallbackBase{ virtual void ice_response() { test(false); } virtual void ice_exception(const Ice::Exception& exc) { try { exc.ice_throw(); } catch(const KnownIntermediate& ki) { test(ki.b == "KnownIntermediate.b"); test(ki.ki == "KnownIntermediate.ki"); test(ki.ice_name() =="Test::KnownIntermediate"); } catch(...) { test(false); } called(); }};typedef IceUtil::Handle<AMI_Test_knownIntermediateAsKnownIntermediateI> AMI_Test_knownIntermediateAsKnownIntermediateIPtr;class AMI_Test_knownMostDerivedAsKnownMostDerivedI : public AMI_TestIntf_knownMostDerivedAsKnownMostDerived, public CallbackBase{ virtual void ice_response() { test(false); } virtual void ice_exception(const Ice::Exception& exc) { try { exc.ice_throw(); } catch(const KnownMostDerived& kmd) { test(kmd.b == "KnownMostDerived.b"); test(kmd.ki == "KnownMostDerived.ki"); test(kmd.kmd == "KnownMostDerived.kmd"); test(kmd.ice_name() =="Test::KnownMostDerived"); } catch(...) { test(false); } called(); }};typedef IceUtil::Handle<AMI_Test_knownMostDerivedAsKnownMostDerivedI> AMI_Test_knownMostDerivedAsKnownMostDerivedIPtr;class AMI_Test_knownMostDerivedAsKnownIntermediateI : public AMI_TestIntf_knownMostDerivedAsKnownIntermediate, public CallbackBase{ virtual void ice_response() { test(false); } virtual void ice_exception(const Ice::Exception& exc) { try { exc.ice_throw(); } catch(const KnownMostDerived& kmd) { test(kmd.b == "KnownMostDerived.b"); test(kmd.ki == "KnownMostDerived.ki"); test(kmd.kmd == "KnownMostDerived.kmd"); test(kmd.ice_name() =="Test::KnownMostDerived"); } catch(...) { test(false); } called(); }};typedef IceUtil::Handle<AMI_Test_knownMostDerivedAsKnownIntermediateI> AMI_Test_knownMostDerivedAsKnownIntermediateIPtr;class AMI_Test_unknownMostDerived1AsBaseI : public AMI_TestIntf_unknownMostDerived1AsBase, public CallbackBase{ virtual void ice_response() { test(false); } virtual void ice_exception(const Ice::Exception& exc) { try { exc.ice_throw(); } catch(const KnownIntermediate& ki) { test(ki.b == "UnknownMostDerived1.b"); test(ki.ki == "UnknownMostDerived1.ki"); test(string(ki.ice_name()) =="Test::KnownIntermediate"); } catch(...) { test(false); } called(); }};typedef IceUtil::Handle<AMI_Test_unknownMostDerived1AsBaseI> AMI_Test_unknownMostDerived1AsBaseIPtr;class AMI_Test_unknownMostDerived1AsKnownIntermediateI : public AMI_TestIntf_unknownMostDerived1AsKnownIntermediate, public CallbackBase{ virtual void ice_response() { test(false); } virtual void ice_exception(const Ice::Exception& exc) { try { exc.ice_throw(); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -