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

中间件编程

开发平台:

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 "XATMITestSuite.h"
  20. #include "xatmi.h"
  21. #include "TestTPFree.h"
  22. void TestTPFree::setUp() {
  23. userlogc((char*) "TestTPFree::setUp");
  24. // Start server
  25. BaseTest::setUp();
  26. m_allocated = NULL;
  27. // Do local work
  28. }
  29. void TestTPFree::tearDown() {
  30. userlogc((char*) "TestTPFree::tearDown");
  31. if (m_allocated) {
  32. // Do local work
  33. ::tpfree( m_allocated);
  34. }
  35. // Clean up server
  36. BaseTest::tearDown();
  37. }
  38. // X_OCTET
  39. void TestTPFree::test_tpfree_alloc_x_octet() {
  40. userlogc((char*) "test_tpfree_alloc_x_octet");
  41. m_allocated = tpalloc((char*) "X_OCTET", NULL, 10);
  42. BT_ASSERT(m_allocated != NULL);
  43. ::tpfree( m_allocated);
  44. m_allocated = NULL;
  45. BT_ASSERT(tperrno == 0);
  46. // Once tpfree returns, ptr should not be passed as an argument to any XATMI routine
  47. /*
  48.  char type[8];
  49.  int toTest = ::tptypes(m_allocated, type, NULL);
  50.  BT_ASSERT(tperrno== TPEINVAL);
  51.  BT_ASSERT(toTest == -1);
  52.  BT_ASSERT(strncmp(type, "X_OCTET", 8) != 0);
  53.  */
  54. }
  55. void TestTPFree::test_tpfree_realloc_x_octet() {
  56. userlogc((char*) "test_tpfree_realloc_x_octet");
  57. m_allocated = tpalloc((char*) "X_OCTET", NULL, 10);
  58. BT_ASSERT(m_allocated != NULL);
  59. ::tprealloc(m_allocated, 20);
  60. ::tpfree( m_allocated);
  61. m_allocated = NULL;
  62. BT_ASSERT(tperrno == 0);
  63. // Once tpfree returns, ptr should not be passed as an argument to any XATMI routine
  64. /*
  65.  char type[8];
  66.  int toTest = ::tptypes(m_allocated, type, NULL);
  67.  BT_ASSERT(tperrno== TPEINVAL);
  68.  BT_ASSERT(toTest == -1);
  69.  BT_ASSERT(strncmp(type, "X_OCTET", 8) != 0);
  70.  */
  71. }
  72. void TestTPFree::test_tpfree_free_free_x_octet() {
  73. userlogc((char*) "test_tpfree_free_free_x_octet");
  74. m_allocated = tpalloc((char*) "X_OCTET", NULL, 10);
  75. BT_ASSERT(m_allocated != NULL);
  76. ::tpfree( m_allocated);
  77. m_allocated = NULL;
  78. BT_ASSERT(tperrno == 0);
  79. // Once tpfree returns, ptr should not be passed as an argument to any XATMI routine
  80. /*
  81.  char type[8];
  82.  int toTest = ::tptypes(m_allocated, type, NULL);
  83.  BT_ASSERT(tperrno== TPEINVAL);
  84.  BT_ASSERT(toTest == -1);
  85.  BT_ASSERT(strncmp(type, "X_OCTET", 8) != 0);
  86.  ::tpfree(m_allocated);
  87.  BT_ASSERT(tperrno == 0);
  88.  */
  89. }
  90. // 8.2
  91. void TestTPFree::test_tpfree_nonbuffer() {
  92. userlogc((char*) "test_tpfree_nonbuffer");
  93. char* unallocated = (char*) "nonbuffer";
  94. ::tpfree(unallocated);
  95. BT_ASSERT(tperrno == 0);
  96. BT_ASSERT(strcmp(unallocated, "nonbuffer") == 0);
  97. }
  98. // X_COMMON
  99. void TestTPFree::test_tpfree_alloc_x_common() {
  100. userlogc((char*) "test_tpfree_alloc_x_common");
  101. DEPOSIT *dptr;
  102. dptr = (DEPOSIT*) tpalloc((char*) "X_COMMON", (char*) "deposit", 0);
  103. m_allocated = (char*) dptr;
  104. BT_ASSERT(m_allocated != NULL);
  105. BT_ASSERT(tperrno == 0);
  106. ::tpfree( m_allocated);
  107. m_allocated = NULL;
  108. BT_ASSERT(tperrno == 0);
  109. // Once tpfree returns, ptr should not be passed as an argument to any XATMI routine
  110. /*
  111.  char type[8];
  112.  char subtype[16];
  113.  int toTest = ::tptypes(m_allocated, type, subtype);
  114.  BT_ASSERT(tperrno== TPEINVAL);
  115.  BT_ASSERT(toTest == -1);
  116.  BT_ASSERT(strncmp(type, "X_COMMON", 8) != 0);
  117.  BT_ASSERT(strcmp(subtype, "deposit") != 0);
  118.  */
  119. }
  120. void TestTPFree::test_tpfree_realloc_x_common() {
  121. userlogc((char*) "test_tpfree_realloc_x_common");
  122. DEPOSIT *dptr;
  123. dptr = (DEPOSIT*) tpalloc((char*) "X_COMMON", (char*) "deposit", 0);
  124. m_allocated = (char*) dptr;
  125. BT_ASSERT(m_allocated != NULL);
  126. BT_ASSERT(tperrno == 0);
  127. ::tprealloc(m_allocated, 2048);
  128. ::tpfree( m_allocated);
  129. m_allocated = NULL;
  130. BT_ASSERT(tperrno == 0);
  131. // Once tpfree returns, ptr should not be passed as an argument to any XATMI routine
  132. /*
  133.  char type[8];
  134.  char subtype[16];
  135.  int toTest = ::tptypes(m_allocated, type, subtype);
  136.  BT_ASSERT(tperrno== TPEINVAL);
  137.  BT_ASSERT(toTest == -1);
  138.  BT_ASSERT(strncmp(type, "X_COMMON", 8) != 0);
  139.  BT_ASSERT(strcmp(subtype, "deposit") != 0);
  140.  */
  141. }
  142. void TestTPFree::test_tpfree_free_free_x_common() {
  143. userlogc((char*) "test_tpfree_free_free_x_common");
  144. DEPOSIT *dptr;
  145. dptr = (DEPOSIT*) tpalloc((char*) "X_COMMON", (char*) "deposit", 0);
  146. m_allocated = (char*) dptr;
  147. BT_ASSERT(m_allocated != NULL);
  148. BT_ASSERT(tperrno == 0);
  149. ::tpfree( m_allocated);
  150. m_allocated = NULL;
  151. BT_ASSERT(tperrno == 0);
  152. // Once tpfree returns, ptr should not be passed as an argument to any XATMI routine
  153. /*
  154.  char type[8];
  155.  char subtype[16];
  156.  int toTest = ::tptypes(m_allocated, type, subtype);
  157.  BT_ASSERT(tperrno== TPEINVAL);
  158.  BT_ASSERT(toTest == -1);
  159.  BT_ASSERT(strncmp(type, "X_COMMON", 8) != 0);
  160.  BT_ASSERT(strcmp(subtype, "deposit") != 0);
  161.  ::tpfree(m_allocated);
  162.  BT_ASSERT(tperrno == 0);
  163.  */
  164. }
  165. // X_C_TYPE
  166. void TestTPFree::test_tpfree_alloc_x_c_type() {
  167. userlogc((char*) "test_tpfree_alloc_x_c_type");
  168. ACCT_INFO *aptr;
  169. aptr = (ACCT_INFO*) tpalloc((char*) "X_C_TYPE", (char*) "acct_info", 0);
  170. m_allocated = (char*) aptr;
  171. BT_ASSERT(m_allocated != NULL);
  172. BT_ASSERT(tperrno == 0);
  173. ::tpfree( m_allocated);
  174. m_allocated = NULL;
  175. BT_ASSERT(tperrno == 0);
  176. // Once tpfree returns, ptr should not be passed as an argument to any XATMI routine
  177. /*
  178.  char type[8];
  179.  char subtype[16];
  180.  int toTest = ::tptypes(m_allocated, type, subtype);
  181.  BT_ASSERT(tperrno== TPEINVAL);
  182.  BT_ASSERT(toTest == -1);
  183.  BT_ASSERT(strncmp(type, "X_C_TYPE", 8) != 0);
  184.  BT_ASSERT(strcmp(subtype, "acct_info") != 0);
  185.  */
  186. }
  187. void TestTPFree::test_tpfree_realloc_x_c_type() {
  188. userlogc((char*) "test_tpfree_realloc_x_c_type");
  189. ACCT_INFO *aptr;
  190. aptr = (ACCT_INFO*) tpalloc((char*) "X_C_TYPE", (char*) "acct_info", 0);
  191. m_allocated = (char*) aptr;
  192. BT_ASSERT(m_allocated != NULL);
  193. BT_ASSERT(tperrno == 0);
  194. ::tprealloc(m_allocated, 20);
  195. ::tpfree( m_allocated);
  196. m_allocated = NULL;
  197. BT_ASSERT(tperrno == 0);
  198. // Once tpfree returns, ptr should not be passed as an argument to any XATMI routine
  199. /*
  200.  char type[8];
  201.  char subtype[16];
  202.  int toTest = ::tptypes(m_allocated, type, subtype);
  203.  BT_ASSERT(tperrno== TPEINVAL);
  204.  BT_ASSERT(toTest == -1);
  205.  BT_ASSERT(strncmp(type, "X_C_TYPE", 8) != 0);
  206.  BT_ASSERT(strcmp(subtype, "acct_info") != 0);
  207.  */
  208. }
  209. void TestTPFree::test_tpfree_free_free_x_c_type() {
  210. userlogc((char*) "test_tpfree_free_free_x_c_type");
  211. ACCT_INFO *aptr;
  212. aptr = (ACCT_INFO*) tpalloc((char*) "X_C_TYPE", (char*) "acct_info", 0);
  213. m_allocated = (char*) aptr;
  214. BT_ASSERT(m_allocated != NULL);
  215. BT_ASSERT(tperrno == 0);
  216. ::tpfree( m_allocated);
  217. m_allocated = NULL;
  218. BT_ASSERT(tperrno == 0);
  219. // Once tpfree returns, ptr should not be passed as an argument to any XATMI routine
  220. /*
  221.  char type[8];
  222.  char subtype[16];
  223.  int toTest = ::tptypes(m_allocated, type, subtype);
  224.  BT_ASSERT(tperrno== TPEINVAL);
  225.  BT_ASSERT(toTest == -1);
  226.  BT_ASSERT(strncmp(type, "X_C_TYPE", 8) != 0);
  227.  BT_ASSERT(strcmp(subtype, "acct_info") != 0);
  228.  ::tpfree(m_allocated);
  229.  BT_ASSERT(tperrno == 0);
  230.  */
  231. }