TestAdmin.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 "TestAdmin.h"
  20. #include "malloc.h"
  21. #include "Sleeper.h"
  22. void TestAdmin::setUp() {
  23. userlogc((char*) "TestAdmin::setUp");
  24. BaseAdminTest::setUp();
  25. }
  26. void TestAdmin::tearDown() {
  27. userlogc((char*) "TestAdmin::tearDown");
  28. BaseAdminTest::tearDown();
  29. }
  30. char* TestAdmin::getBARCounter(char* command) {
  31. char* n = NULL;
  32. int cd;
  33. cd = callADMIN(command, '1', 0, &n);
  34. BT_ASSERT(cd == 0);
  35. return n;
  36. }
  37. void TestAdmin::testStatus() {
  38. int cd;
  39. cd = callADMIN((char*)"status", '1', 0, NULL);
  40. BT_ASSERT(cd == 0);
  41. cd = callADMIN((char*)"status,BAR,", '1', 0, NULL);
  42. BT_ASSERT(cd == 0);
  43. }
  44. void TestAdmin::testVersion() {
  45. int cd;
  46. char* ver = NULL;
  47. cd = callADMIN((char*)"version", '1', 0, &ver);
  48. BT_ASSERT(cd == 0);
  49. userlogc((char*)"version is %s", ver);
  50. BT_ASSERT(strcmp(ver, "2.0.0.M3") == 0);
  51. free(ver);
  52. }
  53. void TestAdmin::testMessageCounter() {
  54. char* barCounter = getBARCounter((char*)"counter,BAR,");
  55. BT_ASSERT(strncmp(barCounter, "0", 1) == 0);
  56. free (barCounter);
  57. BT_ASSERT(callBAR(0) == 0);
  58. barCounter = getBARCounter((char*)"counter,BAR,");
  59. BT_ASSERT(strncmp(barCounter, "1", 1) == 0);
  60. free (barCounter);
  61. }
  62. void TestAdmin::testErrorCounter() {
  63. char* barCounter = getBARCounter((char*)"error_counter,BAR,");
  64. BT_ASSERT(strncmp(barCounter, "0", 1) == 0);
  65. free (barCounter);
  66. BT_ASSERT(callBAR(TPESVCFAIL, (char*)"error_counter_test") == -1);
  67. barCounter = getBARCounter((char*)"error_counter,BAR,");
  68. userlogc("error counter = %s", barCounter);
  69. BT_ASSERT(strncmp(barCounter, "1", 1) == 0);
  70. free (barCounter);
  71. }
  72. void TestAdmin::testServerdone() {
  73. int cd;
  74. cd = callADMIN((char*)"serverdone", '1', 0, NULL);
  75. BT_ASSERT(cd == 0);
  76. }
  77. void TestAdmin::testServerPauseAndResume() {
  78. int cd;
  79. BT_ASSERT(callBAR(0) == 0);
  80. userlogc((char*)"call BAR OK");
  81. cd = callADMIN((char*)"pause", '1', 0, NULL);
  82. BT_ASSERT(cd == 0);
  83. userlogc((char*)"pause server OK");
  84. userlogc((char*)"unadvertise on pause server should OK");
  85. cd = callADMIN((char*)"unadvertise,BAR,", '1', 0, NULL);
  86. BT_ASSERT(cd == 0);
  87. userlogc((char*)"advertise on pause server should OK, but service is still pause");
  88. cd = callADMIN((char*)"advertise,BAR,", '1', 0, NULL);
  89. BT_ASSERT(cd == 0);
  90. userlogc((char*)"call BAR should time out after 20 seconds");
  91. BT_ASSERT(callBAR(TPETIME) == -1);
  92. cd = callADMIN((char*)"resume", '1', 0, NULL);
  93. BT_ASSERT(cd == 0);
  94. userlogc((char*)"resume server OK");
  95. ::sleeper(3);
  96. userlogc((char*)"call BAR should OK");
  97. BT_ASSERT(callBAR(0) == 0);
  98. userlogc((char*)"call BAR OK");
  99. }