BaseAdminTest.cxx
上传用户:xfwatch
上传日期:2020-12-14
资源大小:872k
文件大小:3k
源码类别:

中间件编程

开发平台:

Java

  1. /*
  2.  * JBoss, Home of Professional Open Source
  3.  * Copyright 2008, Red Hat, Inc., and others contributors as indicated
  4.  * by the @authors tag. All rights reserved.
  5.  * See the copyright.txt in the distribution for a
  6.  * full listing of individual contributors.
  7.  * This copyrighted material is made available to anyone wishing to use,
  8.  * modify, copy, or redistribute it subject to the terms and conditions
  9.  * of the GNU Lesser General Public License, v. 2.1.
  10.  * This program is distributed in the hope that it will be useful, but WITHOUT A
  11.  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  12.  * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
  13.  * You should have received a copy of the GNU Lesser General Public License,
  14.  * v.2.1 along with this distribution; if not, write to the Free Software
  15.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  16.  * MA  02110-1301, USA.
  17.  */
  18. #include "TestAssert.h"
  19. #include "ace/OS_NS_stdlib.h"
  20. #include "ace/OS_NS_stdio.h"
  21. #include "ace/OS_NS_string.h"
  22. #include "xatmi.h"
  23. #include "userlogc.h"
  24. #include "BaseAdminTest.h"
  25. void BaseAdminTest::setUp() {
  26. BaseServerTest::setUp();
  27. }
  28. void BaseAdminTest::tearDown() {
  29. BaseServerTest::tearDown();
  30. }
  31. int BaseAdminTest::callADMIN(char* command, char expect, int r, char** n) {
  32. userlogc("Command was %s", command);
  33. long  sendlen = strlen(command) + 1;
  34. char* sendbuf = tpalloc((char*) "X_OCTET", NULL, sendlen);
  35. strcpy(sendbuf, command);
  36. char* recvbuf = tpalloc((char*) "X_OCTET", NULL, 1);
  37. long  recvlen = 1;
  38. int cd = ::tpcall((char*) "default_ADMIN_1", (char *) sendbuf, sendlen, (char**)&recvbuf, &recvlen, TPNOTRAN);
  39. BT_ASSERT(r != -1);
  40. BT_ASSERT(recvbuf[0] == expect);
  41. BT_ASSERT(r == tperrno);
  42. if(ACE_OS::strncmp(command, "counter", 7) == 0 ||
  43.    ACE_OS::strncmp(command, "error_counter", 13) == 0 ||
  44.    ACE_OS::strncmp(command, "version", 7) == 0) {
  45. *n = (char*) malloc(recvlen);
  46. memset(*n, 0, recvlen);
  47. memcpy(*n, &recvbuf[1], recvlen -1);
  48. } else if(ACE_OS::strncmp(command, "status", 6) == 0) {
  49. userlogc((char*) "len is %d, service status: %s", recvlen, &recvbuf[1]);
  50. }
  51. tpfree(sendbuf);
  52. tpfree(recvbuf);
  53. return cd;
  54. }
  55. int BaseAdminTest::callBAR(int r, char* buf) {
  56. if(buf == NULL) {
  57. buf = (char*) "test";
  58. }
  59. long  sendlen = strlen(buf) + 1;
  60. char* sendbuf = tpalloc((char*) "X_OCTET", NULL, sendlen);
  61. strcpy(sendbuf, buf);
  62. char* recvbuf = tpalloc((char*) "X_OCTET", NULL, 1);
  63. long  recvlen = 1;
  64. int cd = ::tpcall((char*) "BAR", (char *) sendbuf, sendlen, (char**)&recvbuf, &recvlen, 0);
  65. if (r == 0) {
  66. char* tperrnoS = (char*) malloc(110);
  67. sprintf(tperrnoS, "%d", tperrno);
  68. BT_ASSERT_MESSAGE(tperrnoS, cd != -1);
  69. free(tperrnoS);
  70. } else {
  71. char* tperrnoS = (char*) malloc(110);
  72. sprintf(tperrnoS, "%d", tperrno);
  73. BT_ASSERT_MESSAGE(tperrnoS, cd == -1);
  74. free(tperrnoS);
  75. }
  76. userlogc((char*) "r = %d, tperrno = %d", r, tperrno);
  77. BT_ASSERT(r == tperrno);
  78. if(tperrno == 0) {
  79. BT_ASSERT(recvbuf[0] == '1');
  80. }
  81. tpfree(sendbuf);
  82. tpfree(recvbuf);
  83. return cd;
  84. }