| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- /*******************************************************************************
- * Copyright (c) 2009, Rockwell Automation, Inc.
- * All rights reserved.
- *
- ******************************************************************************/
- #include <CppUTest/TestHarness.h>
- #include <stdint.h>
- #include <string.h>
- extern "C" {
- #include "cipepath.h"
- }
- TEST_GROUP(CipEpath) {
- };
- /** Segment type tests **/
- TEST(CipEpath, GetSegmentTypePortSegment) {
- const char message[] = {0x00};
- SegmentType segment_type = GetPathSegmentType(message);
- CHECK_EQUAL(kSegmentTypePortSegment, segment_type);
- }
- TEST(CipEpath, GetSegmentTypeLogicalSegment) {
- const char message[] = {0x20};
- SegmentType segment_type = GetPathSegmentType(message);
- CHECK_EQUAL(kSegmentTypeLogicalSegment, segment_type);
- }
- TEST(CipEpath, GetSegmentTypeNetworkSegment) {
- const char message[] = {0x40};
- SegmentType segment_type = GetPathSegmentType(message);
- CHECK_EQUAL(kSegmentTypeNetworkSegment, segment_type);
- }
- TEST(CipEpath, GetSegmentTypeSymbolicSegment) {
- const char message[] = {0x60};
- SegmentType segment_type = GetPathSegmentType(message);
- CHECK_EQUAL(kSegmentTypeSymbolicSegment, segment_type);
- }
- TEST(CipEpath, GetSegmentTypeDataSegment) {
- const char message[] = {0x80};
- SegmentType segment_type = GetPathSegmentType(message);
- CHECK_EQUAL(kSegmentTypeDataSegment, segment_type);
- }
- TEST(CipEpath, GetSegmentTypeDataTypeConstructed) {
- const char message[] = {0xA0};
- SegmentType segment_type = GetPathSegmentType(message);
- CHECK_EQUAL(kSegmentTypeDataTypeConstructed, segment_type);
- }
- TEST(CipEpath, GetSegmentTypeDataTypeElementary) {
- const char message[] = {0xC0};
- SegmentType segment_type = GetPathSegmentType(message);
- CHECK_EQUAL(kSegmentTypeDataTypeElementary, segment_type);
- }
- TEST(CipEpath, GetSegmentTypeReserved) {
- const char message[] = {0xE0};
- SegmentType segment_type = GetPathSegmentType(message);
- CHECK_EQUAL(kSegmentTypeReserved, segment_type);
- }
- /** Port segment tests **/
- TEST(CipEpath, GetPortSegmentExtendedAddressSizeTrue) {
- const char message[] = {0x10};
- bool extended_address = GetPathPortSegmentExtendedLinkAddressSizeBit(message);
- CHECK_EQUAL(true, extended_address);
- }
- TEST(CipEpath, GetPortSegmentExtendedAddressSizeFalse) {
- const char message[] = {0x00};
- bool extended_address = GetPathPortSegmentExtendedLinkAddressSizeBit(message);
- CHECK_EQUAL(false, extended_address);
- }
- TEST(CipEpath, GetPortSegmentPortIdentifier) {
- const char message[] = {0x0F};
- unsigned int port = GetPathPortSegmentPortIdentifier(message);
- unsigned int mes = (unsigned int)(message[0]);
- CHECK_EQUAL(15, mes);
- }
- TEST(CipEpath, SetPortSegmentPortIdentifier) {
- char message[] = {0x00};
- SetPathPortSegmentPortIdentifier(15, message);
- CHECK_EQUAL(15, (unsigned int)(message[0]));
- }
- TEST(CipEpath, GetPortSegmentLinkAddressSize) {
- const char message[] = {0x10,0x04};
- unsigned int size = GetPathPortSegmentLinkAddressSize(message);
- CHECK_EQUAL(4, size);
- }
- TEST(CipEpath, GetPortSegmentExtendedPortNumberNoExtendedAddress) {
- const char message[] = {0x0F, 0x22, 0x64};
- unsigned int extended_port = GetPathPortSegmentExtendedPortNumber(message);
- CHECK_EQUAL(25634, extended_port);
- }
- TEST(CipEpath, GetPortSegmentExtendedPortNumberWithExtendedAddress) {
- const char message[] = {0x1F, 0x00, 0x22, 0x64};
- unsigned int extended_port = GetPathPortSegmentExtendedPortNumber(message);
- CHECK_EQUAL(25634, extended_port);
- }
- TEST(CipEpath, SetPortSegmentExtendedPortNoExtendedAddress) {
- char message[] = {0x00, 0x00, 0x00};
- const char expected_message[] = {0x0F, 0x22, 0x64};
- SetPathPortSegmentExtendedPortIdentifier((unsigned int)25634, message);
- MEMCMP_EQUAL(expected_message, message, 3);
- }
- TEST(CipEpath, SetPortSegmentExtendedPortWithExtendedAddress) {
- char message[] = {0x10, 0x00, 0x00, 0x00};
- const char expected_message[] = {0x1F, 0x00, 0x22, 0x64};
- SetPathPortSegmentExtendedPortIdentifier((unsigned int)25634, message);
- MEMCMP_EQUAL(expected_message, message, 4);
- }
- TEST(CipEpath, GetLogicalSegmentLogicalTypeClassId) {
- const char message[] = {0x20};
- const LogicalSegmentLogicalType type = GetPathLogicalSegmentLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentLogicalTypeClassId, type);
- }
- TEST(CipEpath, GetLogicalSegmentLogicalTypeInstanceId) {
- const char message[] = {0x24};
- const LogicalSegmentLogicalType type = GetPathLogicalSegmentLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentLogicalTypeInstanceId, type);
- }
- TEST(CipEpath, GetLogicalSegmentLogicalTypeMemberId) {
- const char message[] = {0x28};
- const LogicalSegmentLogicalType type = GetPathLogicalSegmentLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentLogicalTypeMemberId, type);
- }
- TEST(CipEpath, GetLogicalSegmentLogicalTypeConnectionPoint) {
- const char message[] = {0x2C};
- const LogicalSegmentLogicalType type = GetPathLogicalSegmentLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentLogicalTypeConnectionPoint, type);
- }
- TEST(CipEpath, GetLogicalSegmentLogicalTypeAttributeId) {
- const char message[] = {0x30};
- const LogicalSegmentLogicalType type = GetPathLogicalSegmentLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentLogicalTypeAttributeId, type);
- }
- TEST(CipEpath, GetLogicalSegmentLogicalTypeSpecial) {
- const char message[] = {0x34};
- const LogicalSegmentLogicalType type = GetPathLogicalSegmentLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentLogicalTypeSpecial, type);
- }
- TEST(CipEpath, GetLogicalSegmentLogicalTypeServiceId) {
- const char message[] = {0x38};
- const LogicalSegmentLogicalType type = GetPathLogicalSegmentLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentLogicalTypeServiceId, type);
- }
- TEST(CipEpath, GetLogicalSegmentLogicalTypeExtendedLogical) {
- const char message[] = {0x3C};
- const LogicalSegmentLogicalType type = GetPathLogicalSegmentLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentLogicalTypeExtendedLogical, type);
- }
- TEST(CipEpath, GetLogicalSegmentLogicalFormatEightBits) {
- const char message[] = {0x20};
- const LogicalSegmentLogicalFormat format = GetPathLogicalSegmentLogicalFormat(message);
- CHECK_EQUAL(kLogicalSegmentLogicalFormatEightBit, format);
- }
- TEST(CipEpath, GetLogicalSegmentLogicalFormatSixteenBits) {
- const char message[] = {0x21};
- const LogicalSegmentLogicalFormat format = GetPathLogicalSegmentLogicalFormat(message);
- CHECK_EQUAL(kLogicalSegmentLogicalFormatSixteenBit, format);
- }
- TEST(CipEpath, GetLogicalSegmentLogicalFormatThirtyTwoBits) {
- const char message[] = {0x22};
- const LogicalSegmentLogicalFormat format = GetPathLogicalSegmentLogicalFormat(message);
- CHECK_EQUAL(kLogicalSegmentLogicalFormatThirtyTwoBit, format);
- }
- TEST(CipEpath, GetLogicalSegmentExtendedLogicalTypeReserved) {
- const char message[] = {0x3C, 0x00};
- const LogicalSegmentExtendedLogicalType extended_type = GetPathLogicalSegmentExtendedLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentExtendedLogicalTypeReserved, extended_type);
- }
- TEST(CipEpath, GetLogicalSegmentExtendedLogicalTypeArrayIndex) {
- const char message[] = {0x3C, 0x01};
- const LogicalSegmentExtendedLogicalType extended_type = GetPathLogicalSegmentExtendedLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentExtendedLogicalTypeArrayIndex, extended_type);
- }
- TEST(CipEpath, GetLogicalSegmentExtendedLogicalTypeIndirectArrayIndex) {
- const char message[] = {0x3C, 0x02};
- const LogicalSegmentExtendedLogicalType extended_type = GetPathLogicalSegmentExtendedLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentExtendedLogicalTypeIndirectArrayIndex, extended_type);
- }
- TEST(CipEpath, GetLogicalSegmentExtendedLogicalTypeBitIndex) {
- const char message[] = {0x3C, 0x03};
- const LogicalSegmentExtendedLogicalType extended_type = GetPathLogicalSegmentExtendedLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentExtendedLogicalTypeBitIndex, extended_type);
- }
- TEST(CipEpath, GetLogicalSegmentExtendedLogicalTypeIndirectBitIndex) {
- const char message[] = {0x3C, 0x04};
- const LogicalSegmentExtendedLogicalType extended_type = GetPathLogicalSegmentExtendedLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentExtendedLogicalTypeIndirectBitIndex, extended_type);
- }
- TEST(CipEpath, GetLogicalSegmentExtendedLogicalTypeStructureMemberNumber) {
- const char message[] = {0x3C, 0x05};
- const LogicalSegmentExtendedLogicalType extended_type = GetPathLogicalSegmentExtendedLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentExtendedLogicalTypeStructureMemberNumber, extended_type);
- }
- TEST(CipEpath, GetLogicalSegmentExtendedLogicalTypeStructureMemberHandle) {
- const char message[] = {0x3C, 0x06};
- const LogicalSegmentExtendedLogicalType extended_type = GetPathLogicalSegmentExtendedLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentExtendedLogicalTypeStructureMemberHandle, extended_type);
- }
- TEST(CipEpath, GetLogicalSegmentSpecialTypeLogicalTypeReserved) {
- const char message[] = {0x35};
- LogicalSegmentSpecialTypeLogicalFormat special_type = GetPathLogicalSegmentSpecialTypeLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentSpecialTypeLogicalFormatReserved, special_type);
- }
- TEST(CipEpath, GetLogicalSegmentSpecialTypeLogicalTypeElectronicKey) {
- const char message[] = {0x34};
- LogicalSegmentSpecialTypeLogicalFormat special_type = GetPathLogicalSegmentSpecialTypeLogicalType(message);
- CHECK_EQUAL(kLogicalSegmentSpecialTypeLogicalFormatElectronicKey, special_type);
- }
- TEST(CipEpath, GetPathLogicalSegmentElectronicKeyFormatReserved) {
- const char message[] = {0x34, 0x00};
- ElectronicKeySegmentFormat key_format = GetPathLogicalSegmentElectronicKeyFormat(message);
- CHECK_EQUAL(kElectronicKeySegmentFormatReserved, key_format);
- }
- TEST(CipEpath, GetPathLogicalSegmentElectronicKeyFormat4) {
- const char message[] = {0x34, 0x04};
- ElectronicKeySegmentFormat key_format = GetPathLogicalSegmentElectronicKeyFormat(message);
- CHECK_EQUAL(kElectronicKeySegmentFormatKeyFormat4, key_format);
- }
|