check_stack.c 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. /*
  2. ============================================================================
  3. Name : opcuaServer.c
  4. Author :
  5. Version :
  6. Copyright : Your copyright notice
  7. Description :
  8. ============================================================================
  9. */
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12. #include "../src/opcua_transportLayer.h"
  13. #include "../src/opcua_advancedDatatypes.h"
  14. #include "check.h"
  15. START_TEST(test_getPacketType_validParameter)
  16. {
  17. char buf[] = {'C','L','O'};
  18. AD_RawMessage rawMessage;
  19. rawMessage.message = buf;
  20. rawMessage.length = 3;
  21. ck_assert_int_eq(TL_getPacketType(&rawMessage),packetType_CLO);
  22. }
  23. END_TEST
  24. START_TEST(test_decodeRequestHeader_validParameter)
  25. {
  26. char testMessage = {0x00,0x00,0x72,0xf1,0xdc,0xc9,0x87,0x0b,
  27. 0xcf,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
  28. 0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,
  29. 0x00,0x00,0x00,0x00,0x00};
  30. AD_RawMessage rawMessage;
  31. rawMessage.message = testMessage;
  32. rawMessage.length = 29;
  33. Int32 position = 0;
  34. T_RequestHeader requestHeader;
  35. decodeRequestHeader(rawMessage,&position,requestHeader);
  36. ck_assert_int_eq(requestHeader.authenticationToken.EncodingByte,0);
  37. ck_assert_int_eq(requestHeader.returnDiagnostics,0);
  38. ck_assert_int_eq(requestHeader.authenticationToken.EncodingByte,0);
  39. }
  40. END_TEST
  41. START_TEST(test_binaryEncDec_encoding)
  42. {
  43. AD_RawMessage rawMessage;
  44. Int32 position = 0;
  45. //EncodeByte
  46. char testChar = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  47. rawMessage.message = &testChar;
  48. Byte testByte = 0x08;
  49. rawMessage.length = 0;
  50. position = 0;
  51. encodeByte(testByte, &position, &rawMessage);
  52. ck_assert_int_eq(rawMessage.message[0], 0x08);
  53. ck_assert_int_eq(rawMessage.length, 1);
  54. ck_assert_int_eq(position, 1);
  55. //EncodeUInt16
  56. char testChar1 = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  57. rawMessage.message = &testChar1;
  58. UInt16 testUInt16 = 0XABCD;
  59. rawMessage.length = 0;
  60. position = 0;
  61. encodeUInt16(testUInt16, &position, &rawMessage);
  62. ck_assert_int_eq(rawMessage.length, 2);
  63. ck_assert_int_eq(position, 2);
  64. ck_assert_int_eq((Byte) rawMessage.message[1], 0xAB);
  65. ck_assert_int_eq((Byte) rawMessage.message[0], 0xCD);
  66. }
  67. END_TEST
  68. Suite* TL_testSuite_getPacketType(void)
  69. {
  70. Suite *s = suite_create("getPacketType");
  71. TCase *tc_core = tcase_create("Core");
  72. tcase_add_test(tc_core,test_getPacketType_validParameter);
  73. suite_add_tcase(s,tc_core);
  74. return s;
  75. }
  76. Suite* TL_testSuite_encode(void)
  77. {
  78. Suite *s = suite_create("encoding");
  79. TCase *tc_core = tcase_create("Core");
  80. tcase_add_test(tc_core,test_binaryEncDec_encoding);
  81. suite_add_tcase(s,tc_core);
  82. return s;
  83. }
  84. /*
  85. Suite* TL_<TESTSUITENAME>(void)
  86. {
  87. Suite *s = suite_create("<TESTSUITENAME>");
  88. TCase *tc_core = tcase_create("Core");
  89. tcase_add_test(tc_core,<TEST_NAME>);
  90. suite_add_tcase(s,tc_core);
  91. return s;
  92. }
  93. */
  94. int main (void)
  95. {
  96. int number_failed;
  97. Suite *s = TL_testSuite_getPacketType();
  98. SRunner *sr = srunner_create(s);
  99. srunner_run_all(sr,CK_NORMAL);
  100. number_failed = srunner_ntests_failed(sr);
  101. srunner_free(sr);
  102. s = TL_testSuite_encode();
  103. sr = srunner_create(s);
  104. srunner_run_all(sr,CK_NORMAL);
  105. number_failed += srunner_ntests_failed(sr);
  106. srunner_free(sr);
  107. /* <TESTSUITE_TEMPLATE>
  108. s = <TESTSUITENAME>;
  109. sr = srunner_create(s);
  110. srunner_run_all(sr,CK_NORMAL);
  111. number_failed += srunner_ntests_failed(sr);
  112. srunner_free(sr);
  113. */
  114. return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
  115. }