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

中间件编程

开发平台:

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 "BaseTest.h"
  20. #include "XATMITestSuite.h"
  21. #include "xatmi.h"
  22. #include "malloc.h"
  23. #include "TestTPTypes.h"
  24. void TestTPTypes::setUp() {
  25. userlogc((char*) "TestTPTypes::setUp");
  26. BaseTest::setUp();
  27. // Do local work
  28. m_allocated = NULL;
  29. }
  30. void TestTPTypes::tearDown() {
  31. userlogc((char*) "TestTPTypes::tearDown");
  32. // Do local work
  33. if (m_allocated != NULL) {
  34. ::tpfree( m_allocated);
  35. }
  36. BaseTest::tearDown();
  37. }
  38. void TestTPTypes::test_tptypes_x_octet() {
  39. userlogc((char*) "test_tptypes_x_octet");
  40. m_allocated = ::tpalloc((char*) "X_OCTET", NULL, 10);
  41. BT_ASSERT(m_allocated != NULL);
  42. char* type = (char*) malloc(8);
  43. char* subtype = (char*) malloc(16);
  44. int toTest = ::tptypes(m_allocated, type, subtype);
  45. BT_ASSERT(strcmp(type, "X_OCTET") == 0);
  46. BT_ASSERT(strcmp(subtype, "") == 0);
  47. free(type);
  48. free(subtype);
  49. BT_ASSERT(tperrno == 0);
  50. BT_ASSERT(toTest == 10);
  51. }
  52. void TestTPTypes::test_tptypes_x_common() {
  53. userlogc((char*) "test_tptypes_x_common");
  54. m_allocated = ::tpalloc((char*) "X_COMMON", (char*) "deposit", 0);
  55. BT_ASSERT(m_allocated != NULL);
  56. char* type = (char*) malloc(8);
  57. char* subtype = (char*) malloc(16);
  58. int toTest = ::tptypes(m_allocated, type, subtype);
  59. userlogc("DEPOSITSIZE%d", sizeof(DEPOSIT));
  60. BT_ASSERT(tperrno == 0);
  61. BT_ASSERT(toTest == sizeof(DEPOSIT));
  62. BT_ASSERT(strncmp(type, "X_COMMON", 8) == 0);
  63. BT_ASSERT(strcmp(subtype, "deposit") == 0);
  64. free(type);
  65. free(subtype);
  66. }
  67. void TestTPTypes::test_tptypes_x_common_bigdata() {
  68. userlogc((char*) "test_tptypes_x_common_bigdata");
  69. m_allocated = ::tpalloc((char*) "X_COMMON", (char*) "deposit", 0);
  70. BT_ASSERT(m_allocated != NULL);
  71. char* type = (char*) malloc(8);
  72. char* subtype = (char*) malloc(16);
  73. int toTest = ::tptypes(m_allocated, type, subtype);
  74. BT_ASSERT(tperrno == 0);
  75. BT_ASSERT(toTest == sizeof(DEPOSIT));
  76. BT_ASSERT(strncmp(type, "X_COMMON", 8) == 0);
  77. BT_ASSERT(strcmp(subtype, "deposit") == 0);
  78. free(type);
  79. free(subtype);
  80. }
  81. void TestTPTypes::test_tptypes_x_c_type() {
  82. userlogc((char*) "test_tptypes_x_c_type");
  83. m_allocated = ::tpalloc((char*) "X_C_TYPE", (char*) "acct_info", 0);
  84. BT_ASSERT(m_allocated != NULL);
  85. char* type = (char*) malloc(8);
  86. char* subtype = (char*) malloc(16);
  87. int toTest = ::tptypes(m_allocated, type, subtype);
  88. userlogc("acct_info SIZE%d", sizeof(ACCT_INFO));
  89. BT_ASSERT(tperrno == 0);
  90. BT_ASSERT(toTest == sizeof(ACCT_INFO));
  91. BT_ASSERT(strncmp(type, "X_C_TYPE", 8) == 0);
  92. BT_ASSERT(strcmp(subtype, "acct_info") == 0);
  93. free(type);
  94. free(subtype);
  95. }
  96. void TestTPTypes::test_tptypes_x_c_type_bigdata() {
  97. userlogc((char*) "test_tptypes_x_c_type_bigdata");
  98. m_allocated = ::tpalloc((char*) "X_C_TYPE", (char*) "acct_info", 0);
  99. BT_ASSERT(m_allocated != NULL);
  100. char* type = (char*) malloc(8);
  101. char* subtype = (char*) malloc(16);
  102. int toTest = ::tptypes(m_allocated, type, subtype);
  103. BT_ASSERT(tperrno == 0);
  104. BT_ASSERT(toTest == sizeof(ACCT_INFO));
  105. BT_ASSERT(strncmp(type, "X_C_TYPE", 8) == 0);
  106. BT_ASSERT(strcmp(subtype, "acct_info") == 0);
  107. free(type);
  108. free(subtype);
  109. }
  110. // 8.2
  111. void TestTPTypes::test_tptypes_unallocated() {
  112. userlogc((char*) "test_tptypes_unallocated");
  113. char* type = (char*) malloc(8);
  114. char* subtype = (char*) malloc(16);
  115. int toTest = ::tptypes((char*) "test", type, subtype);
  116. BT_ASSERT(tperrno == TPEINVAL);
  117. BT_ASSERT(toTest == -1);
  118. free(type);
  119. free(subtype);
  120. }
  121. void TestTPTypes::test_tptypes_null_ptr() {
  122. userlogc((char*) "test_tptypes_null_ptr");
  123. char* type = (char*) malloc(8);
  124. char* subtype = (char*) malloc(16);
  125. int toTest = ::tptypes(NULL, type, subtype);
  126. BT_ASSERT(tperrno == TPEINVAL);
  127. BT_ASSERT(toTest == -1);
  128. free(type);
  129. free(subtype);
  130. }
  131. void TestTPTypes::test_tptypes_null_type() {
  132. userlogc((char*) "test_tptypes_null_type");
  133. m_allocated = ::tpalloc((char*) "X_COMMON", (char*) "deposit", 0);
  134. BT_ASSERT(m_allocated != NULL);
  135. BT_ASSERT(tperrno == 0);
  136. char* subtype = (char*) malloc(16);
  137. int toTest = ::tptypes(m_allocated, NULL, subtype);
  138. BT_ASSERT(tperrno == 0);
  139. BT_ASSERT(toTest == sizeof(DEPOSIT));
  140. BT_ASSERT(strcmp(subtype, "deposit") == 0);
  141. free(subtype);
  142. }
  143. void TestTPTypes::test_tptypes_null_subtype() {
  144. userlogc((char*) "test_tptypes_null_subtype");
  145. m_allocated = ::tpalloc((char*) "X_COMMON", (char*) "deposit", 0);
  146. BT_ASSERT(m_allocated != NULL);
  147. char* type = (char*) malloc(8);
  148. int toTest = ::tptypes(m_allocated, type, NULL);
  149. BT_ASSERT(tperrno == 0);
  150. BT_ASSERT(toTest == sizeof(DEPOSIT));
  151. BT_ASSERT(strncmp(type, "X_COMMON", 8) == 0);
  152. free(type);
  153. }
  154. void TestTPTypes::test_tptypes_max_type() {
  155. userlogc((char*) "test_tptypes_max_type");
  156. m_allocated = ::tpalloc((char*) "X_COMMON", (char*) "deposit", 0);
  157. BT_ASSERT(m_allocated != NULL);
  158. char* type = (char*) malloc(8);
  159. int toTest = ::tptypes(m_allocated, type, NULL);
  160. BT_ASSERT(tperrno == 0);
  161. BT_ASSERT(toTest == sizeof(DEPOSIT));
  162. BT_ASSERT(strncmp(type, "X_COMMON", 8) == 0);
  163. free(type);
  164. }
  165. void TestTPTypes::test_tptypes_max_subtype() {
  166. userlogc((char*) "test_tptypes_max_subtype");
  167. m_allocated = ::tpalloc((char*) "X_COMMON", (char*) "1234567890123456", 0);
  168. BT_ASSERT(m_allocated != NULL);
  169. char* subtype = (char*) malloc(16);
  170. int toTest = ::tptypes(m_allocated, NULL, subtype);
  171. BT_ASSERT(tperrno == 0);
  172. BT_ASSERT(strncmp(subtype, "1234567890123456", 16) == 0);
  173. BT_ASSERT(toTest == 10);
  174. free(subtype);
  175. }
  176. void TestTPTypes::test_tptypes_small_type() { // cannot be tested as we can't find how big the memory is
  177. userlogc((char*) "test_tptypes_small_type");
  178. m_allocated = ::tpalloc((char*) "X_COMMON", (char*) "deposit", 0);
  179. BT_ASSERT(m_allocated != NULL);
  180. char* type = (char*) malloc(7);
  181. int toTest = ::tptypes(m_allocated, type, NULL);
  182. BT_ASSERT(tperrno == 0);
  183. BT_ASSERT(toTest == sizeof(DEPOSIT));
  184. BT_ASSERT(strncmp(type, "X_COMMON", 8) == 0);
  185. BT_ASSERT(strncmp(type, "X_COMMO", 7) == 0);
  186. free(type);
  187. }
  188. void TestTPTypes::test_tptypes_small_subtype() { // cannot be tested as we can't find how big the memory is
  189. userlogc((char*) "test_tptypes_small_subtype");
  190. m_allocated = ::tpalloc((char*) "X_COMMON", (char*) "1234567890123456", 0);
  191. BT_ASSERT(m_allocated != NULL);
  192. char* subtype = (char*) malloc(15);
  193. int toTest = ::tptypes(m_allocated, NULL, subtype);
  194. BT_ASSERT(tperrno == 0);
  195. BT_ASSERT(strncmp(subtype, "1234567890123456", 16) == 0);
  196. BT_ASSERT(strncmp(subtype, "123456789012345", 15) == 0);
  197. BT_ASSERT(toTest == 10);
  198. free(subtype);
  199. }
  200. void TestTPTypes::test_tptypes_large_type() {
  201. userlogc((char*) "test_tptypes_large_type");
  202. m_allocated = ::tpalloc((char*) "X_COMMON", (char*) "deposit", 0);
  203. BT_ASSERT(m_allocated != NULL);
  204. char* type = (char*) malloc(9);
  205. int toTest = ::tptypes(m_allocated, type, NULL);
  206. BT_ASSERT(tperrno == 0);
  207. BT_ASSERT(toTest == sizeof(DEPOSIT));
  208. BT_ASSERT(strncmp(type, "X_COMMON", 8) == 0);
  209. free(type);
  210. }
  211. void TestTPTypes::test_tptypes_large_subtype() {
  212. userlogc((char*) "test_tptypes_large_subtype");
  213. m_allocated = ::tpalloc((char*) "X_COMMON", (char*) "1234567890123456", 0);
  214. BT_ASSERT(m_allocated != NULL);
  215. char* subtype = (char*) malloc(17);
  216. int toTest = ::tptypes(m_allocated, NULL, subtype);
  217. BT_ASSERT(tperrno == 0);
  218. BT_ASSERT(toTest == 10);
  219. BT_ASSERT(strncmp(subtype, "1234567890123456", 16) == 0);
  220. free(subtype);
  221. }