You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ja...@apache.org on 2006/01/13 07:41:22 UTC
svn commit: r368617 -
/webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/FaultMappingClient.cpp
Author: jamejose
Date: Thu Jan 12 22:41:08 2006
New Revision: 368617
URL: http://svn.apache.org/viewcvs?rev=368617&view=rev
Log:
Made client code same as FaultMappingDoc Test
Modified:
webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/FaultMappingClient.cpp
Modified: webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/FaultMappingClient.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/FaultMappingClient.cpp?rev=368617&r1=368616&r2=368617&view=diff
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/FaultMappingClient.cpp (original)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/FaultMappingClient.cpp Thu Jan 12 22:41:08 2006
@@ -16,9 +16,11 @@
#include "MathOps.hpp"
#include <axis/AxisException.hpp>
#include <ctype.h>
+#include <signal.h>
+#include <iostream>
-void PrintUsage();
-bool IsNumber(const char* p);
+void sig_handler(int);
+using namespace std;
int main(int argc, char* argv[])
{
@@ -30,40 +32,86 @@
const char* p1 = 0;
const char* p2 = 0;
int i1=0, i2=0;
- int iResult;
+ int iResult;
+ char* pcDetail;
+
+ signal(SIGILL, sig_handler);
+ signal(SIGABRT, sig_handler);
+ signal(SIGSEGV, sig_handler);
+ //signal(SIGQUIT, sig_handler);
+ //signal(SIGBUS, sig_handler);
+ signal(SIGFPE, sig_handler);
url = argv[1];
sprintf(endpoint, "%s", url);
- MathOps ws(endpoint);
op = "div";
if (strcmp(op, "div") == 0)
{
- for(int i = 0; i < 4; i++)
- {
- printf("%d\n", i);
- switch(i)
- {
- case 0: i1 = 10; i2 = 5; break;
- case 1: i1 = 10; i2 = 0; break;
- case 2: i1 = 1000; i2 = 5; break;
- case 3: i1 = 10; i2 = -5; break;
- }
+ for(int i = 0; i < 4; i++)
+ {
+ cout << i << endl;
+
+ switch(i)
+ {
+ case 0: i1 = 10; i2 = 5; break;
+ case 1: i1 = 10; i2 = 0; break;
+ case 2: i1 = 1000; i2 = 5; break;
+ case 3: i1 = 10; i2 = -5; break;
+ }
bool bSuccess = false;
int iRetryIterationCount = 3;
do
{
- try
- {
- iResult = ws.div(i1, i2);
- printf("Result is:%d\n", iResult);
- bSuccess = true;
- }
- catch(AxisException& e)
- {
+ try
+ {
+ MathOps ws(endpoint);
+ if( iRetryIterationCount == 3)
+ cout << "Trying to " << op << " " << i1 << " by " << i2 << endl;
+ iResult = ws.div(i1, i2);
+ cout << "Result is " << iResult << endl;
+ bSuccess = true;
+ }
+ catch(DivByZeroStruct& dbzs)
+ {
+ cout << "DivByZeroStruct Fault: \""
+ << dbzs.varString
+ << "\", "
+ << dbzs.varInt
+ << ", "
+ << dbzs.varFloat
+ << endl;
+ bSuccess = true;
+ }
+ catch(SpecialDetailStruct& sds)
+ {
+ cout << "SpecialDetailStruct Fault: \""
+ << sds.varString
+ << "\""
+ << endl;
+ bSuccess = true;
+ }
+ catch(OutOfBoundStruct& oobs)
+ {
+ cout << "OutOfBoundStruct Fault: \""
+ << oobs.varString
+ << "\", "
+ << oobs.varInt
+ << ", \""
+ << oobs.specialDetail->varString
+ << "\""
+ << endl;
+ bSuccess = true;
+ }
+ catch(SoapFaultException& sfe)
+ {
+ cout << "SoapFaultException: " << sfe.what() << endl;
+ }
+ catch(AxisException& e)
+ {
bool bSilent = false;
if( e.getExceptionCode() == CLIENT_TRANSPORT_OPEN_CONNECTION_FAILED)
@@ -80,39 +128,33 @@
if( !bSilent)
{
- printf("Exception : %s\n", e.what());
+ cout << "Exception : " << e.what() << endl;
+ }
+ }
+ catch(exception& e)
+ {
+ cout << "Unknown Exception: " << endl;
+ }
+ catch(...)
+ {
+ cout << "Unspecified Exception: " << endl;
}
- }
- catch(exception& e)
- {
- printf("Exception : %s\n", e.what());
- }
- catch(...)
- {
- }
iRetryIterationCount--;
} while( iRetryIterationCount > 0 && !bSuccess);
- }
+ }
}
else
{
- printf("Invalid operation %s\n\n", op);
- PrintUsage();
+ cout << "Invalid operation " << op << endl;
}
+ cout << "---------------------- TEST COMPLETE -----------------------------"<< endl;
+
return 0;
}
-void PrintUsage()
-{
- printf("Usage :\n MathOps <server> <port> <operation> <parameter> <parameter>\n\n");
+void sig_handler(int sig) {
+ signal(sig, sig_handler);
+ cout << "SIGNAL RECEIVED " << sig << endl;
exit(1);
}
-bool IsNumber(const char* p)
-{
- for (int x=1; x < strlen(p); x++)
- {
- if (!isdigit(p[x])) return false;
- }
- return true;
-}