Fixed unit tests after write property changes.
This commit is contained in:
@@ -10,6 +10,9 @@ CFLAGS = -Wall -I. -Itest -DTEST -DTEST_ANALOG_OUTPUT -g
|
|||||||
SRCS = bacdcode.c \
|
SRCS = bacdcode.c \
|
||||||
bacstr.c \
|
bacstr.c \
|
||||||
bigend.c \
|
bigend.c \
|
||||||
|
bacapp.c \
|
||||||
|
bactext.c \
|
||||||
|
indtext.c \
|
||||||
demo/object/ao.c \
|
demo/object/ao.c \
|
||||||
test/ctest.c
|
test/ctest.c
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ CFLAGS = -Wall -I. -Itest -DTEST -DTEST_ANALOG_VALUE -g
|
|||||||
SRCS = bacdcode.c \
|
SRCS = bacdcode.c \
|
||||||
bacstr.c \
|
bacstr.c \
|
||||||
bigend.c \
|
bigend.c \
|
||||||
|
bacapp.c \
|
||||||
|
bactext.c \
|
||||||
|
indtext.c \
|
||||||
demo/object/av.c \
|
demo/object/av.c \
|
||||||
test/ctest.c
|
test/ctest.c
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ CFLAGS = -Wall -I. -Itest -DTEST -DTEST_BINARY_OUTPUT -g
|
|||||||
SRCS = bacdcode.c \
|
SRCS = bacdcode.c \
|
||||||
bacstr.c \
|
bacstr.c \
|
||||||
bigend.c \
|
bigend.c \
|
||||||
|
bacapp.c \
|
||||||
|
bactext.c \
|
||||||
|
indtext.c \
|
||||||
demo/object/bo.c \
|
demo/object/bo.c \
|
||||||
test/ctest.c
|
test/ctest.c
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ CFLAGS = -Wall -I. -Itest -DTEST -DTEST_BINARY_VALUE -g
|
|||||||
SRCS = bacdcode.c \
|
SRCS = bacdcode.c \
|
||||||
bacstr.c \
|
bacstr.c \
|
||||||
bigend.c \
|
bigend.c \
|
||||||
|
bacapp.c \
|
||||||
|
bactext.c \
|
||||||
|
indtext.c \
|
||||||
demo/object/bv.c \
|
demo/object/bv.c \
|
||||||
test/ctest.c
|
test/ctest.c
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ CFLAGS = -Wall -I. -Itest -DTEST -DTEST_DEVICE -g
|
|||||||
SRCS = bacdcode.c \
|
SRCS = bacdcode.c \
|
||||||
bigend.c \
|
bigend.c \
|
||||||
bacstr.c \
|
bacstr.c \
|
||||||
|
bacapp.c \
|
||||||
|
bactext.c \
|
||||||
|
indtext.c \
|
||||||
apdu.c \
|
apdu.c \
|
||||||
dcc.c \
|
dcc.c \
|
||||||
demo/object/device.c \
|
demo/object/device.c \
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ CFLAGS = -Wall -I. -Itest -DTEST -DTEST_LIFE_SAFETY_POINT -g
|
|||||||
SRCS = bacdcode.c \
|
SRCS = bacdcode.c \
|
||||||
bacstr.c \
|
bacstr.c \
|
||||||
bigend.c \
|
bigend.c \
|
||||||
|
bacapp.c \
|
||||||
|
bactext.c \
|
||||||
|
indtext.c \
|
||||||
demo/object/lsp.c \
|
demo/object/lsp.c \
|
||||||
test/ctest.c
|
test/ctest.c
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ CFLAGS = -Wall -I. -Itest -DTEST -DTEST_MULTISTATE_OUTPUT -g
|
|||||||
SRCS = bacdcode.c \
|
SRCS = bacdcode.c \
|
||||||
bacstr.c \
|
bacstr.c \
|
||||||
bigend.c \
|
bigend.c \
|
||||||
|
bacapp.c \
|
||||||
|
bactext.c \
|
||||||
|
indtext.c \
|
||||||
demo/object/mso.c \
|
demo/object/mso.c \
|
||||||
test/ctest.c
|
test/ctest.c
|
||||||
|
|
||||||
|
|||||||
@@ -9,11 +9,18 @@ SRCS = address.c \
|
|||||||
bacdcode.c \
|
bacdcode.c \
|
||||||
bacstr.c \
|
bacstr.c \
|
||||||
bigend.c \
|
bigend.c \
|
||||||
|
bacapp.c \
|
||||||
|
bactext.c \
|
||||||
|
indtext.c \
|
||||||
demo/object/device.c \
|
demo/object/device.c \
|
||||||
demo/object/ai.c \
|
demo/object/ai.c \
|
||||||
demo/object/ao.c \
|
demo/object/ao.c \
|
||||||
|
demo/object/av.c \
|
||||||
demo/object/bi.c \
|
demo/object/bi.c \
|
||||||
demo/object/bo.c \
|
demo/object/bo.c \
|
||||||
|
demo/object/bv.c \
|
||||||
|
demo/object/lsp.c \
|
||||||
|
demo/object/mso.c \
|
||||||
iam.c \
|
iam.c \
|
||||||
dcc.c \
|
dcc.c \
|
||||||
npdu.c \
|
npdu.c \
|
||||||
|
|||||||
+108
-99
@@ -195,73 +195,82 @@ int wp_decode_apdu(uint8_t * apdu,
|
|||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
void testWritePropertyTag(Test * pTest, BACNET_WRITE_PROPERTY_DATA * data)
|
void testWritePropertyTag(Test * pTest, BACNET_APPLICATION_DATA_VALUE * value)
|
||||||
{
|
{
|
||||||
|
BACNET_WRITE_PROPERTY_DATA data = { 0 };
|
||||||
BACNET_WRITE_PROPERTY_DATA test_data = { 0 };
|
BACNET_WRITE_PROPERTY_DATA test_data = { 0 };
|
||||||
|
BACNET_APPLICATION_DATA_VALUE test_value;
|
||||||
uint8_t apdu[480] = { 0 };
|
uint8_t apdu[480] = { 0 };
|
||||||
int len = 0;
|
int len = 0;
|
||||||
int apdu_len = 0;
|
int apdu_len = 0;
|
||||||
uint8_t invoke_id = 128;
|
uint8_t invoke_id = 128;
|
||||||
uint8_t test_invoke_id = 0;
|
uint8_t test_invoke_id = 0;
|
||||||
|
|
||||||
len = wp_encode_apdu(&apdu[0], invoke_id, data);
|
data.application_data_len =
|
||||||
|
bacapp_encode_application_data(&data.application_data[0],value);
|
||||||
|
len = wp_encode_apdu(&apdu[0], invoke_id, &data);
|
||||||
ct_test(pTest, len != 0);
|
ct_test(pTest, len != 0);
|
||||||
|
/* decode the data */
|
||||||
apdu_len = len;
|
apdu_len = len;
|
||||||
|
|
||||||
len = wp_decode_apdu(&apdu[0], apdu_len, &test_invoke_id, &test_data);
|
len = wp_decode_apdu(&apdu[0], apdu_len, &test_invoke_id, &test_data);
|
||||||
ct_test(pTest, len != -1);
|
ct_test(pTest, len != -1);
|
||||||
ct_test(pTest, test_data.object_type == data->object_type);
|
ct_test(pTest, test_data.object_type == data.object_type);
|
||||||
ct_test(pTest, test_data.object_instance == data->object_instance);
|
ct_test(pTest, test_data.object_instance == data.object_instance);
|
||||||
ct_test(pTest, test_data.object_property == data->object_property);
|
ct_test(pTest, test_data.object_property == data.object_property);
|
||||||
ct_test(pTest, test_data.array_index == data->array_index);
|
ct_test(pTest, test_data.array_index == data.array_index);
|
||||||
ct_test(pTest, test_data.value.tag == data->value.tag);
|
/* decode the application value of the request */
|
||||||
switch (test_data.value.tag) {
|
len = bacapp_decode_application_data(
|
||||||
|
test_data.application_data,
|
||||||
|
test_data.application_data_len,
|
||||||
|
&test_value);
|
||||||
|
ct_test(pTest, test_value.tag == value->tag);
|
||||||
|
switch (test_value.tag) {
|
||||||
case BACNET_APPLICATION_TAG_NULL:
|
case BACNET_APPLICATION_TAG_NULL:
|
||||||
break;
|
break;
|
||||||
case BACNET_APPLICATION_TAG_BOOLEAN:
|
case BACNET_APPLICATION_TAG_BOOLEAN:
|
||||||
ct_test(pTest, test_data.value.type.Boolean ==
|
ct_test(pTest, test_value.type.Boolean ==
|
||||||
data->value.type.Boolean);
|
value->type.Boolean);
|
||||||
break;
|
break;
|
||||||
case BACNET_APPLICATION_TAG_UNSIGNED_INT:
|
case BACNET_APPLICATION_TAG_UNSIGNED_INT:
|
||||||
ct_test(pTest, test_data.value.type.Unsigned_Int ==
|
ct_test(pTest, test_value.type.Unsigned_Int ==
|
||||||
data->value.type.Unsigned_Int);
|
value->type.Unsigned_Int);
|
||||||
break;
|
break;
|
||||||
case BACNET_APPLICATION_TAG_SIGNED_INT:
|
case BACNET_APPLICATION_TAG_SIGNED_INT:
|
||||||
ct_test(pTest, test_data.value.type.Signed_Int ==
|
ct_test(pTest, test_value.type.Signed_Int ==
|
||||||
data->value.type.Signed_Int);
|
value->type.Signed_Int);
|
||||||
break;
|
break;
|
||||||
case BACNET_APPLICATION_TAG_REAL:
|
case BACNET_APPLICATION_TAG_REAL:
|
||||||
ct_test(pTest, test_data.value.type.Real == data->value.type.Real);
|
ct_test(pTest, test_value.type.Real == value->type.Real);
|
||||||
break;
|
break;
|
||||||
case BACNET_APPLICATION_TAG_ENUMERATED:
|
case BACNET_APPLICATION_TAG_ENUMERATED:
|
||||||
ct_test(pTest, test_data.value.type.Enumerated ==
|
ct_test(pTest, test_value.type.Enumerated ==
|
||||||
data->value.type.Enumerated);
|
value->type.Enumerated);
|
||||||
break;
|
break;
|
||||||
case BACNET_APPLICATION_TAG_DATE:
|
case BACNET_APPLICATION_TAG_DATE:
|
||||||
ct_test(pTest, test_data.value.type.Date.year ==
|
ct_test(pTest, test_value.type.Date.year ==
|
||||||
data->value.type.Date.year);
|
value->type.Date.year);
|
||||||
ct_test(pTest, test_data.value.type.Date.month ==
|
ct_test(pTest, test_value.type.Date.month ==
|
||||||
data->value.type.Date.month);
|
value->type.Date.month);
|
||||||
ct_test(pTest, test_data.value.type.Date.day ==
|
ct_test(pTest, test_value.type.Date.day ==
|
||||||
data->value.type.Date.day);
|
value->type.Date.day);
|
||||||
ct_test(pTest, test_data.value.type.Date.wday ==
|
ct_test(pTest, test_value.type.Date.wday ==
|
||||||
data->value.type.Date.wday);
|
value->type.Date.wday);
|
||||||
break;
|
break;
|
||||||
case BACNET_APPLICATION_TAG_TIME:
|
case BACNET_APPLICATION_TAG_TIME:
|
||||||
ct_test(pTest, test_data.value.type.Time.hour ==
|
ct_test(pTest, test_value.type.Time.hour ==
|
||||||
data->value.type.Time.hour);
|
value->type.Time.hour);
|
||||||
ct_test(pTest, test_data.value.type.Time.min ==
|
ct_test(pTest, test_value.type.Time.min ==
|
||||||
data->value.type.Time.min);
|
value->type.Time.min);
|
||||||
ct_test(pTest, test_data.value.type.Time.sec ==
|
ct_test(pTest, test_value.type.Time.sec ==
|
||||||
data->value.type.Time.sec);
|
value->type.Time.sec);
|
||||||
ct_test(pTest, test_data.value.type.Time.hundredths ==
|
ct_test(pTest, test_value.type.Time.hundredths ==
|
||||||
data->value.type.Time.hundredths);
|
value->type.Time.hundredths);
|
||||||
break;
|
break;
|
||||||
case BACNET_APPLICATION_TAG_OBJECT_ID:
|
case BACNET_APPLICATION_TAG_OBJECT_ID:
|
||||||
ct_test(pTest, test_data.value.type.Object_Id.type ==
|
ct_test(pTest, test_value.type.Object_Id.type ==
|
||||||
data->value.type.Object_Id.type);
|
value->type.Object_Id.type);
|
||||||
ct_test(pTest, test_data.value.type.Object_Id.instance ==
|
ct_test(pTest, test_value.type.Object_Id.instance ==
|
||||||
data->value.type.Object_Id.instance);
|
value->type.Object_Id.instance);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -270,76 +279,76 @@ void testWritePropertyTag(Test * pTest, BACNET_WRITE_PROPERTY_DATA * data)
|
|||||||
|
|
||||||
void testWriteProperty(Test * pTest)
|
void testWriteProperty(Test * pTest)
|
||||||
{
|
{
|
||||||
BACNET_WRITE_PROPERTY_DATA data = { 0 };
|
BACNET_APPLICATION_DATA_VALUE value;
|
||||||
|
|
||||||
data.value.tag = BACNET_APPLICATION_TAG_NULL;
|
value.tag = BACNET_APPLICATION_TAG_NULL;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
|
|
||||||
data.value.tag = BACNET_APPLICATION_TAG_BOOLEAN;
|
value.tag = BACNET_APPLICATION_TAG_BOOLEAN;
|
||||||
data.value.type.Boolean = true;
|
value.type.Boolean = true;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
data.value.type.Boolean = false;
|
value.type.Boolean = false;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
|
|
||||||
data.value.tag = BACNET_APPLICATION_TAG_UNSIGNED_INT;
|
value.tag = BACNET_APPLICATION_TAG_UNSIGNED_INT;
|
||||||
data.value.type.Unsigned_Int = 0;
|
value.type.Unsigned_Int = 0;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
data.value.type.Unsigned_Int = 0xFFFF;
|
value.type.Unsigned_Int = 0xFFFF;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
data.value.type.Unsigned_Int = 0xFFFFFFFF;
|
value.type.Unsigned_Int = 0xFFFFFFFF;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
|
|
||||||
data.value.tag = BACNET_APPLICATION_TAG_SIGNED_INT;
|
value.tag = BACNET_APPLICATION_TAG_SIGNED_INT;
|
||||||
data.value.type.Signed_Int = 0;
|
value.type.Signed_Int = 0;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
data.value.type.Signed_Int = -1;
|
value.type.Signed_Int = -1;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
data.value.type.Signed_Int = 32768;
|
value.type.Signed_Int = 32768;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
data.value.type.Signed_Int = -32768;
|
value.type.Signed_Int = -32768;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
|
|
||||||
data.value.tag = BACNET_APPLICATION_TAG_REAL;
|
value.tag = BACNET_APPLICATION_TAG_REAL;
|
||||||
data.value.type.Real = 0.0;
|
value.type.Real = 0.0;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
data.value.type.Real = -1.0;
|
value.type.Real = -1.0;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
data.value.type.Real = 1.0;
|
value.type.Real = 1.0;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
data.value.type.Real = 3.14159;
|
value.type.Real = 3.14159;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
data.value.type.Real = -3.14159;
|
value.type.Real = -3.14159;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
|
|
||||||
data.value.tag = BACNET_APPLICATION_TAG_ENUMERATED;
|
value.tag = BACNET_APPLICATION_TAG_ENUMERATED;
|
||||||
data.value.type.Enumerated = 0;
|
value.type.Enumerated = 0;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
data.value.type.Enumerated = 0xFFFF;
|
value.type.Enumerated = 0xFFFF;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
data.value.type.Enumerated = 0xFFFFFFFF;
|
value.type.Enumerated = 0xFFFFFFFF;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
|
|
||||||
data.value.tag = BACNET_APPLICATION_TAG_DATE;
|
value.tag = BACNET_APPLICATION_TAG_DATE;
|
||||||
data.value.type.Date.year = 2005;
|
value.type.Date.year = 2005;
|
||||||
data.value.type.Date.month = 5;
|
value.type.Date.month = 5;
|
||||||
data.value.type.Date.day = 22;
|
value.type.Date.day = 22;
|
||||||
data.value.type.Date.wday = 1;
|
value.type.Date.wday = 1;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
|
|
||||||
data.value.tag = BACNET_APPLICATION_TAG_TIME;
|
value.tag = BACNET_APPLICATION_TAG_TIME;
|
||||||
data.value.type.Time.hour = 23;
|
value.type.Time.hour = 23;
|
||||||
data.value.type.Time.min = 59;
|
value.type.Time.min = 59;
|
||||||
data.value.type.Time.sec = 59;
|
value.type.Time.sec = 59;
|
||||||
data.value.type.Time.hundredths = 12;
|
value.type.Time.hundredths = 12;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
|
|
||||||
data.value.tag = BACNET_APPLICATION_TAG_OBJECT_ID;
|
value.tag = BACNET_APPLICATION_TAG_OBJECT_ID;
|
||||||
data.value.type.Object_Id.type = OBJECT_ANALOG_INPUT;
|
value.type.Object_Id.type = OBJECT_ANALOG_INPUT;
|
||||||
data.value.type.Object_Id.instance = 0;
|
value.type.Object_Id.instance = 0;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
data.value.type.Object_Id.type = OBJECT_LIFE_SAFETY_ZONE;
|
value.type.Object_Id.type = OBJECT_LIFE_SAFETY_ZONE;
|
||||||
data.value.type.Object_Id.instance = BACNET_MAX_INSTANCE;
|
value.type.Object_Id.instance = BACNET_MAX_INSTANCE;
|
||||||
testWritePropertyTag(pTest, &data);
|
testWritePropertyTag(pTest, &value);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user