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

中间件编程

开发平台:

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 "BaseServerTest.h"
  20. #include "xatmi.h"
  21. #include "malloc.h"
  22. #include "TestTPUnadvertise.h"
  23. extern void testtpunadvertise_service(TPSVCINFO *svcinfo);
  24. void TestTPUnadvertise::setUp() {
  25. userlogc((char*) "TestTPUnadvertise::setUp");
  26. sendbuf = NULL;
  27. rcvbuf = NULL;
  28. // Setup server
  29. BaseServerTest::setUp();
  30. int toCheck = tpadvertise((char*) "TestTPUnadvertise",
  31. testtpunadvertise_service);
  32. BT_ASSERT(tperrno == 0);
  33. BT_ASSERT(toCheck != -1);
  34. // Do local work
  35. sendlen = strlen("TestTPUnadvertise") + 1;
  36. rcvlen = sendlen;
  37. sendbuf = (char *) tpalloc((char*) "X_OCTET", NULL, sendlen);
  38. rcvbuf = (char *) tpalloc((char*) "X_OCTET", NULL, rcvlen);
  39. memset(rcvbuf, '', rcvlen);
  40. (void) strcpy(sendbuf, "TestTPUnadvertise");
  41. }
  42. void TestTPUnadvertise::tearDown() {
  43. userlogc((char*) "TestTPUnadvertise::tearDown");
  44. // Do local work
  45. ::tpfree( sendbuf);
  46. ::tpfree( rcvbuf);
  47. tpunadvertise((char*) "TestTPUnadvertise");
  48. // Clean up server
  49. BaseServerTest::tearDown();
  50. }
  51. void TestTPUnadvertise::test_tpunadvertise() {
  52. userlogc((char*) "test_tpunadvertise");
  53. int id = ::tpunadvertise((char*) "TestTPUnadvertise");
  54. BT_ASSERT(tperrno == 0);
  55. BT_ASSERT(tperrno != TPEINVAL);
  56. BT_ASSERT(tperrno != TPENOENT);
  57. BT_ASSERT(tperrno != TPEPROTO);
  58. BT_ASSERT(tperrno != TPESYSTEM);
  59. BT_ASSERT(tperrno != TPEOS);
  60. BT_ASSERT(id != -1);
  61. id = ::tpcall((char*) "TestTPUnadvertise", (char *) sendbuf, sendlen,
  62. (char **) &rcvbuf, &rcvlen, (long) 0);
  63. char* tperrnoS = (char*) malloc(110);
  64. sprintf(tperrnoS, "%d", tperrno);
  65. BT_ASSERT_MESSAGE(tperrnoS, tperrno == TPENOENT);
  66. free(tperrnoS);
  67. BT_ASSERT(id == -1);
  68. BT_ASSERT(strcmp(rcvbuf, "testtpunadvertise_service") != 0);
  69. }
  70. void TestTPUnadvertise::test_tpunadvertise_twice() {
  71. userlogc((char*) "test_tpunadvertise_twice");
  72. int id = ::tpunadvertise((char*) "TestTPUnadvertise");
  73. BT_ASSERT(tperrno == 0);
  74. BT_ASSERT(tperrno != TPEINVAL);
  75. BT_ASSERT(tperrno != TPENOENT);
  76. BT_ASSERT(tperrno != TPEPROTO);
  77. BT_ASSERT(tperrno != TPESYSTEM);
  78. BT_ASSERT(tperrno != TPEOS);
  79. BT_ASSERT(id != -1);
  80. id = ::tpunadvertise((char*) "TestTPUnadvertise");
  81. BT_ASSERT(tperrno == TPENOENT);
  82. BT_ASSERT(id == -1);
  83. }
  84. void TestTPUnadvertise::test_tpunadvertise_null() {
  85. userlogc((char*) "test_tpunadvertise_null");
  86. int id = ::tpunadvertise(NULL);
  87. BT_ASSERT(tperrno == TPEINVAL);
  88. BT_ASSERT(id == -1);
  89. }
  90. void TestTPUnadvertise::test_tpunadvertise_empty() {
  91. userlogc((char*) "test_tpunadvertise_empty");
  92. int id = ::tpunadvertise((char*) "");
  93. BT_ASSERT(tperrno == TPEINVAL);
  94. BT_ASSERT(id == -1);
  95. }
  96. // 8.4
  97. void TestTPUnadvertise::test_tpunadvertise_not_advertised() {
  98. userlogc((char*) "test_tpunadvertise_not_advertised");
  99. int id = ::tpunadvertise((char*) "NONE");
  100. BT_ASSERT(tperrno == TPENOENT);
  101. BT_ASSERT(id == -1);
  102. }
  103. void testtpunadvertise_service(TPSVCINFO *svcinfo) {
  104. userlogc((char*) "testtpunadvertise_service");
  105. char * toReturn = new char[26];
  106. strcpy(toReturn, "testtpunadvertise_service");
  107. // Changed length from 0L to svcinfo->len
  108. tpreturn(TPSUCCESS, 0, toReturn, 25, 0);
  109. delete toReturn;
  110. }