|
@@ -65,92 +65,95 @@ TEST(EndianConversion, GetLintFromMessage) {
|
|
|
|
|
|
|
|
TEST(EndianConversion, AddIntToMessage) {
|
|
TEST(EndianConversion, AddIntToMessage) {
|
|
|
CipUint value_to_add_to_message = 0x5499;
|
|
CipUint value_to_add_to_message = 0x5499;
|
|
|
- CipOctet message[2];
|
|
|
|
|
- CipOctet *message_pointer = message;
|
|
|
|
|
|
|
+ ENIPMessage message;
|
|
|
|
|
+ InitializeENIPMessage(&message);
|
|
|
|
|
|
|
|
- AddIntToMessage(value_to_add_to_message, &message_pointer);
|
|
|
|
|
|
|
+ AddIntToMessage(value_to_add_to_message, &message);
|
|
|
|
|
|
|
|
- BYTES_EQUAL(0x99, message[0]);
|
|
|
|
|
- BYTES_EQUAL(0x54, message[1]);
|
|
|
|
|
|
|
+ BYTES_EQUAL(0x99, message.message_buffer[0]);
|
|
|
|
|
+ BYTES_EQUAL(0x54, message.message_buffer[1]);
|
|
|
|
|
|
|
|
- POINTERS_EQUAL(message + 2, message_pointer)
|
|
|
|
|
|
|
+ POINTERS_EQUAL(message.message_buffer + 2, message.current_message_position)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
TEST(EndianConversion, AddDintToMessage) {
|
|
TEST(EndianConversion, AddDintToMessage) {
|
|
|
CipUdint value_to_add_to_message = 0x25E0C459;
|
|
CipUdint value_to_add_to_message = 0x25E0C459;
|
|
|
- CipOctet message[4];
|
|
|
|
|
- CipOctet *message_pointer = message;
|
|
|
|
|
|
|
+ ENIPMessage message;
|
|
|
|
|
+ InitializeENIPMessage(&message);
|
|
|
|
|
|
|
|
- AddDintToMessage(value_to_add_to_message, &message_pointer);
|
|
|
|
|
|
|
+ AddDintToMessage(value_to_add_to_message, &message);
|
|
|
|
|
|
|
|
- BYTES_EQUAL(0x59, message[0]);
|
|
|
|
|
- BYTES_EQUAL(0xC4, message[1]);
|
|
|
|
|
- BYTES_EQUAL(0xE0, message[2]);
|
|
|
|
|
- BYTES_EQUAL(0x25, message[3]);
|
|
|
|
|
|
|
+ BYTES_EQUAL(0x59, message.message_buffer[0]);
|
|
|
|
|
+ BYTES_EQUAL(0xC4, message.message_buffer[1]);
|
|
|
|
|
+ BYTES_EQUAL(0xE0, message.message_buffer[2]);
|
|
|
|
|
+ BYTES_EQUAL(0x25, message.message_buffer[3]);
|
|
|
|
|
|
|
|
- POINTERS_EQUAL(message + 4, message_pointer)
|
|
|
|
|
|
|
+ POINTERS_EQUAL(message.message_buffer + 4, message.current_message_position)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
TEST(EndianConversion, AddLintToMessage) {
|
|
TEST(EndianConversion, AddLintToMessage) {
|
|
|
CipLint value_to_add_to_message = 0x2D2AEF0B84095230;
|
|
CipLint value_to_add_to_message = 0x2D2AEF0B84095230;
|
|
|
- CipOctet message[8];
|
|
|
|
|
- CipOctet *message_pointer = message;
|
|
|
|
|
|
|
+ ENIPMessage message;
|
|
|
|
|
+ InitializeENIPMessage(&message);
|
|
|
|
|
|
|
|
- AddLintToMessage(value_to_add_to_message, &message_pointer);
|
|
|
|
|
|
|
+ AddLintToMessage(value_to_add_to_message, &message);
|
|
|
|
|
|
|
|
/* Expected message from highest to lowest byte [30][52][09][84][0B][EF][2A][2D] */
|
|
/* Expected message from highest to lowest byte [30][52][09][84][0B][EF][2A][2D] */
|
|
|
- BYTES_EQUAL(0x2D, message[0]);
|
|
|
|
|
- BYTES_EQUAL(0x2A, message[1]);
|
|
|
|
|
- BYTES_EQUAL(0xEF, message[2]);
|
|
|
|
|
- BYTES_EQUAL(0x0B, message[3]);
|
|
|
|
|
- BYTES_EQUAL(0x84, message[4]);
|
|
|
|
|
- BYTES_EQUAL(0x09, message[5]);
|
|
|
|
|
- BYTES_EQUAL(0x52, message[6]);
|
|
|
|
|
- BYTES_EQUAL(0x30, message[7]);
|
|
|
|
|
-
|
|
|
|
|
- POINTERS_EQUAL(message + 8, message_pointer)
|
|
|
|
|
|
|
+ BYTES_EQUAL(0x2D, message.message_buffer[0]);
|
|
|
|
|
+ BYTES_EQUAL(0x2A, message.message_buffer[1]);
|
|
|
|
|
+ BYTES_EQUAL(0xEF, message.message_buffer[2]);
|
|
|
|
|
+ BYTES_EQUAL(0x0B, message.message_buffer[3]);
|
|
|
|
|
+ BYTES_EQUAL(0x84, message.message_buffer[4]);
|
|
|
|
|
+ BYTES_EQUAL(0x09, message.message_buffer[5]);
|
|
|
|
|
+ BYTES_EQUAL(0x52, message.message_buffer[6]);
|
|
|
|
|
+ BYTES_EQUAL(0x30, message.message_buffer[7]);
|
|
|
|
|
+
|
|
|
|
|
+ POINTERS_EQUAL(message.message_buffer + 8, message.current_message_position)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
TEST(EndianConversion, EncapsulateIpAddress) {
|
|
TEST(EndianConversion, EncapsulateIpAddress) {
|
|
|
- CipOctet ip_message[8];
|
|
|
|
|
- CipOctet *ip_message_ponter = ip_message;
|
|
|
|
|
|
|
+ ENIPMessage message;
|
|
|
|
|
+ InitializeENIPMessage(&message);
|
|
|
|
|
|
|
|
DetermineEndianess();
|
|
DetermineEndianess();
|
|
|
|
|
|
|
|
- EncapsulateIpAddress(0xAF12, 0x25E0C459, &ip_message_ponter);
|
|
|
|
|
|
|
+ EncapsulateIpAddress(0xAF12, 0x25E0C459, &message);
|
|
|
|
|
|
|
|
- BYTES_EQUAL(AF_INET >> 8, ip_message[0]);
|
|
|
|
|
- BYTES_EQUAL(AF_INET, ip_message[1]);
|
|
|
|
|
- BYTES_EQUAL(0x12, ip_message[2]);
|
|
|
|
|
- BYTES_EQUAL(0xAF, ip_message[3]);
|
|
|
|
|
- BYTES_EQUAL(0x59, ip_message[4]);
|
|
|
|
|
- BYTES_EQUAL(0xC4, ip_message[5]);
|
|
|
|
|
- BYTES_EQUAL(0xE0, ip_message[6]);
|
|
|
|
|
- BYTES_EQUAL(0x25, ip_message[7]);
|
|
|
|
|
|
|
+ BYTES_EQUAL(AF_INET >> 8, message.message_buffer[0]);
|
|
|
|
|
+ BYTES_EQUAL(AF_INET, message.message_buffer[1]);
|
|
|
|
|
+ BYTES_EQUAL(0x12, message.message_buffer[2]);
|
|
|
|
|
+ BYTES_EQUAL(0xAF, message.message_buffer[3]);
|
|
|
|
|
+ BYTES_EQUAL(0x59, message.message_buffer[4]);
|
|
|
|
|
+ BYTES_EQUAL(0xC4, message.message_buffer[5]);
|
|
|
|
|
+ BYTES_EQUAL(0xE0, message.message_buffer[6]);
|
|
|
|
|
+ BYTES_EQUAL(0x25, message.message_buffer[7]);
|
|
|
|
|
+
|
|
|
|
|
+ POINTERS_EQUAL(message.message_buffer + 8, message.current_message_position)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
TEST(EndianConversion, MoveMessageNOctets) {
|
|
TEST(EndianConversion, MoveMessageNOctets) {
|
|
|
- const CipOctet message[] = "This is a test message";
|
|
|
|
|
- const CipOctet *message_runner = message;
|
|
|
|
|
|
|
+ ENIPMessage message;
|
|
|
|
|
+ InitializeENIPMessage(&message);
|
|
|
|
|
|
|
|
- MoveMessageNOctets(4, &message_runner);
|
|
|
|
|
|
|
+ MoveMessageNOctets(4, &message);
|
|
|
|
|
|
|
|
- POINTERS_EQUAL(message + 4, message_runner);
|
|
|
|
|
|
|
+ POINTERS_EQUAL(message.message_buffer + 4, message.current_message_position);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
TEST(EndianConversion, FillNextNMEssageOctetsWith) {
|
|
TEST(EndianConversion, FillNextNMEssageOctetsWith) {
|
|
|
- CipOctet message[8];
|
|
|
|
|
- CipOctet *message_runner = message;
|
|
|
|
|
- memset(message, 15, 8);
|
|
|
|
|
-
|
|
|
|
|
- FillNextNMessageOctetsWith(0, 8, &message_runner);
|
|
|
|
|
- BYTES_EQUAL(0, message_runner[0]);
|
|
|
|
|
- BYTES_EQUAL(0, message_runner[1]);
|
|
|
|
|
- BYTES_EQUAL(0, message_runner[2]);
|
|
|
|
|
- BYTES_EQUAL(0, message_runner[3]);
|
|
|
|
|
- BYTES_EQUAL(0, message_runner[4]);
|
|
|
|
|
- BYTES_EQUAL(0, message_runner[5]);
|
|
|
|
|
- BYTES_EQUAL(0, message_runner[6]);
|
|
|
|
|
- BYTES_EQUAL(0, message_runner[7]);
|
|
|
|
|
|
|
+ ENIPMessage message;
|
|
|
|
|
+ InitializeENIPMessage(&message);
|
|
|
|
|
+ memset(message.message_buffer, 15, 8);
|
|
|
|
|
+
|
|
|
|
|
+ FillNextNMessageOctetsWith(0, 8, &message);
|
|
|
|
|
+ BYTES_EQUAL(0, message.message_buffer[0]);
|
|
|
|
|
+ BYTES_EQUAL(0, message.message_buffer[1]);
|
|
|
|
|
+ BYTES_EQUAL(0, message.message_buffer[2]);
|
|
|
|
|
+ BYTES_EQUAL(0, message.message_buffer[3]);
|
|
|
|
|
+ BYTES_EQUAL(0, message.message_buffer[4]);
|
|
|
|
|
+ BYTES_EQUAL(0, message.message_buffer[5]);
|
|
|
|
|
+ BYTES_EQUAL(0, message.message_buffer[6]);
|
|
|
|
|
+ BYTES_EQUAL(0, message.message_buffer[7]);
|
|
|
|
|
+ POINTERS_EQUAL(message.message_buffer, message.current_message_position);
|
|
|
|
|
|
|
|
}
|
|
}
|