cipstringtests.cpp 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. /*******************************************************************************
  2. * Copyright (c) 2020, Rockwell Automation, Inc.
  3. * All rights reserved.
  4. *
  5. *****************************************************I*************************/
  6. #include <CppUTest/TestHarness.h>
  7. #include <stdint.h>
  8. #include <string.h>
  9. extern "C" {
  10. #include "opener_api.h"
  11. #include "cipstring.h"
  12. }
  13. TEST_GROUP (CipString) {
  14. };
  15. TEST (CipString, CipStringNClearNullPointer) {
  16. CipStringN *null_ptr = NULL;
  17. ClearCipStringN(null_ptr);
  18. };
  19. TEST (CipString, CipStringNFreeNullPointer) {
  20. CipStringN *null_ptr = NULL;
  21. FreeCipStringN(null_ptr);
  22. };
  23. TEST (CipString, ClearCipStringNWithContent) {
  24. CipStringN *string;
  25. string = (CipStringN *) CipCalloc(sizeof(CipStringN),1);
  26. string->size = 3;
  27. string->length = 10;
  28. string->string = (EipByte *) CipCalloc(10, 3);
  29. CipStringN *returned_ptr = ClearCipStringN(string);
  30. POINTERS_EQUAL(string, returned_ptr);
  31. CHECK_EQUAL(0, string->size);
  32. CHECK_EQUAL(0, string->length);
  33. POINTERS_EQUAL(NULL, string->string);
  34. FreeCipStringN(string);
  35. };
  36. TEST (CipString, FreeCipStringNWithContent) {
  37. CipStringN *string;
  38. string = (CipStringN *) CipCalloc(sizeof(CipStringN),1);
  39. string->size = 3;
  40. string->length = 10;
  41. string->string = (EipByte *) CipCalloc(10, 3);
  42. FreeCipStringN(string);
  43. };
  44. TEST (CipString, CreateStringNFromData) {
  45. const CipOctet data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
  46. CipStringN *string;
  47. string = (CipStringN *) CipCalloc(1, sizeof(CipStringN) );
  48. SetCipStringNByData(string, 4, 3, data);
  49. CHECK_EQUAL(3, string->size);
  50. CHECK_EQUAL(4, string->length);
  51. MEMCMP_EQUAL(data, string->string, sizeof(data) );
  52. FreeCipStringN(string);
  53. }
  54. TEST (CipString, CreateStringNFromCString) {
  55. const char data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0};
  56. CipStringN *string;
  57. string = (CipStringN *) CipCalloc(1, sizeof(CipStringN) );
  58. SetCipStringNByCstr(string, data, 3);
  59. CHECK_EQUAL(3, string->size);
  60. CHECK_EQUAL(4, string->length);
  61. MEMCMP_EQUAL(data, string->string, strlen(data) );
  62. FreeCipStringN(string);
  63. }
  64. /*** CipString2 ***/
  65. TEST (CipString, CipString2ClearNullPointer) {
  66. CipString2 *null_ptr = NULL;
  67. ClearCipString2(null_ptr);
  68. };
  69. TEST (CipString, CipString2FreeNullPointer) {
  70. CipString2 *null_ptr = NULL;
  71. FreeCipString2(null_ptr);
  72. };
  73. TEST (CipString, ClearCipString2WithContent) {
  74. CipString2 *string;
  75. string = (CipString2 *) CipCalloc(sizeof(CipString2),1);
  76. string->length = 10;
  77. string->string = (CipWord *) CipCalloc(10, 2);
  78. CipString2 *returned_ptr = ClearCipString2(string);
  79. POINTERS_EQUAL(string, returned_ptr);
  80. CHECK_EQUAL(0, string->length);
  81. POINTERS_EQUAL(NULL, string->string);
  82. FreeCipString2(string);
  83. };
  84. TEST (CipString, FreeCipString2WithContent) {
  85. CipString2 *string;
  86. string = (CipString2 *) CipCalloc(sizeof(CipString2),1);
  87. string->length = 10;
  88. string->string = (CipWord *) CipCalloc(10, 2);
  89. FreeCipString2(string);
  90. };
  91. TEST (CipString, CreateString2FromData) {
  92. const CipOctet data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
  93. CipString2 *string;
  94. string = (CipString2 *) CipCalloc(1, sizeof(CipString2) );
  95. SetCipString2ByData(string, 6, data);
  96. CHECK_EQUAL(6, string->length);
  97. MEMCMP_EQUAL(data, string->string, sizeof(data) );
  98. FreeCipString2(string);
  99. }
  100. TEST (CipString, CreateString2FromCString) {
  101. const char data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0};
  102. CipString2 *string;
  103. string = (CipString2 *) CipCalloc(1, sizeof(CipString2) );
  104. SetCipString2ByCstr(string, data);
  105. CHECK_EQUAL(6, string->length);
  106. MEMCMP_EQUAL(data, string->string, strlen(data) );
  107. FreeCipString2(string);
  108. }
  109. /*** CipString ***/
  110. TEST (CipString, CipStringClearNullPointer) {
  111. CipString *null_ptr = NULL;
  112. ClearCipString(null_ptr);
  113. };
  114. TEST (CipString, CipStringFreeNullPointer) {
  115. CipString *null_ptr = NULL;
  116. FreeCipString(null_ptr);
  117. };
  118. TEST (CipString, ClearCipStringWithContent) {
  119. CipString *string;
  120. string = (CipString *) CipCalloc(sizeof(CipString),1);
  121. string->length = 10;
  122. string->string = (CipByte *) CipCalloc(10, 1);
  123. CipString *returned_ptr = ClearCipString(string);
  124. POINTERS_EQUAL(string, returned_ptr);
  125. CHECK_EQUAL(0, string->length);
  126. POINTERS_EQUAL(NULL, string->string);
  127. FreeCipString(string);
  128. };
  129. TEST (CipString, FreeCipStringWithContent) {
  130. CipString *string;
  131. string = (CipString *) CipCalloc(sizeof(CipString),1);
  132. string->length = 10;
  133. string->string = (CipByte *) CipCalloc(10, 1);
  134. FreeCipString(string);
  135. };
  136. TEST (CipString, CreateStringFromData) {
  137. const CipOctet data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
  138. CipString *string;
  139. string = (CipString *) CipCalloc(1, sizeof(CipString) );
  140. SetCipStringByData(string, sizeof(data), data);
  141. CHECK_EQUAL(12, string->length);
  142. MEMCMP_EQUAL(data, string->string, sizeof(data) );
  143. FreeCipString(string);
  144. }
  145. TEST (CipString, CreateStringFromCString) {
  146. const char data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0};
  147. CipString *string;
  148. string = (CipString *) CipCalloc(1, sizeof(CipString) );
  149. SetCipStringByCstr(string, data);
  150. CHECK_EQUAL(12, string->length);
  151. MEMCMP_EQUAL(data, string->string, strlen(data) );
  152. FreeCipString(string);
  153. }
  154. /*** CipShortString ***/
  155. TEST (CipString, CipShortStringClearNullPointer) {
  156. CipShortString *null_ptr = NULL;
  157. ClearCipShortString(null_ptr);
  158. };
  159. TEST (CipString, CipShortStringFreeNullPointer) {
  160. CipShortString *null_ptr = NULL;
  161. FreeCipShortString(null_ptr);
  162. };
  163. TEST (CipString, ClearCipShortStringWithContent) {
  164. CipShortString *string;
  165. string = (CipShortString *) CipCalloc(sizeof(CipShortString),1);
  166. string->length = 10;
  167. string->string = (CipByte *) CipCalloc(10, 1);
  168. CipShortString *returned_ptr = ClearCipShortString(string);
  169. POINTERS_EQUAL(string, returned_ptr);
  170. CHECK_EQUAL(0, string->length);
  171. POINTERS_EQUAL(NULL, string->string);
  172. FreeCipShortString(string);
  173. };
  174. TEST (CipString, FreeCipShortStringWithContent) {
  175. CipShortString *string;
  176. string = (CipShortString *) CipCalloc(sizeof(CipShortString),1);
  177. string->length = 10;
  178. string->string = (CipByte *) CipCalloc(10, 1);
  179. FreeCipShortString(string);
  180. };
  181. TEST (CipString, CreateShortStringFromData) {
  182. const CipOctet data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
  183. CipShortString *string;
  184. string = (CipShortString *) CipCalloc(1, sizeof(CipShortString) );
  185. SetCipShortStringByData(string, sizeof(data), data);
  186. CHECK_EQUAL(12, string->length);
  187. MEMCMP_EQUAL(data, string->string, sizeof(data) );
  188. FreeCipShortString(string);
  189. }
  190. TEST (CipString, CreateShortStringFromCString) {
  191. const char data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0};
  192. CipShortString *string;
  193. string = (CipShortString *) CipCalloc(1, sizeof(CipShortString) );
  194. SetCipShortStringByCstr(string, data);
  195. CHECK_EQUAL(12, string->length);
  196. MEMCMP_EQUAL(data, string->string, strlen(data) );
  197. FreeCipShortString(string);
  198. }