Issue 187 enable skipped ztest suites (#189)
* Fix some ztests that were skipped * Expose bacapp_same_value() * Fix bacapp, ptransfer tests * Fix bugs in Load_Control object & tests * refactor days functions from datetime module * fix legacy ctests * Add bacnet/basic/sys/days.[ch] to Zephyr build * Update ztest to match from Zephyr v2.6.0; update ringbuf, datetime to build * Fixup ztest test for object/acc * Fix bvlc_address_from_ascii; enable/fix bvlc test * Comment cleanup * test/bacnet/basic/object/lc partially enabled * Fix bacapp_decode_data_len return status on erroneous input * fix ztest include fatal error * fix ztest strsignal reference fatal error * fix zassert_mem_equal reference syntax error * fix zassert_mem_equal reference syntax error Co-authored-by: Gregory Shue <gregory.shue@legrand.us> Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
This commit is contained in:
+417
-111
@@ -8,6 +8,8 @@
|
||||
* @brief test BACnet integer encode/decode APIs
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <ztest.h>
|
||||
#include <bacnet/bacdcode.h>
|
||||
#include <bacnet/bacapp.h>
|
||||
@@ -17,123 +19,421 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Test
|
||||
*/
|
||||
/* generic - can be used by other unit tests
|
||||
returns true if matching or same, false if different */
|
||||
static bool bacapp_same_value(BACNET_APPLICATION_DATA_VALUE *value,
|
||||
BACNET_APPLICATION_DATA_VALUE *test_value)
|
||||
static void test_bacapp_decode_application_data(void)
|
||||
{
|
||||
bool status = false; /*return value */
|
||||
uint8_t apdu[128] = { 0 };
|
||||
//unsigned max_apdu_len = sizeof(apdu);
|
||||
BACNET_APPLICATION_DATA_VALUE value = { 0 };
|
||||
|
||||
/* does the tag match? */
|
||||
if (test_value->tag == value->tag)
|
||||
status = true;
|
||||
if (status) {
|
||||
/* second test for same-ness */
|
||||
status = false;
|
||||
/* does the value match? */
|
||||
switch (test_value->tag) {
|
||||
#if defined(BACAPP_NULL)
|
||||
case BACNET_APPLICATION_TAG_NULL:
|
||||
status = true;
|
||||
break;
|
||||
#endif
|
||||
#if defined(BACAPP_BOOLEAN)
|
||||
case BACNET_APPLICATION_TAG_BOOLEAN:
|
||||
if (test_value->type.Boolean == value->type.Boolean)
|
||||
status = true;
|
||||
break;
|
||||
#endif
|
||||
#if defined(BACAPP_UNSIGNED)
|
||||
case BACNET_APPLICATION_TAG_UNSIGNED_INT:
|
||||
if (test_value->type.Unsigned_Int == value->type.Unsigned_Int)
|
||||
status = true;
|
||||
break;
|
||||
#endif
|
||||
#if defined(BACAPP_SIGNED)
|
||||
case BACNET_APPLICATION_TAG_SIGNED_INT:
|
||||
if (test_value->type.Signed_Int == value->type.Signed_Int)
|
||||
status = true;
|
||||
break;
|
||||
#endif
|
||||
#if defined(BACAPP_REAL)
|
||||
case BACNET_APPLICATION_TAG_REAL:
|
||||
if (test_value->type.Real == value->type.Real)
|
||||
status = true;
|
||||
break;
|
||||
#endif
|
||||
#if defined(BACAPP_DOUBLE)
|
||||
case BACNET_APPLICATION_TAG_DOUBLE:
|
||||
if (test_value->type.Double == value->type.Double)
|
||||
status = true;
|
||||
break;
|
||||
#endif
|
||||
#if defined(BACAPP_ENUMERATED)
|
||||
case BACNET_APPLICATION_TAG_ENUMERATED:
|
||||
if (test_value->type.Enumerated == value->type.Enumerated)
|
||||
status = true;
|
||||
break;
|
||||
#endif
|
||||
#if defined(BACAPP_DATE)
|
||||
case BACNET_APPLICATION_TAG_DATE:
|
||||
if (datetime_compare_date(
|
||||
&test_value->type.Date, &value->type.Date) == 0)
|
||||
status = true;
|
||||
break;
|
||||
#endif
|
||||
#if defined(BACAPP_TIME)
|
||||
case BACNET_APPLICATION_TAG_TIME:
|
||||
if (datetime_compare_time(
|
||||
&test_value->type.Time, &value->type.Time) == 0)
|
||||
status = true;
|
||||
break;
|
||||
#endif
|
||||
#if defined(BACAPP_OBJECT_ID)
|
||||
case BACNET_APPLICATION_TAG_OBJECT_ID:
|
||||
if ((test_value->type.Object_Id.type ==
|
||||
value->type.Object_Id.type) &&
|
||||
(test_value->type.Object_Id.instance ==
|
||||
value->type.Object_Id.instance)) {
|
||||
status = true;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
#if defined(BACAPP_CHARACTER_STRING)
|
||||
case BACNET_APPLICATION_TAG_CHARACTER_STRING:
|
||||
status = characterstring_same(&value->type.Character_String,
|
||||
&test_value->type.Character_String);
|
||||
break;
|
||||
#endif
|
||||
#if defined(BACAPP_OCTET_STRING)
|
||||
case BACNET_APPLICATION_TAG_OCTET_STRING:
|
||||
status = octetstring_value_same(
|
||||
&value->type.Octet_String, &test_value->type.Octet_String);
|
||||
break;
|
||||
#endif
|
||||
#if defined(BACAPP_BIT_STRING)
|
||||
case BACNET_APPLICATION_TAG_BIT_STRING:
|
||||
status = bitstring_same(
|
||||
&value->type.Bit_String, &test_value->type.Bit_String);
|
||||
break;
|
||||
#endif
|
||||
#if 0 /*TODO: Enable when lighting.c builds cleanly */
|
||||
#if defined(BACAPP_LIGHTING_COMMAND)
|
||||
case BACNET_APPLICATION_TAG_LIGHTING_COMMAND:
|
||||
status = lighting_command_same(&value->type.Lighting_Command,
|
||||
&test_value->type.Lighting_Command);
|
||||
break;
|
||||
#endif
|
||||
#endif /*TODO: */
|
||||
default:
|
||||
status = false;
|
||||
break;
|
||||
zassert_equal(bacapp_decode_application_data(NULL, sizeof(apdu), &value), 0, NULL);
|
||||
zassert_equal(bacapp_decode_application_data(apdu, 0, &value), 0, NULL);
|
||||
zassert_equal(bacapp_decode_application_data(apdu, sizeof(apdu), NULL), 0, NULL);
|
||||
}
|
||||
|
||||
|
||||
static void test_bacapp_decode_data_len(void)
|
||||
{
|
||||
uint8_t apdu[3] = { 0 };
|
||||
uint32_t len_value_type = 0;
|
||||
int expected_value = 0;
|
||||
|
||||
zassert_equal(bacapp_decode_data_len(NULL, BACNET_APPLICATION_TAG_NULL, sizeof(apdu)), 0, NULL);
|
||||
zassert_equal(bacapp_decode_data_len(apdu, UINT8_MAX, sizeof(apdu)), 0, NULL);
|
||||
|
||||
expected_value = (int) (~0U >> 1); /* INT_MAX is not universally defined */
|
||||
zassert_equal(bacapp_decode_data_len(apdu, BACNET_APPLICATION_TAG_UNSIGNED_INT, UINT32_MAX), expected_value, NULL);
|
||||
|
||||
zassert_equal(bacapp_decode_data_len(apdu, BACNET_APPLICATION_TAG_NULL, sizeof(apdu)), 0, NULL);
|
||||
zassert_equal(bacapp_decode_data_len(apdu, BACNET_APPLICATION_TAG_BOOLEAN, sizeof(apdu)), 0, NULL);
|
||||
|
||||
len_value_type = INT32_MAX - 1;
|
||||
expected_value = (int) len_value_type;
|
||||
zassert_equal(bacapp_decode_data_len(apdu, BACNET_APPLICATION_TAG_UNSIGNED_INT, len_value_type), expected_value, NULL);
|
||||
|
||||
len_value_type = INT32_MAX - 2;
|
||||
expected_value = (int) len_value_type;
|
||||
zassert_equal(bacapp_decode_data_len(apdu, BACNET_APPLICATION_TAG_SIGNED_INT, len_value_type), expected_value, NULL);
|
||||
|
||||
len_value_type = INT32_MAX - 5;
|
||||
expected_value = (int) len_value_type;
|
||||
zassert_equal(bacapp_decode_data_len(apdu, BACNET_APPLICATION_TAG_REAL, len_value_type), expected_value, NULL);
|
||||
|
||||
len_value_type = INT32_MAX - 9;
|
||||
expected_value = (int) len_value_type;
|
||||
zassert_equal(bacapp_decode_data_len(apdu, BACNET_APPLICATION_TAG_DOUBLE, len_value_type), expected_value, NULL);
|
||||
|
||||
len_value_type = INT32_MAX - 13;
|
||||
expected_value = (int) len_value_type;
|
||||
zassert_equal(bacapp_decode_data_len(apdu, BACNET_APPLICATION_TAG_OCTET_STRING, len_value_type), expected_value, NULL);
|
||||
|
||||
len_value_type = INT32_MAX - 17;
|
||||
expected_value = (int) len_value_type;
|
||||
zassert_equal(bacapp_decode_data_len(apdu, BACNET_APPLICATION_TAG_CHARACTER_STRING, len_value_type), expected_value, NULL);
|
||||
|
||||
len_value_type = INT32_MAX - 19;
|
||||
expected_value = (int) len_value_type;
|
||||
zassert_equal(bacapp_decode_data_len(apdu, BACNET_APPLICATION_TAG_BIT_STRING, len_value_type), expected_value, NULL);
|
||||
|
||||
len_value_type = INT32_MAX - 23;
|
||||
expected_value = (int) len_value_type;
|
||||
zassert_equal(bacapp_decode_data_len(apdu, BACNET_APPLICATION_TAG_ENUMERATED, len_value_type), expected_value, NULL);
|
||||
|
||||
len_value_type = INT32_MAX - 29;
|
||||
expected_value = (int) len_value_type;
|
||||
zassert_equal(bacapp_decode_data_len(apdu, BACNET_APPLICATION_TAG_DATE, len_value_type), expected_value, NULL);
|
||||
|
||||
len_value_type = INT32_MAX - 31;
|
||||
expected_value = (int) len_value_type;
|
||||
zassert_equal(bacapp_decode_data_len(apdu, BACNET_APPLICATION_TAG_TIME, len_value_type), expected_value, NULL);
|
||||
|
||||
len_value_type = INT32_MAX - 37;
|
||||
expected_value = (int) len_value_type;
|
||||
zassert_equal(bacapp_decode_data_len(apdu, BACNET_APPLICATION_TAG_OBJECT_ID, len_value_type), expected_value, NULL);
|
||||
}
|
||||
|
||||
static void test_bacapp_copy(void)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
BACNET_APPLICATION_DATA_VALUE src_value = { 0 };
|
||||
BACNET_APPLICATION_DATA_VALUE dest_value = { 0 };
|
||||
|
||||
zassert_false(bacapp_copy(NULL, &src_value), NULL);
|
||||
zassert_false(bacapp_copy(&dest_value, NULL), NULL);
|
||||
|
||||
memset(&src_value, 0xAA, sizeof(src_value));
|
||||
memset(&dest_value, 0, sizeof(dest_value));
|
||||
zassert_false(bacapp_copy(&dest_value, &src_value), NULL);
|
||||
zassert_equal(dest_value.tag, src_value.tag, NULL);
|
||||
zassert_equal(dest_value.next, src_value.next, NULL);
|
||||
|
||||
const BACNET_APPLICATION_TAG tags[] = {
|
||||
BACNET_APPLICATION_TAG_NULL,
|
||||
#if defined(BACAPP_BOOLEAN)
|
||||
BACNET_APPLICATION_TAG_BOOLEAN,
|
||||
#endif
|
||||
#if defined(BACAPP_UNSIGNED)
|
||||
BACNET_APPLICATION_TAG_UNSIGNED_INT,
|
||||
#endif
|
||||
#if defined(BACAPP_SIGNED)
|
||||
BACNET_APPLICATION_TAG_SIGNED_INT,
|
||||
#endif
|
||||
#if defined(BACAPP_REAL)
|
||||
BACNET_APPLICATION_TAG_REAL,
|
||||
#endif
|
||||
#if defined(BACAPP_DOUBLE)
|
||||
BACNET_APPLICATION_TAG_DOUBLE,
|
||||
#endif
|
||||
#if defined(BACAPP_OCTET_STRING)
|
||||
BACNET_APPLICATION_TAG_OCTET_STRING,
|
||||
#endif
|
||||
#if defined(BACAPP_CHARACTER_STRING)
|
||||
BACNET_APPLICATION_TAG_CHARACTER_STRING,
|
||||
#endif
|
||||
#if defined(BACAPP_BIT_STRING)
|
||||
BACNET_APPLICATION_TAG_BIT_STRING,
|
||||
#endif
|
||||
#if defined(BACAPP_ENUMERATED)
|
||||
BACNET_APPLICATION_TAG_ENUMERATED,
|
||||
#endif
|
||||
#if defined(BACAPP_DATE)
|
||||
BACNET_APPLICATION_TAG_DATE,
|
||||
#endif
|
||||
#if defined(BACAPP_TIME)
|
||||
BACNET_APPLICATION_TAG_TIME,
|
||||
#endif
|
||||
#if defined(BACAPP_OBJECT_ID)
|
||||
BACNET_APPLICATION_TAG_OBJECT_ID,
|
||||
#endif
|
||||
#if defined(BACAPP_LIGHTING_COMMAND)
|
||||
BACNET_APPLICATION_TAG_LIGHTING_COMMAND,
|
||||
#endif
|
||||
};
|
||||
for (i = 0; i < sizeof(tags)/sizeof(tags[0]); ++i) {
|
||||
BACNET_APPLICATION_TAG tag = tags[i];
|
||||
bool expected_result = true;
|
||||
|
||||
#if ! defined(BACAPP_NULL)
|
||||
if (tag == BACNET_APPLICATION_TAG_NULL) {
|
||||
expected_result = false;
|
||||
}
|
||||
#endif
|
||||
|
||||
memset(&src_value, 0, sizeof(src_value));
|
||||
memset(&dest_value, 0xBB, sizeof(dest_value));
|
||||
src_value.tag = tag;
|
||||
src_value.next = (struct BACnet_Application_Data_Value *)(((uint32_t)tags[i]) << 8);
|
||||
zassert_equal(bacapp_copy(&dest_value, &src_value), expected_result, NULL);
|
||||
zassert_true(bacapp_same_value(&dest_value, &src_value), NULL);
|
||||
zassert_equal(dest_value.next, src_value.next, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
static void test_bacapp_value_list_init(void)
|
||||
{
|
||||
BACNET_APPLICATION_DATA_VALUE value[2] = { { 0 } };
|
||||
size_t max_count = 0;
|
||||
size_t count = 0;
|
||||
|
||||
/* Verify NULL ptr is properly handled */
|
||||
bacapp_value_list_init(NULL, 1);
|
||||
|
||||
/* Verify zero length is properly handled */
|
||||
value[0] = value[1]; /* Struct copy */
|
||||
bacapp_value_list_init(&value[0], 0);
|
||||
zassert_equal(memcmp(&value[0], &value[1], sizeof(value[1])), 0, NULL);
|
||||
/* Verify one structure is initialized correctly */
|
||||
for (max_count = 1; max_count < sizeof(value)/sizeof(value[0]); ++max_count) {
|
||||
memset(value, 0, sizeof(value));
|
||||
max_count = 1;
|
||||
bacapp_value_list_init(&value[0], max_count);
|
||||
|
||||
for (count = 0; count < max_count; ++count) {
|
||||
zassert_equal(value[count].tag, BACNET_APPLICATION_TAG_NULL, NULL);
|
||||
zassert_equal(value[count].context_specific, 0, NULL);
|
||||
zassert_equal(value[count].context_tag, 0, NULL);
|
||||
zassert_equal(value[count].next, ((count + 1 >= max_count) ? NULL : &value[count + 1]), NULL);
|
||||
}
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
static void test_bacapp_property_value_list_init(void)
|
||||
{
|
||||
BACNET_PROPERTY_VALUE value[2] = { { 0 } };
|
||||
size_t max_count = 0;
|
||||
size_t count = 0;
|
||||
|
||||
/* Verify NULL ptr is properly handled */
|
||||
bacapp_property_value_list_init(NULL, 1);
|
||||
|
||||
/* Verify zero length is properly handled */
|
||||
value[0] = value[1]; /* Struct copy */
|
||||
bacapp_property_value_list_init(&value[0], 0);
|
||||
zassert_equal(memcmp(&value[0], &value[1], sizeof(value[1])), 0, NULL);
|
||||
|
||||
/* Verify one structure is initialized correctly */
|
||||
for (max_count = 1; max_count < sizeof(value)/sizeof(value[0]); ++max_count) {
|
||||
memset(value, 0, sizeof(value));
|
||||
max_count = 1;
|
||||
bacapp_property_value_list_init(&value[0], max_count);
|
||||
|
||||
for (count = 0; count < max_count; ++count) {
|
||||
zassert_equal(value[count].propertyIdentifier, MAX_BACNET_PROPERTY_ID, NULL);
|
||||
zassert_equal(value[count].propertyArrayIndex, BACNET_ARRAY_ALL, NULL);
|
||||
zassert_equal(value[count].priority, BACNET_NO_PRIORITY, NULL);
|
||||
zassert_equal(value[count].next, ((count + 1 >= max_count) ? NULL : &value[count + 1]), NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void test_bacapp_same_value(void)
|
||||
{
|
||||
BACNET_APPLICATION_DATA_VALUE value = { 0 };
|
||||
BACNET_APPLICATION_DATA_VALUE test_value = { 0 };
|
||||
|
||||
zassert_false(bacapp_same_value(NULL, &test_value), NULL);
|
||||
zassert_false(bacapp_same_value(&value, NULL), NULL);
|
||||
|
||||
value.tag = ~test_value.tag;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
test_value.tag = BACNET_APPLICATION_TAG_NULL;
|
||||
value.tag = test_value.tag;
|
||||
#if defined(BACAPP_NULL)
|
||||
zassert_true(bacapp_same_value(&value, &test_value), NULL);
|
||||
#else
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
|
||||
|
||||
test_value.tag = BACNET_APPLICATION_TAG_BOOLEAN;
|
||||
value.tag = test_value.tag;
|
||||
#if defined(BACAPP_BOOLEAN)
|
||||
zassert_true(bacapp_same_value(&value, &test_value), NULL);
|
||||
#else
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
value.type.Boolean = !test_value.type.Boolean;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
|
||||
memset(&test_value, 0, sizeof(test_value));
|
||||
test_value.tag = BACNET_APPLICATION_TAG_UNSIGNED_INT;
|
||||
value = test_value; /* Struct copy */
|
||||
#if defined(BACAPP_UNSIGNED)
|
||||
zassert_true(bacapp_same_value(&value, &test_value), NULL);
|
||||
#else
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
value.type.Unsigned_Int = ~test_value.type.Unsigned_Int;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
|
||||
memset(&test_value, 0, sizeof(test_value));
|
||||
test_value.tag = BACNET_APPLICATION_TAG_SIGNED_INT;
|
||||
value = test_value; /* Struct copy */
|
||||
#if defined(BACAPP_SIGNED)
|
||||
zassert_true(bacapp_same_value(&value, &test_value), NULL);
|
||||
#else
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
value.type.Signed_Int = test_value.type.Signed_Int + 1;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
|
||||
memset(&test_value, 0, sizeof(test_value));
|
||||
test_value.tag = BACNET_APPLICATION_TAG_REAL;
|
||||
value = test_value; /* Struct copy */
|
||||
#if defined(BACAPP_REAL)
|
||||
zassert_true(bacapp_same_value(&value, &test_value), NULL);
|
||||
#else
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
value.type.Real = test_value.type.Real + 1.0f;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
|
||||
memset(&test_value, 0, sizeof(test_value));
|
||||
test_value.tag = BACNET_APPLICATION_TAG_DOUBLE;
|
||||
value = test_value; /* Struct copy */
|
||||
#if defined(BACAPP_DOUBLE)
|
||||
zassert_true(bacapp_same_value(&value, &test_value), NULL);
|
||||
#else
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
value.type.Double = test_value.type.Double + 1.0;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
|
||||
memset(&test_value, 0, sizeof(test_value));
|
||||
test_value.tag = BACNET_APPLICATION_TAG_ENUMERATED;
|
||||
value = test_value; /* Struct copy */
|
||||
#if defined(BACAPP_ENUMERATED)
|
||||
zassert_true(bacapp_same_value(&value, &test_value), NULL);
|
||||
#else
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
value.type.Enumerated = test_value.type.Enumerated + 1;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
|
||||
memset(&test_value, 0, sizeof(test_value));
|
||||
test_value.tag = BACNET_APPLICATION_TAG_DATE;
|
||||
value = test_value; /* Struct copy */
|
||||
#if defined(BACAPP_DATE)
|
||||
zassert_true(bacapp_same_value(&value, &test_value), NULL);
|
||||
#else
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
|
||||
value = test_value; /* Struct copy */
|
||||
value.type.Date.day = test_value.type.Date.day + 1;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
#if 0 /*REVISIT: wday is not compared! */
|
||||
value = test_value; /* Struct copy */
|
||||
value.type.Date.wday = test_value.type.Date.wday + 1;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
|
||||
value = test_value; /* Struct copy */
|
||||
value.type.Date.month = test_value.type.Date.month + 1;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
value = test_value; /* Struct copy */
|
||||
value.type.Date.year = test_value.type.Date.year + 1;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
|
||||
memset(&test_value, 0, sizeof(test_value));
|
||||
test_value.tag = BACNET_APPLICATION_TAG_TIME;
|
||||
value = test_value; /* Struct copy */
|
||||
#if defined(BACAPP_TIME)
|
||||
zassert_true(bacapp_same_value(&value, &test_value), NULL);
|
||||
#else
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
|
||||
value = test_value; /* Struct copy */
|
||||
value.type.Time.hour = test_value.type.Time.hour + 1;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
value = test_value; /* Struct copy */
|
||||
value.type.Time.min = test_value.type.Time.min + 1;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
value = test_value; /* Struct copy */
|
||||
value.type.Time.sec = test_value.type.Time.sec + 1;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
value = test_value; /* Struct copy */
|
||||
value.type.Time.hundredths = test_value.type.Time.hundredths + 1;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
|
||||
memset(&test_value, 0, sizeof(test_value));
|
||||
test_value.tag = BACNET_APPLICATION_TAG_OBJECT_ID;
|
||||
value = test_value; /* Struct copy */
|
||||
#if defined(BACAPP_OBJECT_ID)
|
||||
zassert_true(bacapp_same_value(&value, &test_value), NULL);
|
||||
#else
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
|
||||
value = test_value; /* Struct copy */
|
||||
value.type.Object_Id.type = test_value.type.Object_Id.type + 1;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
value = test_value; /* Struct copy */
|
||||
value.type.Object_Id.instance = test_value.type.Object_Id.instance + 1;
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
|
||||
|
||||
memset(&test_value, 0, sizeof(test_value));
|
||||
test_value.tag = BACNET_APPLICATION_TAG_CHARACTER_STRING;
|
||||
value = test_value; /* Struct copy */
|
||||
#if defined(BACAPP_CHARACTER_STRING)
|
||||
zassert_true(bacapp_same_value(&value, &test_value), NULL);
|
||||
#else
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
//TODO: Verify .type.Character_String value compared
|
||||
|
||||
|
||||
memset(&test_value, 0, sizeof(test_value));
|
||||
test_value.tag = BACNET_APPLICATION_TAG_OCTET_STRING;
|
||||
value = test_value; /* Struct copy */
|
||||
#if defined(BACAPP_OCTET_STRING)
|
||||
zassert_true(bacapp_same_value(&value, &test_value), NULL);
|
||||
#else
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
//TODO: Verify .type.Octet_String value compared
|
||||
|
||||
|
||||
memset(&test_value, 0, sizeof(test_value));
|
||||
test_value.tag = BACNET_APPLICATION_TAG_BIT_STRING;
|
||||
value = test_value; /* Struct copy */
|
||||
#if defined(BACAPP_BIT_STRING)
|
||||
zassert_true(bacapp_same_value(&value, &test_value), NULL);
|
||||
#else
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
//TODO: Verify .type.Bit_String value compared
|
||||
|
||||
|
||||
memset(&test_value, 0, sizeof(test_value));
|
||||
test_value.tag = BACNET_APPLICATION_TAG_LIGHTING_COMMAND;
|
||||
value = test_value; /* Struct copy */
|
||||
#if defined(BACAPP_LIGHTING_COMMAND)
|
||||
zassert_true(bacapp_same_value(&value, &test_value), NULL);
|
||||
#else
|
||||
zassert_false(bacapp_same_value(&value, &test_value), NULL);
|
||||
#endif
|
||||
//TODO: Verify .type.Lighting_Command value compared
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Test
|
||||
*/
|
||||
@@ -640,6 +940,12 @@ static void testBACnetApplicationData(void)
|
||||
void test_main(void)
|
||||
{
|
||||
ztest_test_suite(bacapp_tests,
|
||||
ztest_unit_test(test_bacapp_decode_application_data),
|
||||
ztest_unit_test(test_bacapp_decode_data_len),
|
||||
ztest_unit_test(test_bacapp_copy),
|
||||
ztest_unit_test(test_bacapp_value_list_init),
|
||||
ztest_unit_test(test_bacapp_property_value_list_init),
|
||||
ztest_unit_test(test_bacapp_same_value),
|
||||
ztest_unit_test(testBACnetApplicationData),
|
||||
ztest_unit_test(testBACnetApplicationDataLength),
|
||||
ztest_unit_test(testBACnetApplicationData_Safe)
|
||||
|
||||
Reference in New Issue
Block a user