cipforwardopentest.cpp 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /*******************************************************************************
  2. * Copyright (c) 2016, Rockwell Automation, Inc.
  3. * All rights reserved.
  4. *
  5. ******************************************************************************/
  6. #include <CppUTest/TestHarness.h>
  7. #include <stdint.h>
  8. #include <string.h>
  9. extern "C" {
  10. #include "cipforwardopen.h"
  11. }
  12. TEST_GROUP(CipForwardOpen) {
  13. };
  14. CipOctet message[] =
  15. { 0x06, 0x28, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x18,
  16. 0x00, 0x78,
  17. 0x56, 0x34, 0x12, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x62, 0x02, 0x00, 0xff, 0x43,
  18. 0x5a, 0x62,
  19. 0x02, 0x00, 0xff, 0x43, 0xa3, 0x02, 0x20, 0x02, 0x24, 0x01};
  20. TEST(CipForwardOpen, ParseMessage) {
  21. CipOctet *array_address = message;
  22. CipOctet **message_runner = &array_address;
  23. CipForwardOpenData *forward_open_data;
  24. forward_open_data = (CipForwardOpenData *)calloc(1, CipForwardOpenDataSize);
  25. CipForwardOpenGetForwardOpenDataFromMessage(forward_open_data,
  26. (const CipOctet **)message_runner);
  27. CHECK_EQUAL( kCipForwardOpenPriorityTickTimeNormal, CipForwardOpenGetPriorityTickTime(
  28. forward_open_data) );
  29. CHECK_EQUAL( 6, CipForwardOpenGetTickTime(forward_open_data) );
  30. CHECK_EQUAL( 40, CipForwardOpenGetTimeoutTick(forward_open_data) );
  31. CHECK_EQUAL( 2560,
  32. CipForwardOpenGetTimeoutInMilliseconds(forward_open_data) );
  33. CHECK_EQUAL( 0x00000000, CipForwardOpenGetOriginatorToTargetNetworkConnectionId(
  34. forward_open_data) );
  35. CHECK_EQUAL( 0x00000026, CipForwardOpenGetTargetToOriginatorNetworkConnectionId(
  36. forward_open_data) );
  37. CHECK_EQUAL( 0x0026, CipForwardOpenGetConnectionSerialNumber(
  38. forward_open_data) );
  39. CHECK_EQUAL( 0x0018, CipForwardOpenGetOriginatorVendorId(forward_open_data) );
  40. CHECK_EQUAL( 0x12345678,
  41. CipForwardOpenGetOriginatorSerialNumber(forward_open_data) );
  42. CHECK_EQUAL( 4, CipForwardOpenGetTimeoutMultiplier(forward_open_data) );
  43. CHECK_EQUAL( 156250, CipForwardOpenGetOriginatorToTargetRequestedPacketInterval(
  44. forward_open_data) );
  45. CHECK_EQUAL( 0x43ff, CipForwardOpenGetOriginatorToTargetNetworkConnectionParameters(
  46. forward_open_data) );
  47. CHECK_EQUAL( false,
  48. CipForwardOpenGetOriginatorToTargetRedundantOwner(
  49. forward_open_data) );
  50. CHECK_EQUAL( kCipForwardOpenConnectionTypePointToPointConnection, CipForwardOpenGetOriginatorToTargetConnectionType(
  51. forward_open_data) );
  52. CHECK_EQUAL( kCipForwardOpenConnectionPriorityLow, CipForwardOpenGetOriginatorToTargetConnectionPriority(
  53. forward_open_data) );
  54. CHECK_EQUAL( kCipForwardOpenConnectionSizeTypeVariable, CipForwardOpenGetOriginatorToTargetConnectionSizeType(
  55. forward_open_data) );
  56. CHECK_EQUAL( 511,
  57. CipForwardOpenGetOriginatorToTargetConnectionSize(
  58. forward_open_data) );
  59. CHECK_EQUAL( 156250, CipForwardOpenGetTargetToOriginatorRequestedPacketInterval(
  60. forward_open_data) );
  61. CHECK_EQUAL( 0x43ff, CipForwardOpenGetTargetToOriginatorNetworkConnectionParameters(
  62. forward_open_data) );
  63. CHECK_EQUAL( false,
  64. CipForwardOpenGetTargetToOriginatorRedundantOwner(
  65. forward_open_data) );
  66. CHECK_EQUAL( kCipForwardOpenConnectionTypePointToPointConnection, CipForwardOpenGetTargetToOriginatorConnectionType(
  67. forward_open_data) );
  68. CHECK_EQUAL( kCipForwardOpenConnectionPriorityLow, CipForwardOpenGetTargetToOriginatorConnectionPriority(
  69. forward_open_data) );
  70. CHECK_EQUAL( kCipForwardOpenConnectionSizeTypeVariable, CipForwardOpenGetTargetToOriginatorConnectionSizeType(
  71. forward_open_data) );
  72. CHECK_EQUAL( 511,
  73. CipForwardOpenGetTargetToOriginatorConnectionSize(
  74. forward_open_data) );
  75. CHECK_EQUAL( kCipConnectionObjectTransportClassTriggerDirectionServer, CipForwardOpenGetTransportClassTriggerDirection(
  76. forward_open_data) );
  77. CHECK_EQUAL(
  78. kCipConnectionObjectTransportClassTriggerProductionTriggerApplicationObject,
  79. CipForwardOpenGetTransportClassTriggerProductionTrigger(forward_open_data) );
  80. CHECK_EQUAL( kCipConnectionObjectTransportClassTriggerClass3, CipForwardOpenGetTransportClassTriggerClass(
  81. forward_open_data) );
  82. CHECK_EQUAL( 2,
  83. CipForwardOpenGetConnectionPathSizeInWords(forward_open_data) );
  84. const CipOctet expected_connection_path[] = {0x20, 0x02, 0x24, 0x01};
  85. MEMCMP_EQUAL(expected_connection_path,
  86. CipForwardOpenGetConnectionPath(forward_open_data), 4);
  87. free(forward_open_data);
  88. }