cipcommontests.cpp 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*******************************************************************************
  2. * Copyright (c) 2018, 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 "opener_api.h"
  11. }
  12. ENIPMessage message; /**< Test variable holds ENIP message*/
  13. TEST_GROUP(CipCommon) {
  14. void setup() {
  15. InitializeENIPMessage(&message);
  16. }
  17. };
  18. TEST(CipCommon, EncodeCipBool) {
  19. const CipBool value = false;
  20. EncodeCipBool(&value, &message);
  21. CHECK_EQUAL(0, *(CipBool *)message.message_buffer);
  22. POINTERS_EQUAL(message.message_buffer + 1, message.current_message_position);
  23. }
  24. TEST(CipCommon, EncodeCipByte) {
  25. const CipByte value = 173U;
  26. EncodeCipBool(&value, &message);
  27. CHECK_EQUAL(value, *(CipByte *)message.message_buffer);
  28. POINTERS_EQUAL(message.message_buffer + 1, message.current_message_position);
  29. }
  30. TEST(CipCommon, EncodeCipWord) {
  31. const CipWord value = 53678U;
  32. EncodeCipWord(&value, &message);
  33. CHECK_EQUAL( value, *(CipWord *)(message.message_buffer) );
  34. POINTERS_EQUAL(message.message_buffer + 2, message.current_message_position);
  35. }
  36. TEST(CipCommon, EncodeCipDword) {
  37. const CipDword value = 5357678U;
  38. EncodeCipDword(&value, &message);
  39. CHECK_EQUAL( value, *(CipDword *)(message.message_buffer) );
  40. POINTERS_EQUAL(message.message_buffer + 4, message.current_message_position);
  41. }
  42. TEST(CipCommon, EncodeCipLword) {
  43. const CipLword value = 8353457678U;
  44. EncodeCipLword(&value, &message);
  45. CHECK_EQUAL( value, *(CipLword *)(message.message_buffer) );
  46. POINTERS_EQUAL(message.message_buffer + 8, message.current_message_position);
  47. }
  48. TEST(CipCommon, EncodeCipUsint) {
  49. const CipUsint value = 212U;
  50. EncodeCipBool(&value, &message);
  51. CHECK_EQUAL(value, *(CipUsint *)message.message_buffer);
  52. POINTERS_EQUAL(message.message_buffer + 1, message.current_message_position);
  53. }
  54. TEST(CipCommon, EncodeCipUint) {
  55. const CipUint value = 42568U;
  56. EncodeCipUint(&value, &message);
  57. CHECK_EQUAL( value, *(CipUint *)(message.message_buffer) );
  58. POINTERS_EQUAL(message.message_buffer + 2, message.current_message_position);
  59. }
  60. TEST(CipCommon, EncodeCipUdint) {
  61. const CipUdint value = 1653245U;
  62. EncodeCipUdint(&value, &message);
  63. CHECK_EQUAL( value, *(CipUdint *)(message.message_buffer) );
  64. POINTERS_EQUAL(message.message_buffer + 4, message.current_message_position);
  65. }
  66. TEST(CipCommon, EncodeCipUlint) {
  67. const CipUlint value = 5357678U;
  68. EncodeCipUlint(&value, &message);
  69. CHECK_EQUAL( value, *(CipUlint *)(message.message_buffer) );
  70. POINTERS_EQUAL(message.message_buffer + 8, message.current_message_position);
  71. }