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:40:33 UTC
svn commit: r368616 -
/webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/ExceptionTestClient.cpp
Author: jamejose
Date: Thu Jan 12 22:40:19 2006
New Revision: 368616
URL: http://svn.apache.org/viewcvs?rev=368616&view=rev
Log:
Made the client code same as ExceptionTestDoc Test
Modified:
webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/ExceptionTestClient.cpp
Modified: webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/ExceptionTestClient.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/ExceptionTestClient.cpp?rev=368616&r1=368615&r2=368616&view=diff
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/ExceptionTestClient.cpp (original)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/ExceptionTestClient.cpp Thu Jan 12 22:40:19 2006
@@ -15,10 +15,14 @@
#include "MathOps.hpp"
#include <axis/AxisException.hpp>
+#include <axis/Axis.hpp>
#include <ctype.h>
+#include <iostream>
+#include <signal.h>
+
+void sig_handler(int);
void PrintUsage();
-bool IsNumber(const char* p);
int main(int argc, char* argv[])
{
@@ -29,12 +33,18 @@
const char* op = 0;
char* p1 = 0;
const char* p2 = 0;
- int p3 = 0;
+ int p3 = 0;
int i1=0, i2=0;
- int iResult;
- char* pcDetail;
+ int iResult;
+ char* pcDetail;
+
+ signal(SIGILL, sig_handler);
+ signal(SIGABRT, sig_handler);
+ signal(SIGSEGV, sig_handler);
+ signal(SIGFPE, sig_handler);
- url = argv[1];
+ if(argc>1)
+ url = argv[1];
op = "div";
@@ -43,79 +53,78 @@
if (strcmp(op, "div") == 0)
{
- for(p3 = 0; p3 < 3; p3++)
- {
+ for(p3 = 0; p3 < 3; p3++)
+ {
bool bSuccess = false;
int iRetryIterationCount = 3;
do
{
- try
- {
- switch(p3)
- {
- case 0:
- /* Sends a normal request. the result should be the division of
- * two numbers the user has provided
- */
- //sprintf(endpoint, "http://%s:%s/axis/MathOps", server, port);
- sprintf(endpoint, "%s", url);
- break;
-
- case 1:
- /* Service name is missing. The message
- * Exception : AxisSoapException:Soap action is empty
- * should be returned to the user.
- */
- //sprintf(endpoint, "http://%s:%s/axis", server, port);
- sprintf(endpoint, "%s", url);
- p1 = strrchr(endpoint, '/');
- *p1 = (char)NULL; // Set a NULL at the last '/' char to strip the service endpoint interface
- break;
-
- case 2:
- /* Service name is wrong. The message
- * Exception : AxisWsddException:Requested service not found
- * should be returned to the user.
- */
- //sprintf(endpoint, "http://%s:%s/axis/Math", server, port);
- sprintf(endpoint, "%s", url);
- p1 = endpoint + (strlen(endpoint) - 3);
- *p1 = (char)NULL; // Set a NULL to strip the last 3 chars
- break;
-
- case 3:
- /* Service path is empty. The message
- * The corresponding http fail message
- * should be returned to the user.
- */
- /*sprintf(endpoint, "http://%s:%s/", server, port);*/
- printf("This test has been temporarily terminated" \
- " due to an unresolved bug\n");
- exit(0); /* This is temporary code*/
- break;
-
- case 4:
- /* Exception : AxisTransportException:Unexpected string
- * received. Most probably server returned an empty stream
- */
- sprintf(endpoint, "", server, port);
- //sprintf(endpoint, "http://%s:%s", server, port);
- break;
-
- default:
- printf("Invalid option for the last parameter\n\n");
- return 0;
- }
- //sprintf(endpoint, "http://%s:%s/axis/MathOps", server, port);
- MathOps ws(endpoint);
+ try
+ {
+ switch(p3)
+ {
+ case 0:
+ /* Sends a normal request. the result should be the division of
+ * two numbers the user has provided
+ */
+ //sprintf(endpoint, "http://%s:%s/axis/MathOps", server, port);
+ sprintf(endpoint, "%s", url);
+ break;
+
+ case 1:
+ /* Service name is missing. The message
+ * Exception : AxisSoapException:Soap action is empty
+ * should be returned to the user.
+ */
+ //sprintf(endpoint, "http://%s:%s/axis", server, port);
+ sprintf(endpoint, "%s", url);
+ p1 = strrchr(endpoint, '/');
+ *p1 = (char)NULL; // Set a NULL at the last '/' char to strip the service endpoint interface
+ break;
+
+ case 2:
+ /* Service name is wrong. The message
+ * Exception : AxisWsddException:Requested service not found
+ * should be returned to the user.
+ */
+ //sprintf(endpoint, "http://%s:%s/axis/Math", server, port);
+ sprintf(endpoint, "%s", url);
+ p1 = endpoint + (strlen(endpoint) - 3);
+ *p1 = (char)NULL; // Set a NULL to strip the last 3 chars
+ break;
+
+ case 3:
+ /* Service path is empty. The message
+ * The corresponding http fail message
+ * should be returned to the user.
+ */
+ /*sprintf(endpoint, "http://%s:%s/", server, port);*/
+ cout << "This test has been temporarily terminated"
+ << " due to an unresolved bug"<< endl;
+ exit(0); /* This is temporary code*/
+ break;
+
+ case 4:
+ /* Exception : AxisTransportException:Unexpected string
+ * received. Most probably server returned an empty stream
+ */
+ sprintf(endpoint, "", server, port);
+ //sprintf(endpoint, "http://%s:%s", server, port);
+ break;
+
+ default:
+ cout << "Invalid option for the last parameter"<<endl<<endl;
+ return 0;
+ }
+ //sprintf(endpoint, "http://%s:%s/axis/MathOps", server, port);
+ MathOps ws(endpoint);
iResult = ws.div(i1, i2);
- printf("Result is:%d\n", iResult);
- bSuccess = true;
-
- }
- catch(AxisException& e)
- {
+ cout << "Result is:" << iResult << endl;
+ bSuccess = true;
+ }
+ catch(AxisException& e)
+ {
bool bSilent = false;
if( e.getExceptionCode() == CLIENT_TRANSPORT_OPEN_CONNECTION_FAILED)
@@ -132,40 +141,40 @@
if( !bSilent)
{
- printf("%s\n", e.what());
+ cout << "AxisException has occured: " << e.what() << endl;
}
- }
- catch(exception& e)
- {
- printf("Unknown exception has occured\n");
- }
- catch(...)
- {
- printf("Unknown exception has occured\n");
- }
+ }
+ catch(exception& e)
+ {
+ cout << "Unknown exception has occured"<< endl;
+ }
+ catch(...)
+ {
+ cout << "Unspecified exception has occured" << endl;
+ }
iRetryIterationCount--;
} while( iRetryIterationCount > 0 && !bSuccess);
- }
+ }
}
else
{
- printf("Invalid operation %s\n\n", op);
+ cout << "Invalid operation " << op <<endl<<endl;
PrintUsage();
}
+
+ cout << "---------------------- TEST COMPLETE -----------------------------" << endl;
return 0;
}
void PrintUsage()
{
- printf("Usage :\n MathOps <server> <port> <operation> <parameter> <parameter> <parameter>\n\n");
+ printf("Usage :\n MathOps <url>\n\n");
exit(1);
}
-bool IsNumber(const char* p)
-{
- for (int x=1; x < strlen(p); x++)
- {
- if (!isdigit(p[x])) return false;
- }
- return true;
+void sig_handler(int sig) {
+ signal(sig, sig_handler);
+ cout << "SIGNAL RECEIVED " << sig << endl;
+ exit(1);
}
+