| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- /*******************************************************************************
- * Copyright (c) 2018, Rockwell Automation, Inc.
- * All rights reserved.
- *
- ******************************************************************************/
- #include <CppUTest/TestHarness.h>
- #include <stdint.h>
- #include <string.h>
- extern "C" {
- #include "cipcommon.h"
- }
- TEST_GROUP(CipCommon) {
- };
- TEST(CipCommon, GetSizeOfAttributeCipBool) {
- CipAttributeStruct attribute;
- attribute.type = kCipBool;
- CHECK_EQUAL(sizeof(CipBool), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipSint) {
- CipAttributeStruct attribute;
- attribute.type = kCipSint;
- CHECK_EQUAL(sizeof(CipSint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipInt) {
- CipAttributeStruct attribute;
- attribute.type = kCipInt;
- CHECK_EQUAL(sizeof(CipInt), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipDint) {
- CipAttributeStruct attribute;
- attribute.type = kCipDint;
- CHECK_EQUAL(sizeof(CipDint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipUsint) {
- CipAttributeStruct attribute;
- attribute.type = kCipUsint;
- CHECK_EQUAL(sizeof(CipUsint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipUint) {
- CipAttributeStruct attribute;
- attribute.type = kCipUint;
- CHECK_EQUAL(sizeof(CipUint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipUdint) {
- CipAttributeStruct attribute;
- attribute.type = kCipUdint;
- CHECK_EQUAL(sizeof(CipUdint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipReal) {
- CipAttributeStruct attribute;
- attribute.type = kCipReal;
- CHECK_EQUAL(sizeof(CipReal), GetSizeOfAttribute(&attribute) );
- }
- #ifdef OPENER_SUPPORT_64BIT_DATATYPES
- TEST(CipCommon, GetSizeOfAttributeCipLreal) {
- CipAttributeStruct attribute;
- attribute.type = kCipLreal;
- CHECK_EQUAL(sizeof(CipLreal), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipUlint) {
- CipAttributeStruct attribute;
- attribute.type = kCipUlint;
- CHECK_EQUAL(sizeof(CipUlint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipLint) {
- CipAttributeStruct attribute;
- attribute.type = kCipLint;
- CHECK_EQUAL(sizeof(CipLint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipLword) {
- CipAttributeStruct attribute;
- attribute.type = kCipLword;
- CHECK_EQUAL(sizeof(CipLword), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipLtime) {
- CipAttributeStruct attribute;
- attribute.type = kCipLtime;
- CHECK_EQUAL(sizeof(CipLint), GetSizeOfAttribute(&attribute) );
- }
- #endif /* OPENER_SUPPORT_64BIT_DATATYPES */
- TEST(CipCommon, GetSizeOfAttributeCipStime) {
- CipAttributeStruct attribute;
- attribute.type = kCipStime;
- CHECK_EQUAL(sizeof(CipDint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipData) {
- CipAttributeStruct attribute;
- attribute.type = kCipDate;
- CHECK_EQUAL(sizeof(CipUint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipTimeOfDay) {
- CipAttributeStruct attribute;
- attribute.type = kCipTimeOfDay;
- CHECK_EQUAL(sizeof(CipUdint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipDateAndTime) {
- CipAttributeStruct attribute;
- attribute.type = kCipDateAndTime;
- CHECK_EQUAL(sizeof(CipUdint) + sizeof(CipUint),
- GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipString) {
- CipAttributeStruct attribute;
- char demo_string[] = "Hello World!";
- CipString test_string =
- { .length = sizeof(demo_string), .string = (EipByte *)demo_string };
- attribute.type = kCipString;
- attribute.data = (void *)&test_string;
- CHECK_EQUAL(
- sizeof(test_string.length) + test_string.length * sizeof(CipOctet),
- GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipByte) {
- CipAttributeStruct attribute;
- attribute.type = kCipByte;
- CHECK_EQUAL(sizeof(CipByte), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipWord) {
- CipAttributeStruct attribute;
- attribute.type = kCipWord;
- CHECK_EQUAL(sizeof(CipWord), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipDword) {
- CipAttributeStruct attribute;
- attribute.type = kCipDword;
- CHECK_EQUAL(sizeof(CipDword), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipString2) {
- CipAttributeStruct attribute;
- char demo_string[] = "H e l l o W o r l d !"; /* \0 termination symbol is seen as second byte for ! */
- CipString test_string =
- { .length = sizeof(demo_string) / 2, .string = (EipByte *)demo_string };
- attribute.type = kCipString;
- attribute.data = (void *)&test_string;
- CHECK_EQUAL(
- sizeof(test_string.length) + test_string.length * sizeof(CipOctet),
- GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipFtime) {
- CipAttributeStruct attribute;
- attribute.type = kCipFtime;
- CHECK_EQUAL(sizeof(CipDint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipItime) {
- CipAttributeStruct attribute;
- attribute.type = kCipItime;
- CHECK_EQUAL(sizeof(CipInt), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipStringN) {
- CipAttributeStruct attribute;
- char demo_string[] = "Hello World!";
- CipStringN test_string =
- { .size = 1, .length = sizeof(demo_string),
- .string = (EipByte *) demo_string };
- attribute.type = kCipStringN;
- attribute.data = (void *) &test_string;
- CHECK_EQUAL(
- sizeof(test_string.size) + sizeof(test_string.length) + test_string.size * test_string.length *
- sizeof(CipOctet),
- GetSizeOfAttribute(
- &attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipTime) {
- CipAttributeStruct attribute;
- attribute.type = kCipTime;
- CHECK_EQUAL(sizeof(CipDint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipEpath) {
- /* TODO: Fix me */
- CipAttributeStruct attribute;
- attribute.type = kCipItime;
- CHECK_EQUAL(sizeof(CipInt), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipEngUnit) {
- CipAttributeStruct attribute;
- attribute.type = kCipEngUnit;
- CHECK_EQUAL(sizeof(CipUint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipUsintUsint) {
- CipAttributeStruct attribute;
- attribute.type = kCipUsintUsint;
- CHECK_EQUAL(2 * sizeof(CipUsint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipUdintUdintUdintUdintUdintString) {
- CipTcpIpNetworkInterfaceConfiguration config;
- char domain_name[] = "www.github.com/EIPStackGroup/OpENer";
- config.domain_name.length = sizeof(domain_name);
- config.domain_name.string = (EipByte *)domain_name;
- CipAttributeStruct attribute;
- attribute.type = kCipUdintUdintUdintUdintUdintString;
- attribute.data = (void *)&config;
- CHECK_EQUAL(
- 5 * sizeof(CipUdint) + sizeof(CipUint) + sizeof(domain_name) *
- sizeof(EipByte),
- GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCip6Usint) {
- CipAttributeStruct attribute;
- attribute.type = kCip6Usint;
- CHECK_EQUAL(6 * sizeof(CipUsint), GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeCipMemberList) {
- CipAttributeStruct attribute;
- attribute.type = kCipMemberList;
- CHECK_EQUAL(0, GetSizeOfAttribute(&attribute) );
- /* Currently not implemented */
- }
- TEST(CipCommon, GetSizeOfAttributeCipByteArray) {
- CipByte data_array[] = {1,2,3,4,5,6,7,8,9};
- CipByteArray array;
- array.data = (EipByte *)&data_array;
- array.length = sizeof(data_array);
- CipAttributeStruct attribute;
- attribute.type = kCipByteArray;
- attribute.data = (void *)&array;
- CHECK_EQUAL(sizeof(CipUint) + array.length * sizeof(CipByte),
- GetSizeOfAttribute(&attribute) );
- }
- TEST(CipCommon, GetSizeOfAttributeInternalUint6) {
- CipAttributeStruct attribute;
- attribute.type = kInternalUint6;
- CHECK_EQUAL(6 * sizeof(CipUint), GetSizeOfAttribute(&attribute) );
- }
|