summaryrefslogtreecommitdiff
path: root/cpp/test
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2012-10-26 18:02:49 +0200
committerBenoit Foucher <benoit@zeroc.com>2012-10-26 18:02:49 +0200
commitda840df6a47591d7816e977c7c030f7330a2f098 (patch)
tree88da6faf9424e42a5e8258a4c6969d741914efa5 /cpp/test
parentMinor metrics fixes (diff)
downloadice-da840df6a47591d7816e977c7c030f7330a2f098.tar.bz2
ice-da840df6a47591d7816e977c7c030f7330a2f098.tar.xz
ice-da840df6a47591d7816e977c7c030f7330a2f098.zip
Fixed cross test failure, memory leaks and UMRs
Diffstat (limited to 'cpp/test')
-rw-r--r--cpp/test/Ice/exceptions/AllTests.cpp107
-rw-r--r--cpp/test/Ice/exceptions/Test.ice5
-rw-r--r--cpp/test/Ice/exceptions/TestAMDI.cpp2
-rw-r--r--cpp/test/Ice/exceptions/TestI.cpp58
-rw-r--r--cpp/test/Ice/exceptions/TestI.h5
5 files changed, 49 insertions, 128 deletions
diff --git a/cpp/test/Ice/exceptions/AllTests.cpp b/cpp/test/Ice/exceptions/AllTests.cpp
index 6a09297b4d9..d08c104e2db 100644
--- a/cpp/test/Ice/exceptions/AllTests.cpp
+++ b/cpp/test/Ice/exceptions/AllTests.cpp
@@ -871,6 +871,16 @@ private:
typedef IceUtil::Handle<Callback> CallbackPtr;
+bool
+endsWith(const string& s, const string& findme)
+{
+ if(s.length() > findme.length())
+ {
+ return 0 == s.compare(s.length() - findme.length(), findme.length(), findme);
+ }
+ return false;
+}
+
ThrowerPrx
allTests(const Ice::CommunicatorPtr& communicator, bool collocated)
{
@@ -918,6 +928,42 @@ allTests(const Ice::CommunicatorPtr& communicator, bool collocated)
test(uleMsg == ule.what());
test(uleMsg == ule.what());
+
+ {
+ E ex("E");
+ ostringstream os;
+ ex.ice_print(os);
+ test(os.str() == "Test::E");
+ test(ex.data == "E");
+ }
+
+ //
+ // Test custom ice_print
+ //
+ {
+ F ex("F");
+ ostringstream os;
+ ex.ice_print(os);
+ test(os.str() == "Test::F data:'F'");
+ test(ex.data == "F");
+ }
+
+ {
+ G ex(__FILE__, __LINE__, "G");
+ ostringstream os;
+ ex.ice_print(os);
+ test(endsWith(os.str(), "Test::G"));
+ test(ex.data == "G");
+ }
+
+ {
+ H ex(__FILE__, __LINE__, "H");
+ ostringstream os;
+ ex.ice_print(os);
+ test(endsWith(os.str(), "Test::H data:'H'"));
+ test(ex.data == "H");
+ }
+
}
cout << "ok" << endl;
@@ -1412,68 +1458,9 @@ allTests(const Ice::CommunicatorPtr& communicator, bool collocated)
{
test(false);
}
-
-
- try
- {
- thrower->throwE();
- }
- catch(const E& ex)
- {
- ostringstream os;
- ex.ice_print(os);
- test(os.str() == "Test::E");
- test(ex.data == "E");
- }
- catch(...)
- {
- test(false);
- }
-
- try
- {
- thrower->throwF();
- }
- catch(const F& ex)
- {
- ostringstream os;
- ex.ice_print(os);
- test(os.str() == "Test::F data:'F'");
- test(ex.data == "F");
- }
- catch(...)
- {
- test(false);
- }
-
- try
- {
- thrower->throwG();
- test(false);
- }
- catch(const Ice::UnknownLocalException&)
- {
- }
- catch(...)
- {
- test(false);
- }
-
- try
- {
- thrower->throwH();
- test(false);
- }
- catch(const Ice::UnknownLocalException&)
- {
- }
- catch(...)
- {
- test(false);
- }
cout << "ok" << endl;
-
+
if(!collocated)
{
cout << "catching exact types with AMI... " << flush;
diff --git a/cpp/test/Ice/exceptions/Test.ice b/cpp/test/Ice/exceptions/Test.ice
index 0eeb1608201..610c7b6bdf6 100644
--- a/cpp/test/Ice/exceptions/Test.ice
+++ b/cpp/test/Ice/exceptions/Test.ice
@@ -96,11 +96,6 @@ module Mod
void throwAfterResponse();
void throwAfterException() throws A;
-
- void throwE() throws E;
- void throwF() throws F;
- void throwG();
- void throwH();
};
["ami"] interface WrongOperation
diff --git a/cpp/test/Ice/exceptions/TestAMDI.cpp b/cpp/test/Ice/exceptions/TestAMDI.cpp
index 88534bc356f..266f020fc4e 100644
--- a/cpp/test/Ice/exceptions/TestAMDI.cpp
+++ b/cpp/test/Ice/exceptions/TestAMDI.cpp
@@ -206,7 +206,7 @@ ThrowerI::throwAfterResponse_async(const AMD_Thrower_throwAfterResponsePtr& cb,
void
ThrowerI::throwAfterException_async(const AMD_Thrower_throwAfterExceptionPtr& cb, const Ice::Current&)
{
- cb->ice_exception(A());
+ cb->ice_exception(A(12345));
throw std::string();
}
diff --git a/cpp/test/Ice/exceptions/TestI.cpp b/cpp/test/Ice/exceptions/TestI.cpp
index 0dcad9963d0..56797a7c5c7 100644
--- a/cpp/test/Ice/exceptions/TestI.cpp
+++ b/cpp/test/Ice/exceptions/TestI.cpp
@@ -14,16 +14,6 @@
using namespace Test;
using namespace std;
-bool
-endsWith(const string& s, const string& findme)
-{
- if(s.length() > findme.length())
- {
- return 0 == s.compare(s.length() - findme.length(), findme.length(), findme);
- }
- return false;
-}
-
ThrowerI::ThrowerI()
{
}
@@ -176,51 +166,5 @@ ThrowerI::throwAfterException(const Ice::Current&)
//
// Only relevant for AMD.
//
- throw A();
-}
-
-void
-ThrowerI::throwE(const Ice::Current&)
-{
- throw E("E");
-}
-
-void
-ThrowerI::throwF(const Ice::Current&)
-{
- throw F("F");
-}
-
-void
-ThrowerI::throwG(const Ice::Current&)
-{
- try
- {
- throw G(__FILE__, __LINE__, "G");
- }
- catch(const G& ex)
- {
- ostringstream os;
- ex.ice_print(os);
- test(endsWith(os.str(), "Test::G"));
- test(ex.data == "G");
- throw ex;
- }
-}
-
-void
-ThrowerI::throwH(const Ice::Current&)
-{
- try
- {
- throw H(__FILE__, __LINE__, "H");
- }
- catch(const H& ex)
- {
- ostringstream os;
- ex.ice_print(os);
- test(endsWith(os.str(), "Test::H data:'H'"));
- test(ex.data == "H");
- throw ex;
- }
+ throw A(12345);
}
diff --git a/cpp/test/Ice/exceptions/TestI.h b/cpp/test/Ice/exceptions/TestI.h
index ef10fbea1d6..cd8c2121a89 100644
--- a/cpp/test/Ice/exceptions/TestI.h
+++ b/cpp/test/Ice/exceptions/TestI.h
@@ -43,11 +43,6 @@ public:
virtual void throwAfterResponse(const Ice::Current&);
virtual void throwAfterException(const Ice::Current&);
-
- virtual void throwE(const Ice::Current&);
- virtual void throwF(const Ice::Current&);
- virtual void throwG(const Ice::Current&);
- virtual void throwH(const Ice::Current&);
};
#endif