From 810a2f93dec0ea8153dcd3c45fb6d7074db986a5 Mon Sep 17 00:00:00 2001 From: Steve Karg Date: Wed, 23 Jun 2021 10:10:12 -0500 Subject: [PATCH] Feature/write property type check refactor (#182) * refactor write-property tag check * modify ports objects to use write-property tag check API * modify example objects to use write-property tag check API * Fix object unit test builds * Fix and run unit ztests via CMake * Enable unit testing on Travis CI Co-authored-by: Steve Karg --- .github/workflows/main.yml | 14 +- .travis.yml | 6 +- CMakeLists.txt | 1 - apps/piface/device.c | 144 +----- ports/bdk-atxx4-mstp/av.c | 14 +- ports/bdk-atxx4-mstp/bo.c | 18 +- ports/esp32/src/ai.c | 134 +---- ports/esp32/src/bo.c | 75 +-- ports/esp32/src/device.c | 172 ++----- ports/rx62n/bo.c | 18 +- ports/rx62n/device.c | 21 +- ports/stm32f10x/bo.c | 18 +- ports/xplained/ai.c | 13 +- src/bacnet/basic/object/Makefile | 151 ------ src/bacnet/basic/object/acc.c | 75 --- src/bacnet/basic/object/acc.mak | 43 -- src/bacnet/basic/object/access_credential.c | 72 +-- src/bacnet/basic/object/access_credential.mak | 45 -- src/bacnet/basic/object/access_door.c | 94 +--- src/bacnet/basic/object/access_door.h | 7 - src/bacnet/basic/object/access_door.mak | 42 -- src/bacnet/basic/object/access_point.c | 67 --- src/bacnet/basic/object/access_point.h | 7 - src/bacnet/basic/object/access_point.mak | 43 -- src/bacnet/basic/object/access_rights.c | 72 +-- src/bacnet/basic/object/access_rights.h | 7 - src/bacnet/basic/object/access_rights.mak | 43 -- src/bacnet/basic/object/access_user.c | 71 +-- src/bacnet/basic/object/access_user.h | 7 - src/bacnet/basic/object/access_user.mak | 42 -- src/bacnet/basic/object/access_zone.c | 77 +-- src/bacnet/basic/object/access_zone.h | 7 - src/bacnet/basic/object/access_zone.mak | 42 -- src/bacnet/basic/object/ai.c | 138 +---- src/bacnet/basic/object/ai.h | 7 - src/bacnet/basic/object/ai.mak | 43 -- src/bacnet/basic/object/ao.c | 87 +--- src/bacnet/basic/object/ao.h | 7 - src/bacnet/basic/object/ao.mak | 42 -- src/bacnet/basic/object/av.c | 129 +---- src/bacnet/basic/object/av.h | 7 - src/bacnet/basic/object/av.mak | 42 -- src/bacnet/basic/object/bacfile.c | 9 +- src/bacnet/basic/object/bi.c | 81 +-- src/bacnet/basic/object/bi.h | 7 - src/bacnet/basic/object/bi.mak | 42 -- src/bacnet/basic/object/bo.c | 79 +-- src/bacnet/basic/object/bo.mak | 42 -- src/bacnet/basic/object/bv.c | 25 +- src/bacnet/basic/object/bv.mak | 42 -- src/bacnet/basic/object/channel.c | 16 +- src/bacnet/basic/object/command.c | 26 +- src/bacnet/basic/object/command.mak | 43 -- .../basic/object/credential_data_input.c | 18 +- .../basic/object/credential_data_input.mak | 45 -- src/bacnet/basic/object/csv.c | 22 +- src/bacnet/basic/object/csv.mak | 42 -- src/bacnet/basic/object/device.c | 123 +++-- src/bacnet/basic/object/device.mak | 54 -- src/bacnet/basic/object/gateway/gw_device.c | 8 +- src/bacnet/basic/object/iv.c | 9 +- src/bacnet/basic/object/lc.c | 27 +- src/bacnet/basic/object/lc.mak | 42 -- src/bacnet/basic/object/lo.c | 32 +- src/bacnet/basic/object/lo.mak | 42 -- src/bacnet/basic/object/lsp.c | 22 +- src/bacnet/basic/object/lsp.mak | 42 -- src/bacnet/basic/object/ms-input.c | 126 +++-- src/bacnet/basic/object/ms-input.mak | 42 -- src/bacnet/basic/object/mso.c | 25 +- src/bacnet/basic/object/mso.mak | 42 -- src/bacnet/basic/object/msv.c | 22 +- src/bacnet/basic/object/msv.mak | 42 -- src/bacnet/basic/object/nc.c | 12 +- src/bacnet/basic/object/netport.c | 27 +- src/bacnet/basic/object/netport.mak | 43 -- src/bacnet/basic/object/osv.c | 25 +- src/bacnet/basic/object/osv.mak | 43 -- src/bacnet/basic/object/piv.c | 25 +- src/bacnet/basic/object/piv.mak | 42 -- src/bacnet/basic/object/schedule.c | 4 +- src/bacnet/basic/object/schedule.mak | 43 -- src/bacnet/basic/object/trendlog.c | 52 +- src/bacnet/wp.c | 126 +++++ src/bacnet/wp.h | 16 + test/bacnet/abort/CMakeLists.txt | 2 +- test/bacnet/bacreal/Makefile | 471 ++++++++++++++++-- test/bacnet/basic/object/acc/src/main.c | 41 +- .../object/access_credential/CMakeLists.txt | 2 +- .../basic/object/access_credential/src/main.c | 50 +- .../basic/object/access_credential/stubs.c | 43 -- .../basic/object/access_door/CMakeLists.txt | 2 +- test/bacnet/basic/object/access_door/stubs.c | 43 -- .../basic/object/access_rights/CMakeLists.txt | 2 +- .../bacnet/basic/object/access_rights/stubs.c | 43 -- .../basic/object/access_user/CMakeLists.txt | 2 +- test/bacnet/basic/object/access_user/stubs.c | 43 -- .../basic/object/access_zone/CMakeLists.txt | 2 +- test/bacnet/basic/object/access_zone/stubs.c | 43 -- test/bacnet/basic/object/ai/CMakeLists.txt | 2 +- test/bacnet/basic/object/ai/stubs.c | 43 -- test/bacnet/basic/object/ao/CMakeLists.txt | 2 +- test/bacnet/basic/object/ao/stubs.c | 43 -- test/bacnet/basic/object/av/CMakeLists.txt | 2 +- test/bacnet/basic/object/av/stubs.c | 43 -- test/bacnet/basic/object/bi/CMakeLists.txt | 2 +- test/bacnet/basic/object/bi/stubs.c | 43 -- test/bacnet/basic/object/bo/CMakeLists.txt | 2 +- test/bacnet/basic/object/bo/stubs.c | 43 -- test/bacnet/basic/object/bv/CMakeLists.txt | 2 +- test/bacnet/basic/object/bv/stubs.c | 43 -- .../basic/object/command/CMakeLists.txt | 2 +- test/bacnet/basic/object/command/stubs.c | 43 -- .../credential_data_input/CMakeLists.txt | 2 +- .../object/credential_data_input/stubs.c | 43 -- test/bacnet/basic/object/lc/CMakeLists.txt | 1 + test/bacnet/basic/object/lc/stubs.c | 15 - test/bacnet/basic/object/lo/CMakeLists.txt | 2 +- test/bacnet/basic/object/lo/stubs.c | 59 --- test/bacnet/basic/object/lsp/CMakeLists.txt | 2 +- test/bacnet/basic/object/lsp/stubs.c | 43 -- .../basic/object/ms-input/CMakeLists.txt | 39 -- test/bacnet/basic/object/ms-input/src/main.c | 13 + test/bacnet/basic/object/ms-input/stubs.c | 58 --- test/bacnet/basic/object/mso/CMakeLists.txt | 2 +- test/bacnet/basic/object/mso/stubs.c | 43 -- test/bacnet/basic/object/msv/CMakeLists.txt | 2 +- test/bacnet/basic/object/msv/stubs.c | 43 -- .../basic/object/netport/CMakeLists.txt | 1 + .../basic/object/objects/CMakeLists.txt | 1 - test/bacnet/basic/object/objects/stubs.c | 43 -- test/bacnet/basic/object/osv/CMakeLists.txt | 2 +- test/bacnet/basic/object/osv/stubs.c | 43 -- test/bacnet/basic/object/piv/CMakeLists.txt | 2 +- test/bacnet/basic/object/piv/stubs.c | 43 -- .../basic/object/schedule/CMakeLists.txt | 2 +- test/bacnet/basic/object/schedule/stubs.c | 43 -- test/bacnet/dcc/src/main.c | 2 +- test/bacnet/wp/src/main.c | 3 + 139 files changed, 1142 insertions(+), 4375 deletions(-) delete mode 100644 src/bacnet/basic/object/Makefile delete mode 100644 src/bacnet/basic/object/acc.mak delete mode 100644 src/bacnet/basic/object/access_credential.mak delete mode 100644 src/bacnet/basic/object/access_door.mak delete mode 100644 src/bacnet/basic/object/access_point.mak delete mode 100644 src/bacnet/basic/object/access_rights.mak delete mode 100644 src/bacnet/basic/object/access_user.mak delete mode 100644 src/bacnet/basic/object/access_zone.mak delete mode 100644 src/bacnet/basic/object/ai.mak delete mode 100644 src/bacnet/basic/object/ao.mak delete mode 100644 src/bacnet/basic/object/av.mak delete mode 100644 src/bacnet/basic/object/bi.mak delete mode 100644 src/bacnet/basic/object/bo.mak delete mode 100644 src/bacnet/basic/object/bv.mak delete mode 100644 src/bacnet/basic/object/command.mak delete mode 100644 src/bacnet/basic/object/credential_data_input.mak delete mode 100644 src/bacnet/basic/object/csv.mak delete mode 100644 src/bacnet/basic/object/device.mak delete mode 100644 src/bacnet/basic/object/lc.mak delete mode 100644 src/bacnet/basic/object/lo.mak delete mode 100644 src/bacnet/basic/object/lsp.mak delete mode 100644 src/bacnet/basic/object/ms-input.mak delete mode 100644 src/bacnet/basic/object/mso.mak delete mode 100644 src/bacnet/basic/object/msv.mak delete mode 100644 src/bacnet/basic/object/netport.mak delete mode 100644 src/bacnet/basic/object/osv.mak delete mode 100644 src/bacnet/basic/object/piv.mak delete mode 100644 src/bacnet/basic/object/schedule.mak delete mode 100644 test/bacnet/basic/object/access_credential/stubs.c delete mode 100644 test/bacnet/basic/object/access_door/stubs.c delete mode 100644 test/bacnet/basic/object/access_rights/stubs.c delete mode 100644 test/bacnet/basic/object/access_user/stubs.c delete mode 100644 test/bacnet/basic/object/access_zone/stubs.c delete mode 100644 test/bacnet/basic/object/ai/stubs.c delete mode 100644 test/bacnet/basic/object/ao/stubs.c delete mode 100644 test/bacnet/basic/object/av/stubs.c delete mode 100644 test/bacnet/basic/object/bi/stubs.c delete mode 100644 test/bacnet/basic/object/bo/stubs.c delete mode 100644 test/bacnet/basic/object/bv/stubs.c delete mode 100644 test/bacnet/basic/object/command/stubs.c delete mode 100644 test/bacnet/basic/object/credential_data_input/stubs.c delete mode 100644 test/bacnet/basic/object/lo/stubs.c delete mode 100644 test/bacnet/basic/object/lsp/stubs.c delete mode 100644 test/bacnet/basic/object/ms-input/stubs.c delete mode 100644 test/bacnet/basic/object/mso/stubs.c delete mode 100644 test/bacnet/basic/object/msv/stubs.c delete mode 100644 test/bacnet/basic/object/objects/stubs.c delete mode 100644 test/bacnet/basic/object/osv/stubs.c delete mode 100644 test/bacnet/basic/object/piv/stubs.c delete mode 100644 test/bacnet/basic/object/schedule/stubs.c diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4cf85d9a..b1ff96bd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -44,10 +44,10 @@ jobs: # Execute the build. You can specify a specific target with "--target " run: cmake --build . --config $BUILD_TYPE - # TODO: add tests to the pipeline - # - name: Test - # working-directory: ${{runner.workspace}}/build - # shell: bash - # # Execute tests defined by the CMake configuration. - # # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - # run: make tests && ./tests + - name: Test + # Use a bash shell to execute tests in the pipeline + working-directory: ${{runner.workspace}}/build + shell: bash + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: make test diff --git a/.travis.yml b/.travis.yml index 61122ec9..65dd6fa1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,10 +30,12 @@ jobs: - i686-w64-mingw32-gcc --version script: - make win32 - - stage: demos-build-cmake + - stage: demos-test-build-cmake os: linux compiler: gcc - script: mkdir build && cd build && cmake .. -DBUILD_SHARED_LIBS=ON && cmake --build . --clean-first + script: + - mkdir build && cd build && cmake .. -DBUILD_SHARED_LIBS=ON && cmake --build . --clean-first + - make test - stage: gateway-build os: linux compiler: gcc diff --git a/CMakeLists.txt b/CMakeLists.txt index 2508ac42..9bf948c1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -172,7 +172,6 @@ add_library(${PROJECT_NAME} src/bacnet/basic/object/lo.h src/bacnet/basic/object/lsp.c src/bacnet/basic/object/lsp.h - src/bacnet/basic/object/Makefile src/bacnet/basic/object/ms-input.c src/bacnet/basic/object/ms-input.h src/bacnet/basic/object/mso.c diff --git a/apps/piface/device.c b/apps/piface/device.c index 32361f8f..d24adebf 100644 --- a/apps/piface/device.c +++ b/apps/piface/device.c @@ -1134,8 +1134,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) /* FIXME: len < application_data_len: more data? */ switch (wp_data->object_property) { case PROP_OBJECT_IDENTIFIER: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_OBJECT_ID, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_OBJECT_ID); if (status) { if ((value.type.Object_Id.type == OBJECT_DEVICE) && (Device_Set_Object_Instance_Number( @@ -1150,36 +1150,32 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_NUMBER_OF_APDU_RETRIES: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { /* FIXME: bounds check? */ apdu_retries_set((uint8_t)value.type.Unsigned_Int); } break; case PROP_APDU_TIMEOUT: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { /* FIXME: bounds check? */ apdu_timeout_set((uint16_t)value.type.Unsigned_Int); } break; case PROP_VENDOR_IDENTIFIER: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { /* FIXME: bounds check? */ Device_Set_Vendor_Identifier((uint16_t)value.type.Unsigned_Int); } break; case PROP_SYSTEM_STATUS: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { temp = Device_Set_System_Status( (BACNET_DEVICE_STATUS)value.type.Enumerated, false); @@ -1196,9 +1192,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OBJECT_NAME: - status = WPValidateString(&value, - characterstring_capacity(&My_Object_Name), false, - &wp_data->error_class, &wp_data->error_code); + status = write_property_string_valid(&wp_data, &value, + characterstring_capacity(&My_Object_Name)); if (status) { /* All the object names in a device must be unique */ if (Device_Valid_Object_Name(&value.type.Character_String, @@ -1218,8 +1213,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_LOCATION: - status = WPValidateString(&value, MAX_DEV_LOC_LEN, true, - &wp_data->error_class, &wp_data->error_code); + status = write_property_empty_string_valid(&wp_data, &value, + MAX_DEV_LOC_LEN); if (status) { Device_Set_Location( characterstring_value(&value.type.Character_String), @@ -1228,8 +1223,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_DESCRIPTION: - status = WPValidateString(&value, MAX_DEV_DESC_LEN, true, - &wp_data->error_class, &wp_data->error_code); + status = write_property_empty_string_valid(&wp_data, &value, + MAX_DEV_DESC_LEN); if (status) { Device_Set_Description( characterstring_value(&value.type.Character_String), @@ -1237,8 +1232,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_MODEL_NAME: - status = WPValidateString(&value, MAX_DEV_MOD_LEN, true, - &wp_data->error_class, &wp_data->error_code); + status = write_property_empty_string_valid(&wp_data, &value, + MAX_DEV_MOD_LEN); if (status) { Device_Set_Model_Name( characterstring_value(&value.type.Character_String), @@ -1248,9 +1243,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) case PROP_MAX_INFO_FRAMES: #if defined(BACDL_MSTP) - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { if (value.type.Unsigned_Int <= 255) { dlmstp_set_max_info_frames( @@ -1265,9 +1259,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) #endif case PROP_MAX_MASTER: #if defined(BACDL_MSTP) - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { if ((value.type.Unsigned_Int > 0) && (value.type.Unsigned_Int <= 127)) { @@ -1585,96 +1578,3 @@ void Routing_Device_Init(uint32_t first_object_instance) } #endif /* BAC_ROUTING */ - -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -bool WPValidateString(BACNET_APPLICATION_DATA_VALUE *pValue, - int iMaxLen, - bool bEmptyAllowed, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - iMaxLen = iMaxLen; - bEmptyAllowed = bEmptyAllowed; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -int handler_cov_encode_subscriptions(uint8_t *apdu, int max_apdu) -{ - apdu = apdu; - max_apdu = max_apdu; - - return 0; -} - -void testDevice(Test *pTest) -{ - bool status = false; - const char *name = "Patricia"; - - status = Device_Set_Object_Instance_Number(0); - ct_test(pTest, Device_Object_Instance_Number() == 0); - ct_test(pTest, status == true); - status = Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE); - ct_test(pTest, Device_Object_Instance_Number() == BACNET_MAX_INSTANCE); - ct_test(pTest, status == true); - status = Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE / 2); - ct_test( - pTest, Device_Object_Instance_Number() == (BACNET_MAX_INSTANCE / 2)); - ct_test(pTest, status == true); - status = Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE + 1); - ct_test( - pTest, Device_Object_Instance_Number() != (BACNET_MAX_INSTANCE + 1)); - ct_test(pTest, status == false); - - Device_Set_System_Status(STATUS_NON_OPERATIONAL, true); - ct_test(pTest, Device_System_Status() == STATUS_NON_OPERATIONAL); - - ct_test(pTest, Device_Vendor_Identifier() == BACNET_VENDOR_ID); - - Device_Set_Model_Name(name, strlen(name)); - ct_test(pTest, strcmp(Device_Model_Name(), name) == 0); - - return; -} - -#ifdef TEST_DEVICE -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Device", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testDevice); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_DEVICE */ -#endif /* BAC_TEST */ diff --git a/ports/bdk-atxx4-mstp/av.c b/ports/bdk-atxx4-mstp/av.c index c2893b86..2413672a 100644 --- a/ports/bdk-atxx4-mstp/av.c +++ b/ports/bdk-atxx4-mstp/av.c @@ -338,8 +338,8 @@ bool Analog_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { status = Analog_Value_Present_Value_Set(wp_data->object_instance, @@ -360,9 +360,8 @@ bool Analog_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_OUT_OF_SERVICE: #if 0 - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { object_index = Analog_Value_Instance_To_Index(wp_data->object_instance); @@ -372,9 +371,8 @@ bool Analog_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) #endif case PROP_UNITS: #if 0 - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { object_index = Analog_Value_Instance_To_Index(wp_data->object_instance); diff --git a/ports/bdk-atxx4-mstp/bo.c b/ports/bdk-atxx4-mstp/bo.c index e3ec1035..1d1992dc 100644 --- a/ports/bdk-atxx4-mstp/bo.c +++ b/ports/bdk-atxx4-mstp/bo.c @@ -392,9 +392,8 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { priority = wp_data->priority; /* Command priority 6 is reserved for use by Minimum On/Off @@ -420,8 +419,8 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } } else { - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_NULL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_NULL); if (status) { level = BINARY_NULL; priority = wp_data->priority; @@ -445,17 +444,16 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Binary_Output_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); } break; case PROP_POLARITY: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { if (value.type.Enumerated < MAX_POLARITY) { Binary_Output_Polarity_Set(wp_data->object_instance, diff --git a/ports/esp32/src/ai.c b/ports/esp32/src/ai.c index 806abb93..b0671012 100644 --- a/ports/esp32/src/ai.c +++ b/ports/esp32/src/ai.c @@ -629,9 +629,8 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) switch ((int)wp_data->object_property) { case PROP_PRESENT_VALUE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { if (CurrentAI->Out_Of_Service == true) { Analog_Input_Present_Value_Set( @@ -645,8 +644,8 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Analog_Input_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); @@ -654,17 +653,16 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_UNITS: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { CurrentAI->Units = value.type.Enumerated; } break; case PROP_COV_INCREMENT: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { if (value.type.Real >= 0.0) { Analog_Input_COV_Increment_Set( @@ -679,10 +677,8 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) #if defined(INTRINSIC_REPORTING) case PROP_TIME_DELAY: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { CurrentAI->Time_Delay = value.type.Unsigned_Int; CurrentAI->Remaining_Time_Delay = CurrentAI->Time_Delay; @@ -690,28 +686,24 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_NOTIFICATION_CLASS: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { CurrentAI->Notification_Class = value.type.Unsigned_Int; } break; case PROP_HIGH_LIMIT: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { CurrentAI->High_Limit = value.type.Real; } break; case PROP_LOW_LIMIT: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { CurrentAI->Low_Limit = value.type.Real; } @@ -720,17 +712,14 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) case PROP_DEADBAND: status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, &wp_data->error_class, &wp_data->error_code); - if (status) { CurrentAI->Deadband = value.type.Real; } break; case PROP_LIMIT_ENABLE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_BIT_STRING, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BIT_STRING); if (status) { if (value.type.Bit_String.bits_used == 2) { CurrentAI->Limit_Enable = value.type.Bit_String.value[0]; @@ -743,10 +732,8 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_EVENT_ENABLE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_BIT_STRING, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BIT_STRING); if (status) { if (value.type.Bit_String.bits_used == 3) { CurrentAI->Event_Enable = value.type.Bit_String.value[0]; @@ -759,10 +746,8 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_NOTIFY_TYPE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { switch ((BACNET_NOTIFY_TYPE)value.type.Enumerated) { case NOTIFY_EVENT: @@ -1324,78 +1309,3 @@ int Analog_Input_Alarm_Summary( return -1; /* end of list */ } #endif /* defined(INTRINSIC_REPORTING) */ - -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - bool bResult; - - /* - * start out assuming success and only set up error - * response if validation fails. - */ - bResult = true; - if (pValue->tag != ucExpectedTag) { - bResult = false; - *pErrorClass = ERROR_CLASS_PROPERTY; - *pErrorCode = ERROR_CODE_INVALID_DATA_TYPE; - } - - return (bResult); -} - -void testAnalogInput(Test *pTest) -{ - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0; - uint32_t len_value = 0; - uint8_t tag_number = 0; - uint32_t decoded_instance = 0; - uint16_t decoded_type = 0; - BACNET_READ_PROPERTY_DATA rpdata; - - Analog_Input_Init(); - rpdata.application_data = &apdu[0]; - rpdata.application_data_len = sizeof(apdu); - rpdata.object_type = OBJECT_ANALOG_INPUT; - rpdata.object_instance = 1; - rpdata.object_property = PROP_OBJECT_IDENTIFIER; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Analog_Input_Read_Property(&rpdata); - ct_test(pTest, len != 0); - len = decode_tag_number_and_value(&apdu[0], &tag_number, &len_value); - ct_test(pTest, tag_number == BACNET_APPLICATION_TAG_OBJECT_ID); - len = decode_object_id(&apdu[len], &decoded_type, &decoded_instance); - ct_test(pTest, decoded_type == rpdata.object_type); - ct_test(pTest, decoded_instance == rpdata.object_instance); - - return; -} - -#ifdef TEST_ANALOG_INPUT -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Analog Input", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testAnalogInput); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_ANALOG_INPUT */ -#endif /* BAC_TEST */ diff --git a/ports/esp32/src/bo.c b/ports/esp32/src/bo.c index 155fc9ae..02f34907 100644 --- a/ports/esp32/src/bo.c +++ b/ports/esp32/src/bo.c @@ -392,8 +392,8 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } } else { - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_NULL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_NULL); if (status) { level = BINARY_NULL; object_index = Binary_Output_Instance_To_Index( @@ -418,8 +418,8 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { object_index = Binary_Output_Instance_To_Index(wp_data->object_instance); @@ -448,70 +448,3 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) return status; } - -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -void testBinaryOutput(Test *pTest) -{ - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0; - uint32_t len_value = 0; - uint8_t tag_number = 0; - uint16_t decoded_type = 0; - uint32_t decoded_instance = 0; - BACNET_READ_PROPERTY_DATA rpdata; - - Binary_Output_Init(); - rpdata.application_data = &apdu[0]; - rpdata.application_data_len = sizeof(apdu); - rpdata.object_type = OBJECT_BINARY_OUTPUT; - rpdata.object_instance = 1; - rpdata.object_property = PROP_OBJECT_IDENTIFIER; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Binary_Output_Read_Property(&rpdata); - ct_test(pTest, len != 0); - len = decode_tag_number_and_value(&apdu[0], &tag_number, &len_value); - ct_test(pTest, tag_number == BACNET_APPLICATION_TAG_OBJECT_ID); - len = decode_object_id(&apdu[len], &decoded_type, &decoded_instance); - ct_test(pTest, decoded_type == rpdata.object_type); - ct_test(pTest, decoded_instance == rpdata.object_instance); - - return; -} - -#ifdef TEST_BINARY_OUTPUT -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Binary Output", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testBinaryOutput); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_BINARY_INPUT */ -#endif /* BAC_TEST */ diff --git a/ports/esp32/src/device.c b/ports/esp32/src/device.c index e76bb765..de8a6a2a 100644 --- a/ports/esp32/src/device.c +++ b/ports/esp32/src/device.c @@ -1254,8 +1254,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) /* FIXME: len < application_data_len: more data? */ switch (wp_data->object_property) { case PROP_OBJECT_IDENTIFIER: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_OBJECT_ID, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_OBJECT_ID); if (status) { if ((value.type.Object_Id.type == OBJECT_DEVICE) && (Device_Set_Object_Instance_Number( @@ -1270,36 +1270,32 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_NUMBER_OF_APDU_RETRIES: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { /* FIXME: bounds check? */ apdu_retries_set((uint8_t)value.type.Unsigned_Int); } break; case PROP_APDU_TIMEOUT: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { /* FIXME: bounds check? */ apdu_timeout_set((uint16_t)value.type.Unsigned_Int); } break; case PROP_VENDOR_IDENTIFIER: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { /* FIXME: bounds check? */ Device_Set_Vendor_Identifier((uint16_t)value.type.Unsigned_Int); } break; case PROP_SYSTEM_STATUS: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { temp = Device_Set_System_Status( (BACNET_DEVICE_STATUS)value.type.Enumerated, false); @@ -1316,9 +1312,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OBJECT_NAME: - status = WPValidateString(&value, - characterstring_capacity(&My_Object_Name), false, - &wp_data->error_class, &wp_data->error_code); + status = write_property_string_valid(&wp_data, &value, + characterstring_capacity(&My_Object_Name)); if (status) { /* All the object names in a device must be unique */ if (Device_Valid_Object_Name(&value.type.Character_String, @@ -1338,8 +1333,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_LOCATION: - status = WPValidateString(&value, MAX_DEV_LOC_LEN, true, - &wp_data->error_class, &wp_data->error_code); + status = write_property_empty_string_valid(&wp_data, &value, + MAX_DEV_LOC_LEN); if (status) { Device_Set_Location( characterstring_value(&value.type.Character_String), @@ -1348,8 +1343,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_DESCRIPTION: - status = WPValidateString(&value, MAX_DEV_DESC_LEN, true, - &wp_data->error_class, &wp_data->error_code); + status = write_property_empty_string_valid(&wp_data, &value, + MAX_DEV_DESC_LEN); if (status) { Device_Set_Description( characterstring_value(&value.type.Character_String), @@ -1357,8 +1352,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_MODEL_NAME: - status = WPValidateString(&value, MAX_DEV_MOD_LEN, true, - &wp_data->error_class, &wp_data->error_code); + status = write_property_empty_string_valid(&wp_data, &value, + MAX_DEV_MOD_LEN); if (status) { Device_Set_Model_Name( characterstring_value(&value.type.Character_String), @@ -1367,7 +1362,9 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) break; #if defined(BACNET_TIME_MASTER) case PROP_TIME_SYNCHRONIZATION_INTERVAL: - if (value.tag == BACNET_APPLICATION_TAG_UNSIGNED_INT) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); + if (status) { if (value.type.Unsigned_Int < 65535) { minutes = value.type.Unsigned_Int; Device_Time_Sync_Interval_Set(minutes); @@ -1376,22 +1373,20 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; case PROP_ALIGN_INTERVALS: - if (value.tag == BACNET_APPLICATION_TAG_BOOLEAN) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); + if (status) { Device_Align_Intervals_Set(value.type.Boolean); status = true; - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; case PROP_INTERVAL_OFFSET: - if (value.tag == BACNET_APPLICATION_TAG_UNSIGNED_INT) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); + if (status) { if (value.type.Unsigned_Int < 65535) { minutes = value.type.Unsigned_Int; Device_Interval_Offset_Set(minutes); @@ -1400,9 +1395,6 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; #else @@ -1414,7 +1406,9 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) break; #endif case PROP_UTC_OFFSET: - if (value.tag == BACNET_APPLICATION_TAG_SIGNED_INT) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_SIGNED_INT); + if (status) { if ((value.type.Signed_Int < (12 * 60)) && (value.type.Signed_Int > (-12 * 60))) { Device_UTC_Offset_Set(value.type.Signed_Int); @@ -1423,16 +1417,12 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; #if defined(BACDL_MSTP) case PROP_MAX_INFO_FRAMES: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { if (value.type.Unsigned_Int <= 255) { dlmstp_set_max_info_frames( @@ -1445,9 +1435,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_MAX_MASTER: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { if ((value.type.Unsigned_Int > 0) && (value.type.Unsigned_Int <= 127)) { @@ -1781,96 +1770,3 @@ void Routing_Device_Init(uint32_t first_object_instance) } #endif /* BAC_ROUTING */ - -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -bool WPValidateString(BACNET_APPLICATION_DATA_VALUE *pValue, - int iMaxLen, - bool bEmptyAllowed, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - iMaxLen = iMaxLen; - bEmptyAllowed = bEmptyAllowed; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -int handler_cov_encode_subscriptions(uint8_t *apdu, int max_apdu) -{ - apdu = apdu; - max_apdu = max_apdu; - - return 0; -} - -void testDevice(Test *pTest) -{ - bool status = false; - const char *name = "Patricia"; - - status = Device_Set_Object_Instance_Number(0); - ct_test(pTest, Device_Object_Instance_Number() == 0); - ct_test(pTest, status == true); - status = Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE); - ct_test(pTest, Device_Object_Instance_Number() == BACNET_MAX_INSTANCE); - ct_test(pTest, status == true); - status = Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE / 2); - ct_test( - pTest, Device_Object_Instance_Number() == (BACNET_MAX_INSTANCE / 2)); - ct_test(pTest, status == true); - status = Device_Set_Object_Instance_Number(BACNET_MAX_INSTANCE + 1); - ct_test( - pTest, Device_Object_Instance_Number() != (BACNET_MAX_INSTANCE + 1)); - ct_test(pTest, status == false); - - Device_Set_System_Status(STATUS_NON_OPERATIONAL, true); - ct_test(pTest, Device_System_Status() == STATUS_NON_OPERATIONAL); - - ct_test(pTest, Device_Vendor_Identifier() == BACNET_VENDOR_ID); - - Device_Set_Model_Name(name, strlen(name)); - ct_test(pTest, strcmp(Device_Model_Name(), name) == 0); - - return; -} - -#ifdef TEST_DEVICE -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Device", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testDevice); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_DEVICE */ -#endif /* BAC_TEST */ diff --git a/ports/rx62n/bo.c b/ports/rx62n/bo.c index d9327f73..53b3746f 100644 --- a/ports/rx62n/bo.c +++ b/ports/rx62n/bo.c @@ -365,9 +365,8 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { priority = wp_data->priority; /* Command priority 6 is reserved for use by Minimum On/Off @@ -393,8 +392,8 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } } else { - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_NULL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_NULL); if (status) { level = BINARY_NULL; priority = wp_data->priority; @@ -418,17 +417,16 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Binary_Output_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); } break; case PROP_POLARITY: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { if (value.type.Enumerated < MAX_POLARITY) { Binary_Output_Polarity_Set(wp_data->object_instance, diff --git a/ports/rx62n/device.c b/ports/rx62n/device.c index 7a32c954..80633372 100644 --- a/ports/rx62n/device.c +++ b/ports/rx62n/device.c @@ -805,8 +805,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_OBJECT_IDENTIFIER: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_OBJECT_ID, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_OBJECT_ID); if (status) { if ((value.type.Object_Id.type == OBJECT_DEVICE) && (Device_Set_Object_Instance_Number( @@ -821,9 +821,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_SYSTEM_STATUS: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { temp = Device_Set_System_Status( (BACNET_DEVICE_STATUS)value.type.Enumerated, false); @@ -840,8 +839,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OBJECT_NAME: - status = WPValidateString(&value, MAX_DEV_NAME_LEN, false, - &wp_data->error_class, &wp_data->error_code); + status = write_property_string_valid(&wp_data, &value, + MAX_DEV_NAME_LEN); if (status) { Device_Set_Object_Name( characterstring_value(&value.type.Character_String), @@ -849,8 +848,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_LOCATION: - status = WPValidateString(&value, MAX_DEV_LOC_LEN, true, - &wp_data->error_class, &wp_data->error_code); + status = write_property_empty_string_valid(&wp_data, &value, + MAX_DEV_LOC_LEN); if (status) { Device_Set_Location( characterstring_value(&value.type.Character_String), @@ -859,8 +858,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_DESCRIPTION: - status = WPValidateString(&value, MAX_DEV_DESC_LEN, true, - &wp_data->error_class, &wp_data->error_code); + status = write_property_empty_string_valid(&wp_data, &value, + MAX_DEV_DESC_LEN); if (status) { Device_Set_Description( characterstring_value(&value.type.Character_String), diff --git a/ports/stm32f10x/bo.c b/ports/stm32f10x/bo.c index 837bb2e1..5ca2bf01 100644 --- a/ports/stm32f10x/bo.c +++ b/ports/stm32f10x/bo.c @@ -370,9 +370,8 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { priority = wp_data->priority; /* Command priority 6 is reserved for use by Minimum On/Off @@ -398,8 +397,8 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } } else { - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_NULL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_NULL); if (status) { level = BINARY_NULL; priority = wp_data->priority; @@ -423,17 +422,16 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Binary_Output_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); } break; case PROP_POLARITY: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { if (value.type.Enumerated < MAX_POLARITY) { Binary_Output_Polarity_Set(wp_data->object_instance, diff --git a/ports/xplained/ai.c b/ports/xplained/ai.c index 84f6816c..19d1c21e 100644 --- a/ports/xplained/ai.c +++ b/ports/xplained/ai.c @@ -287,8 +287,8 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch ((int)wp_data->object_property) { case PROP_PRESENT_VALUE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { if (Analog_Input_Out_Of_Service(wp_data->object_instance)) { Analog_Input_Present_Value_Set( @@ -301,17 +301,16 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Analog_Input_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); } break; case PROP_UNITS: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { Analog_Input_Out_Of_Service_Set( wp_data->object_instance, value.type.Enumerated); diff --git a/src/bacnet/basic/object/Makefile b/src/bacnet/basic/object/Makefile deleted file mode 100644 index 606ceb8a..00000000 --- a/src/bacnet/basic/object/Makefile +++ /dev/null @@ -1,151 +0,0 @@ -# Unit tests for the BACnet Stack project - -LOGFILE = test.log - -all: accumulator ai ao av bi bo bv csv lc lo lsp \ - mso msv ms-input netport osv piv command \ - access_credential access_door access_point access_rights \ - access_user access_zone credential_data_input - -clean: logfile - rm ${LOGFILE} - -logfile: - touch ${LOGFILE} - -report: - cat ${LOGFILE} - -accumulator: logfile acc.mak - $(MAKE) -s -f acc.mak clean all - ( ./accumulator >> ${LOGFILE} ) - $(MAKE) -s -f acc.mak clean - -access_credential: logfile access_credential.mak - $(MAKE) -s -f access_credential.mak clean all - ( ./access_credential >> ${LOGFILE} ) - $(MAKE) -s -f access_credential.mak clean - -access_door: logfile access_door.mak - $(MAKE) -s -f access_door.mak clean all - ( ./access_door >> ${LOGFILE} ) - $(MAKE) -s -f access_door.mak clean - -access_point: logfile access_point.mak - $(MAKE) -s -f access_point.mak clean all - ( ./access_point >> ${LOGFILE} ) - $(MAKE) -s -f access_point.mak clean - -access_rights: logfile access_rights.mak - $(MAKE) -s -f access_rights.mak clean all - ( ./access_rights >> ${LOGFILE} ) - $(MAKE) -s -f access_rights.mak clean - -access_user: logfile access_user.mak - $(MAKE) -s -f access_user.mak clean all - ( ./access_user >> ${LOGFILE} ) - $(MAKE) -s -f access_user.mak clean - -access_zone: logfile access_zone.mak - $(MAKE) -s -f access_zone.mak clean all - ( ./access_zone >> ${LOGFILE} ) - $(MAKE) -s -f access_zone.mak clean - -credential_data_input: logfile credential_data_input.mak - $(MAKE) -s -f credential_data_input.mak clean all - ( ./credential_data_input >> ${LOGFILE} ) - $(MAKE) -s -f credential_data_input.mak clean - -ai: logfile ai.mak - $(MAKE) -s -f ai.mak clean all - ( ./analog_input >> ${LOGFILE} ) - $(MAKE) -s -f ai.mak clean - -ao: logfile ao.mak - $(MAKE) -s -f ao.mak clean all - ( ./analog_output >> ${LOGFILE} ) - $(MAKE) -s -f ao.mak clean - -av: logfile av.mak - $(MAKE) -s -f av.mak clean all - ( ./analog_value >> ${LOGFILE} ) - $(MAKE) -s -f av.mak clean - -bi: logfile bi.mak - $(MAKE) -s -f bi.mak clean all - $(MAKE) -s -f bi.mak clean - -bo: logfile bo.mak - $(MAKE) -s -f bo.mak clean all - ( ./binary_output >> ${LOGFILE} ) - $(MAKE) -s -f bo.mak clean - -bv: logfile bv.mak - $(MAKE) -s -f bv.mak clean all - ( ./binary_value >> ${LOGFILE} ) - $(MAKE) -s -f bv.mak clean - -command: logfile command.mak - $(MAKE) -s -f command.mak clean all - ( ./command >> ${LOGFILE} ) - $(MAKE) -s -f command.mak clean - -csv: logfile csv.mak - $(MAKE) -s -f csv.mak clean all - ( ./characterstring_value >> ${LOGFILE} ) - $(MAKE) -s -f csv.mak clean - -device: logfile device.mak - $(MAKE) -s -f device.mak clean all - ( ./device >> ${LOGFILE} ) - $(MAKE) -s -f device.mak clean - -lc: logfile lc.mak - $(MAKE) -s -f lc.mak clean all - ( ./load_control >> ${LOGFILE} ) - $(MAKE) -s -f lc.mak clean - -lo: logfile lo.mak - $(MAKE) -s -f lo.mak clean all - ( ./lighting_output >> ${LOGFILE} ) - $(MAKE) -s -f lo.mak clean - -lsp: logfile lsp.mak - $(MAKE) -s -f lsp.mak clean all - ( ./life_safety_point >> ${LOGFILE} ) - $(MAKE) -s -f lsp.mak clean - -ms-input: logfile ms-input.mak - $(MAKE) -s -f ms-input.mak clean all - ( ./multistate_input >> ${LOGFILE} ) - $(MAKE) -s -f ms-input.mak clean - -mso: logfile mso.mak - $(MAKE) -s -f mso.mak clean all - ( ./multistate_output >> ${LOGFILE} ) - $(MAKE) -s -f mso.mak clean - -msv: logfile msv.mak - $(MAKE) -s -f msv.mak clean all - ( ./multistate_value >> ${LOGFILE} ) - $(MAKE) -s -f msv.mak clean - -osv: logfile osv.mak - $(MAKE) -s -f osv.mak clean all - ( ./octetstring_value >> ${LOGFILE} ) - $(MAKE) -s -f osv.mak clean - -netport: logfile netport.mak - $(MAKE) -s -f netport.mak clean all - ( ./network_port >> ${LOGFILE} ) - $(MAKE) -s -f netport.mak clean - -piv: logfile piv.mak - $(MAKE) -s -f piv.mak clean all - ( ./positiveinteger_value >> ${LOGFILE} ) - $(MAKE) -s -f piv.mak clean - -schedule: logfile schedule.mak - $(MAKE) -s -f schedule.mak clean all - ( ./schedule >> ${LOGFILE} ) - $(MAKE) -s -f schedule.mak clean diff --git a/src/bacnet/basic/object/acc.c b/src/bacnet/basic/object/acc.c index 67bf2172..92029ae9 100644 --- a/src/bacnet/basic/object/acc.c +++ b/src/bacnet/basic/object/acc.c @@ -441,78 +441,3 @@ void Accumulator_Init(void) unsigned_value |= (unsigned_value << 1); } } - -#ifdef TEST_ACCUMULATOR -#include -#include -#include "ctest.h" -#include "bactext.h" - -void test_Accumulator(Test *pTest) -{ - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0; - int test_len = 0; - BACNET_READ_PROPERTY_DATA rpdata = { 0 }; - BACNET_APPLICATION_DATA_VALUE value = { 0 }; - const int *property = &Properties_Required[0]; - BACNET_UNSIGNED_INTEGER unsigned_value = 1; - - Accumulator_Init(); - rpdata.application_data = &apdu[0]; - rpdata.application_data_len = sizeof(apdu); - rpdata.object_type = OBJECT_ACCUMULATOR; - rpdata.object_instance = 1; - - while ((*property) >= 0) { - rpdata.object_property = *property; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Accumulator_Read_Property(&rpdata); - ct_test(pTest, len != 0); - if (IS_CONTEXT_SPECIFIC(rpdata.application_data[0])) { - test_len = bacapp_decode_context_data( - rpdata.application_data, len, &value, rpdata.object_property); - } else { - test_len = bacapp_decode_application_data( - rpdata.application_data, len, &value); - } - if (len != test_len) { - printf("property '%s': failed to decode!\n", - bactext_property_name(rpdata.object_property)); - } - ct_test(pTest, len == test_len); - property++; - } - /* test 1-bit to 64-bit encode/decode of present-value */ - rpdata.object_property = PROP_PRESENT_VALUE; - while (unsigned_value != BACNET_UNSIGNED_INTEGER_MAX) { - Accumulator_Present_Value_Set(0, unsigned_value); - len = Accumulator_Read_Property(&rpdata); - ct_test(pTest, len != 0); - test_len = bacapp_decode_application_data( - rpdata.application_data, len, &value); - ct_test(pTest, len == test_len); - unsigned_value |= (unsigned_value << 1); - } - - return; -} - -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Accumulator", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, test_Accumulator); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif diff --git a/src/bacnet/basic/object/acc.mak b/src/bacnet/basic/object/acc.mak deleted file mode 100644 index 4b96135d..00000000 --- a/src/bacnet/basic/object/acc.mak +++ /dev/null @@ -1,43 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -HANDLER_DIR = ../handler -INCLUDES = -I../../include -I$(TEST_DIR) -I. -I$(HANDLER_DIR) -DEFINES = -DBIG_ENDIAN=0 -DBACDL_ALL -DBAC_TEST -DTEST_ACCUMULATOR - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = acc.c \ - $(SRC_DIR)/bacdcode.c \ - $(SRC_DIR)/bacint.c \ - $(SRC_DIR)/bacstr.c \ - $(SRC_DIR)/bacreal.c \ - $(SRC_DIR)/bacapp.c \ - $(SRC_DIR)/bacdevobjpropref.c \ - $(SRC_DIR)/bactext.c \ - $(SRC_DIR)/indtext.c \ - $(SRC_DIR)/datetime.c \ - $(TEST_DIR)/ctest.c - -TARGET = accumulator - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend - diff --git a/src/bacnet/basic/object/access_credential.c b/src/bacnet/basic/object/access_credential.c index 2fd7d17e..f9e3805f 100644 --- a/src/bacnet/basic/object/access_credential.c +++ b/src/bacnet/basic/object/access_credential.c @@ -342,9 +342,8 @@ bool Access_Credential_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) Access_Credential_Instance_To_Index(wp_data->object_instance); switch (wp_data->object_property) { case PROP_GLOBAL_IDENTIFIER: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { ac_descr[object_index].global_identifier = value.type.Unsigned_Int; @@ -373,70 +372,3 @@ bool Access_Credential_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) return status; } - -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -void testAccessCredential(Test *pTest) -{ - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0; - uint32_t len_value = 0; - uint8_t tag_number = 0; - uint32_t decoded_instance = 0; - uint16_t decoded_type = 0; - BACNET_READ_PROPERTY_DATA rpdata; - - Access_Credential_Init(); - rpdata.application_data = &apdu[0]; - rpdata.application_data_len = sizeof(apdu); - rpdata.object_type = OBJECT_ACCESS_CREDENTIAL; - rpdata.object_instance = 1; - rpdata.object_property = PROP_OBJECT_IDENTIFIER; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Access_Credential_Read_Property(&rpdata); - ct_test(pTest, len != 0); - len = decode_tag_number_and_value(&apdu[0], &tag_number, &len_value); - ct_test(pTest, tag_number == BACNET_APPLICATION_TAG_OBJECT_ID); - len = decode_object_id(&apdu[len], &decoded_type, &decoded_instance); - ct_test(pTest, decoded_type == rpdata.object_type); - ct_test(pTest, decoded_instance == rpdata.object_instance); - - return; -} - -#ifdef TEST_ACCESS_CREDENTIAL -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Access Credential", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testAccessCredential); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_ACCESS_CREDENTIAL */ -#endif /* BAC_TEST */ diff --git a/src/bacnet/basic/object/access_credential.mak b/src/bacnet/basic/object/access_credential.mak deleted file mode 100644 index 71360277..00000000 --- a/src/bacnet/basic/object/access_credential.mak +++ /dev/null @@ -1,45 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_ACCESS_CREDENTIAL - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = access_credential.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/assigned_access_rights.c \ - $(SRC_DIR)/bacnet/authentication_factor.c \ - $(SRC_DIR)/bacnet/credential_authentication_factor.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(TEST_DIR)/ctest.c - -TARGET = access_credential - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/access_door.c b/src/bacnet/basic/object/access_door.c index b9255574..425807d5 100644 --- a/src/bacnet/basic/object/access_door.c +++ b/src/bacnet/basic/object/access_door.c @@ -462,7 +462,9 @@ bool Access_Door_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) object_index = Access_Door_Instance_To_Index(wp_data->object_instance); switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - if (value.tag == BACNET_APPLICATION_TAG_ENUMERATED) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); + if (status) { /* Command priority 6 is reserved for use by Minimum On/Off algorithm and may not be used for other purposes in any object. */ @@ -480,8 +482,8 @@ bool Access_Door_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } } else { - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_NULL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_NULL); if (status) { status = Access_Door_Present_Value_Relinquish( wp_data->object_instance, wp_data->priority); @@ -493,8 +495,8 @@ bool Access_Door_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Access_Door_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); @@ -502,9 +504,8 @@ bool Access_Door_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_DOOR_STATUS: if (Access_Door_Out_Of_Service(wp_data->object_instance)) { - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { ad_descr[object_index].door_status = (BACNET_DOOR_STATUS)value.type.Enumerated; @@ -516,9 +517,8 @@ bool Access_Door_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_LOCK_STATUS: if (Access_Door_Out_Of_Service(wp_data->object_instance)) { - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { ad_descr[object_index].lock_status = (BACNET_LOCK_STATUS)value.type.Enumerated; @@ -530,9 +530,8 @@ bool Access_Door_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_DOOR_ALARM_STATE: if (Access_Door_Out_Of_Service(wp_data->object_instance)) { - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { ad_descr[object_index].door_alarm_state = (BACNET_DOOR_ALARM_STATE)value.type.Enumerated; @@ -566,70 +565,3 @@ bool Access_Door_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) return status; } - -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -void testAccessDoor(Test *pTest) -{ - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0; - uint32_t len_value = 0; - uint8_t tag_number = 0; - uint32_t decoded_instance = 0; - uint16_t decoded_type = 0; - BACNET_READ_PROPERTY_DATA rpdata; - - Access_Door_Init(); - rpdata.application_data = &apdu[0]; - rpdata.application_data_len = sizeof(apdu); - rpdata.object_type = OBJECT_ACCESS_DOOR; - rpdata.object_instance = 1; - rpdata.object_property = PROP_OBJECT_IDENTIFIER; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Access_Door_Read_Property(&rpdata); - ct_test(pTest, len != 0); - len = decode_tag_number_and_value(&apdu[0], &tag_number, &len_value); - ct_test(pTest, tag_number == BACNET_APPLICATION_TAG_OBJECT_ID); - len = decode_object_id(&apdu[len], &decoded_type, &decoded_instance); - ct_test(pTest, decoded_type == rpdata.object_type); - ct_test(pTest, decoded_instance == rpdata.object_instance); - - return; -} - -#ifdef TEST_ACCESS_DOOR -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Access Door", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testAccessDoor); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_ACCESS_DOOR */ -#endif /* BAC_TEST */ diff --git a/src/bacnet/basic/object/access_door.h b/src/bacnet/basic/object/access_door.h index d7dd2d9c..ed039f91 100644 --- a/src/bacnet/basic/object/access_door.h +++ b/src/bacnet/basic/object/access_door.h @@ -159,13 +159,6 @@ extern "C" { void Access_Door_Init( void); -#ifdef BAC_TEST -#include "ctest.h" - BACNET_STACK_EXPORT - void testAccessDoor( - Test * pTest); -#endif - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/bacnet/basic/object/access_door.mak b/src/bacnet/basic/object/access_door.mak deleted file mode 100644 index 07abb603..00000000 --- a/src/bacnet/basic/object/access_door.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_ACCESS_DOOR - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = access_door.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(TEST_DIR)/ctest.c - -TARGET = access_door - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/access_point.c b/src/bacnet/basic/object/access_point.c index d6b5c658..8b24a25c 100644 --- a/src/bacnet/basic/object/access_point.c +++ b/src/bacnet/basic/object/access_point.c @@ -362,70 +362,3 @@ bool Access_Point_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) return status; } - -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -void testAccessPoint(Test *pTest) -{ - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0; - uint32_t len_value = 0; - uint8_t tag_number = 0; - uint32_t decoded_instance = 0; - uint16_t decoded_type = 0; - BACNET_READ_PROPERTY_DATA rpdata; - - Access_Point_Init(); - rpdata.application_data = &apdu[0]; - rpdata.application_data_len = sizeof(apdu); - rpdata.object_type = OBJECT_ACCESS_POINT; - rpdata.object_instance = 1; - rpdata.object_property = PROP_OBJECT_IDENTIFIER; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Access_Point_Read_Property(&rpdata); - ct_test(pTest, len != 0); - len = decode_tag_number_and_value(&apdu[0], &tag_number, &len_value); - ct_test(pTest, tag_number == BACNET_APPLICATION_TAG_OBJECT_ID); - len = decode_object_id(&apdu[len], &decoded_type, &decoded_instance); - ct_test(pTest, decoded_type == rpdata.object_type); - ct_test(pTest, decoded_instance == rpdata.object_instance); - - return; -} - -#ifdef TEST_ACCESS_POINT -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Access Point", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testAccessPoint); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_ACCESS_POINT */ -#endif /* BAC_TEST */ diff --git a/src/bacnet/basic/object/access_point.h b/src/bacnet/basic/object/access_point.h index 3c920b6f..38c6a5a8 100644 --- a/src/bacnet/basic/object/access_point.h +++ b/src/bacnet/basic/object/access_point.h @@ -124,13 +124,6 @@ extern "C" { void Access_Point_Init( void); -#ifdef BAC_TEST -#include "ctest.h" - BACNET_STACK_EXPORT - void testAccessPoint( - Test * pTest); -#endif - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/bacnet/basic/object/access_point.mak b/src/bacnet/basic/object/access_point.mak deleted file mode 100644 index 11ac51ce..00000000 --- a/src/bacnet/basic/object/access_point.mak +++ /dev/null @@ -1,43 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_ACCESS_POINT - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = access_point.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(SRC_DIR)/bacnet/timestamp.c \ - $(TEST_DIR)/ctest.c - -TARGET = access_point - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/access_rights.c b/src/bacnet/basic/object/access_rights.c index 0af9201f..ecff9843 100644 --- a/src/bacnet/basic/object/access_rights.c +++ b/src/bacnet/basic/object/access_rights.c @@ -308,9 +308,8 @@ bool Access_Rights_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) object_index = Access_Rights_Instance_To_Index(wp_data->object_instance); switch (wp_data->object_property) { case PROP_GLOBAL_IDENTIFIER: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { ar_descr[object_index].global_identifier = value.type.Unsigned_Int; @@ -335,70 +334,3 @@ bool Access_Rights_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) return status; } - -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -void testAccessRights(Test *pTest) -{ - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0; - uint32_t len_value = 0; - uint8_t tag_number = 0; - uint32_t decoded_instance = 0; - uint16_t decoded_type = 0; - BACNET_READ_PROPERTY_DATA rpdata; - - Access_Rights_Init(); - rpdata.application_data = &apdu[0]; - rpdata.application_data_len = sizeof(apdu); - rpdata.object_type = OBJECT_ACCESS_RIGHTS; - rpdata.object_instance = 1; - rpdata.object_property = PROP_OBJECT_IDENTIFIER; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Access_Rights_Read_Property(&rpdata); - ct_test(pTest, len != 0); - len = decode_tag_number_and_value(&apdu[0], &tag_number, &len_value); - ct_test(pTest, tag_number == BACNET_APPLICATION_TAG_OBJECT_ID); - len = decode_object_id(&apdu[len], &decoded_type, &decoded_instance); - ct_test(pTest, decoded_type == rpdata.object_type); - ct_test(pTest, decoded_instance == rpdata.object_instance); - - return; -} - -#ifdef TEST_ACCESS_RIGHTS -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Access Rights", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testAccessRights); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_ACCESS_RIGHTS */ -#endif /* BAC_TEST */ diff --git a/src/bacnet/basic/object/access_rights.h b/src/bacnet/basic/object/access_rights.h index a8a61918..d214beca 100644 --- a/src/bacnet/basic/object/access_rights.h +++ b/src/bacnet/basic/object/access_rights.h @@ -112,13 +112,6 @@ extern "C" { void Access_Rights_Init( void); -#ifdef BAC_TEST -#include "ctest.h" - BACNET_STACK_EXPORT - void testAccessRights( - Test * pTest); -#endif - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/bacnet/basic/object/access_rights.mak b/src/bacnet/basic/object/access_rights.mak deleted file mode 100644 index 4c7202d5..00000000 --- a/src/bacnet/basic/object/access_rights.mak +++ /dev/null @@ -1,43 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_ACCESS_RIGHTS - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = access_rights.c \ - $(SRC_DIR)/bacnet/access_rule.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(TEST_DIR)/ctest.c - -TARGET = access_rights - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/access_user.c b/src/bacnet/basic/object/access_user.c index e8488fc5..78207d76 100644 --- a/src/bacnet/basic/object/access_user.c +++ b/src/bacnet/basic/object/access_user.c @@ -250,9 +250,8 @@ bool Access_User_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) object_index = Access_User_Instance_To_Index(wp_data->object_instance); switch (wp_data->object_property) { case PROP_GLOBAL_IDENTIFIER: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { au_descr[object_index].global_identifier = value.type.Unsigned_Int; @@ -278,69 +277,3 @@ bool Access_User_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) return status; } -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -void testAccessUser(Test *pTest) -{ - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0; - uint32_t len_value = 0; - uint8_t tag_number = 0; - uint32_t decoded_instance = 0; - uint16_t decoded_type = 0; - BACNET_READ_PROPERTY_DATA rpdata; - - Access_User_Init(); - rpdata.application_data = &apdu[0]; - rpdata.application_data_len = sizeof(apdu); - rpdata.object_type = OBJECT_ACCESS_USER; - rpdata.object_instance = 1; - rpdata.object_property = PROP_OBJECT_IDENTIFIER; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Access_User_Read_Property(&rpdata); - ct_test(pTest, len != 0); - len = decode_tag_number_and_value(&apdu[0], &tag_number, &len_value); - ct_test(pTest, tag_number == BACNET_APPLICATION_TAG_OBJECT_ID); - len = decode_object_id(&apdu[len], &decoded_type, &decoded_instance); - ct_test(pTest, decoded_type == rpdata.object_type); - ct_test(pTest, decoded_instance == rpdata.object_instance); - - return; -} - -#ifdef TEST_ACCESS_USER -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Access User", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testAccessUser); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_ACCESS_USER */ -#endif /* BAC_TEST */ diff --git a/src/bacnet/basic/object/access_user.h b/src/bacnet/basic/object/access_user.h index 8278a2a8..7182750f 100644 --- a/src/bacnet/basic/object/access_user.h +++ b/src/bacnet/basic/object/access_user.h @@ -105,13 +105,6 @@ extern "C" { void Access_User_Init( void); -#ifdef BAC_TEST -#include "ctest.h" - BACNET_STACK_EXPORT - void testAccessUser( - Test * pTest); -#endif - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/bacnet/basic/object/access_user.mak b/src/bacnet/basic/object/access_user.mak deleted file mode 100644 index fabbd4a3..00000000 --- a/src/bacnet/basic/object/access_user.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_ACCESS_USER - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = access_user.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(TEST_DIR)/ctest.c - -TARGET = access_user - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/access_zone.c b/src/bacnet/basic/object/access_zone.c index ed11a6f2..0140eb2d 100644 --- a/src/bacnet/basic/object/access_zone.c +++ b/src/bacnet/basic/object/access_zone.c @@ -301,9 +301,8 @@ bool Access_Zone_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) object_index = Access_Zone_Instance_To_Index(wp_data->object_instance); switch (wp_data->object_property) { case PROP_GLOBAL_IDENTIFIER: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { az_descr[object_index].global_identifier = value.type.Unsigned_Int; @@ -311,9 +310,8 @@ bool Access_Zone_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_RELIABILITY: if (Access_Zone_Out_Of_Service(wp_data->object_instance)) { - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { az_descr[object_index].reliability = (BACNET_RELIABILITY)value.type.Enumerated; @@ -343,70 +341,3 @@ bool Access_Zone_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) return status; } - -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -void testAccessZone(Test *pTest) -{ - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0; - uint32_t len_value = 0; - uint8_t tag_number = 0; - uint32_t decoded_instance = 0; - uint16_t decoded_type = 0; - BACNET_READ_PROPERTY_DATA rpdata; - - Access_Zone_Init(); - rpdata.application_data = &apdu[0]; - rpdata.application_data_len = sizeof(apdu); - rpdata.object_type = OBJECT_ACCESS_ZONE; - rpdata.object_instance = 1; - rpdata.object_property = PROP_OBJECT_IDENTIFIER; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Access_Zone_Read_Property(&rpdata); - ct_test(pTest, len != 0); - len = decode_tag_number_and_value(&apdu[0], &tag_number, &len_value); - ct_test(pTest, tag_number == BACNET_APPLICATION_TAG_OBJECT_ID); - len = decode_object_id(&apdu[len], &decoded_type, &decoded_instance); - ct_test(pTest, decoded_type == rpdata.object_type); - ct_test(pTest, decoded_instance == rpdata.object_instance); - - return; -} - -#ifdef TEST_ACCESS_ZONE -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Access Zone", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testAccessZone); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_ACCESS_ZONE */ -#endif /* BAC_TEST */ diff --git a/src/bacnet/basic/object/access_zone.h b/src/bacnet/basic/object/access_zone.h index 447fdbba..ad28f1cc 100644 --- a/src/bacnet/basic/object/access_zone.h +++ b/src/bacnet/basic/object/access_zone.h @@ -121,13 +121,6 @@ extern "C" { void Access_Zone_Init( void); -#ifdef BAC_TEST -#include "ctest.h" - BACNET_STACK_EXPORT - void testAccessZone( - Test * pTest); -#endif - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/bacnet/basic/object/access_zone.mak b/src/bacnet/basic/object/access_zone.mak deleted file mode 100644 index 54f8dd2a..00000000 --- a/src/bacnet/basic/object/access_zone.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_ACCESS_ZONE - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = access_zone.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(TEST_DIR)/ctest.c - -TARGET = access_zone - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/ai.c b/src/bacnet/basic/object/ai.c index 6a90fdd4..bc09cebe 100644 --- a/src/bacnet/basic/object/ai.c +++ b/src/bacnet/basic/object/ai.c @@ -633,9 +633,8 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) switch ((int)wp_data->object_property) { case PROP_PRESENT_VALUE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { if (CurrentAI->Out_Of_Service == true) { Analog_Input_Present_Value_Set( @@ -649,8 +648,8 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Analog_Input_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); @@ -658,17 +657,16 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_UNITS: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { CurrentAI->Units = value.type.Enumerated; } break; case PROP_COV_INCREMENT: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { if (value.type.Real >= 0.0) { Analog_Input_COV_Increment_Set( @@ -683,10 +681,8 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) #if defined(INTRINSIC_REPORTING) case PROP_TIME_DELAY: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { CurrentAI->Time_Delay = value.type.Unsigned_Int; CurrentAI->Remaining_Time_Delay = CurrentAI->Time_Delay; @@ -694,47 +690,40 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_NOTIFICATION_CLASS: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { CurrentAI->Notification_Class = value.type.Unsigned_Int; } break; case PROP_HIGH_LIMIT: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { CurrentAI->High_Limit = value.type.Real; } break; case PROP_LOW_LIMIT: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { CurrentAI->Low_Limit = value.type.Real; } break; case PROP_DEADBAND: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { CurrentAI->Deadband = value.type.Real; } break; case PROP_LIMIT_ENABLE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_BIT_STRING, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BIT_STRING); if (status) { if (value.type.Bit_String.bits_used == 2) { CurrentAI->Limit_Enable = value.type.Bit_String.value[0]; @@ -747,10 +736,8 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_EVENT_ENABLE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_BIT_STRING, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BIT_STRING); if (status) { if (value.type.Bit_String.bits_used == 3) { CurrentAI->Event_Enable = value.type.Bit_String.value[0]; @@ -763,10 +750,8 @@ bool Analog_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_NOTIFY_TYPE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { switch ((BACNET_NOTIFY_TYPE)value.type.Enumerated) { case NOTIFY_EVENT: @@ -1366,78 +1351,3 @@ int Analog_Input_Alarm_Summary( return -1; /* end of list */ } #endif /* defined(INTRINSIC_REPORTING) */ - -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - bool bResult; - - /* - * start out assuming success and only set up error - * response if validation fails. - */ - bResult = true; - if (pValue->tag != ucExpectedTag) { - bResult = false; - *pErrorClass = ERROR_CLASS_PROPERTY; - *pErrorCode = ERROR_CODE_INVALID_DATA_TYPE; - } - - return (bResult); -} - -void testAnalogInput(Test *pTest) -{ - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0; - uint32_t len_value = 0; - uint8_t tag_number = 0; - uint32_t decoded_instance = 0; - uint16_t decoded_type = 0; - BACNET_READ_PROPERTY_DATA rpdata; - - Analog_Input_Init(); - rpdata.application_data = &apdu[0]; - rpdata.application_data_len = sizeof(apdu); - rpdata.object_type = OBJECT_ANALOG_INPUT; - rpdata.object_instance = 1; - rpdata.object_property = PROP_OBJECT_IDENTIFIER; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Analog_Input_Read_Property(&rpdata); - ct_test(pTest, len != 0); - len = decode_tag_number_and_value(&apdu[0], &tag_number, &len_value); - ct_test(pTest, tag_number == BACNET_APPLICATION_TAG_OBJECT_ID); - len = decode_object_id(&apdu[len], &decoded_type, &decoded_instance); - ct_test(pTest, decoded_type == rpdata.object_type); - ct_test(pTest, decoded_instance == rpdata.object_instance); - - return; -} - -#ifdef TEST_ANALOG_INPUT -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Analog Input", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testAnalogInput); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_ANALOG_INPUT */ -#endif /* BAC_TEST */ diff --git a/src/bacnet/basic/object/ai.h b/src/bacnet/basic/object/ai.h index f585355d..f2d42b72 100644 --- a/src/bacnet/basic/object/ai.h +++ b/src/bacnet/basic/object/ai.h @@ -198,13 +198,6 @@ extern "C" { void Analog_Input_Init( void); -#ifdef BAC_TEST -#include "ctest.h" - BACNET_STACK_EXPORT - void testAnalogInput( - Test * pTest); -#endif - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/bacnet/basic/object/ai.mak b/src/bacnet/basic/object/ai.mak deleted file mode 100644 index 11910389..00000000 --- a/src/bacnet/basic/object/ai.mak +++ /dev/null @@ -1,43 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -HANDLER_DIR = ../handler -INCLUDES = -I../../include -I$(TEST_DIR) -I. -I$(HANDLER_DIR) -DEFINES = -DBIG_ENDIAN=0 -DBACDL_ALL -DBAC_TEST -DTEST_ANALOG_INPUT - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = ai.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(TEST_DIR)/ctest.c - -TARGET = analog_input - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/ao.c b/src/bacnet/basic/object/ao.c index 6c03f35a..bffd1dad 100644 --- a/src/bacnet/basic/object/ao.c +++ b/src/bacnet/basic/object/ao.c @@ -424,7 +424,9 @@ bool Analog_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - if (value.tag == BACNET_APPLICATION_TAG_REAL) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); + if (status) { /* Command priority 6 is reserved for use by Minimum On/Off algorithm and may not be used for other purposes in any object. */ @@ -442,8 +444,8 @@ bool Analog_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } } else { - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_NULL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_NULL); if (status) { status = Analog_Output_Present_Value_Relinquish( wp_data->object_instance, wp_data->priority); @@ -455,8 +457,8 @@ bool Analog_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Analog_Output_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); @@ -481,78 +483,3 @@ bool Analog_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) return status; } - -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - bool bResult; - - /* - * start out assuming success and only set up error - * response if validation fails. - */ - bResult = true; - if (pValue->tag != ucExpectedTag) { - bResult = false; - *pErrorClass = ERROR_CLASS_PROPERTY; - *pErrorCode = ERROR_CODE_INVALID_DATA_TYPE; - } - - return (bResult); -} - -void testAnalogOutput(Test *pTest) -{ - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0; - uint32_t len_value = 0; - uint8_t tag_number = 0; - uint32_t decoded_instance = 0; - uint16_t decoded_type = 0; - BACNET_READ_PROPERTY_DATA rpdata; - - Analog_Output_Init(); - rpdata.application_data = &apdu[0]; - rpdata.application_data_len = sizeof(apdu); - rpdata.object_type = OBJECT_ANALOG_OUTPUT; - rpdata.object_instance = 1; - rpdata.object_property = PROP_OBJECT_IDENTIFIER; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Analog_Output_Read_Property(&rpdata); - ct_test(pTest, len != 0); - len = decode_tag_number_and_value(&apdu[0], &tag_number, &len_value); - ct_test(pTest, tag_number == BACNET_APPLICATION_TAG_OBJECT_ID); - len = decode_object_id(&apdu[len], &decoded_type, &decoded_instance); - ct_test(pTest, decoded_type == rpdata.object_type); - ct_test(pTest, decoded_instance == rpdata.object_instance); - - return; -} - -#ifdef TEST_ANALOG_OUTPUT -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Analog Output", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testAnalogOutput); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_ANALOG_INPUT */ -#endif /* BAC_TEST */ diff --git a/src/bacnet/basic/object/ao.h b/src/bacnet/basic/object/ao.h index 0e0d8d45..c56e11b3 100644 --- a/src/bacnet/basic/object/ao.h +++ b/src/bacnet/basic/object/ao.h @@ -161,13 +161,6 @@ extern "C" { void Analog_Output_Init( void); -#ifdef BAC_TEST -#include "ctest.h" - BACNET_STACK_EXPORT - void testAnalogOutput( - Test * pTest); -#endif - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/bacnet/basic/object/ao.mak b/src/bacnet/basic/object/ao.mak deleted file mode 100644 index 1c4de525..00000000 --- a/src/bacnet/basic/object/ao.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_ANALOG_OUTPUT - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = ao.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(TEST_DIR)/ctest.c - -TARGET = analog_output - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/av.c b/src/bacnet/basic/object/av.c index 45790956..c4aa9b6d 100644 --- a/src/bacnet/basic/object/av.c +++ b/src/bacnet/basic/object/av.c @@ -745,7 +745,9 @@ bool Analog_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - if (value.tag == BACNET_APPLICATION_TAG_REAL) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); + if (status) { /* Command priority 6 is reserved for use by Minimum On/Off algorithm and may not be used for other purposes in any object. */ @@ -770,25 +772,24 @@ bool Analog_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { CurrentAV->Out_Of_Service = value.type.Boolean; } break; case PROP_UNITS: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { CurrentAV->Units = value.type.Enumerated; } break; case PROP_COV_INCREMENT: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { if (value.type.Real >= 0.0) { Analog_Value_COV_Increment_Set( @@ -803,10 +804,8 @@ bool Analog_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) #if defined(INTRINSIC_REPORTING) case PROP_TIME_DELAY: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { CurrentAV->Time_Delay = value.type.Unsigned_Int; CurrentAV->Remaining_Time_Delay = CurrentAV->Time_Delay; @@ -814,47 +813,40 @@ bool Analog_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_NOTIFICATION_CLASS: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { CurrentAV->Notification_Class = value.type.Unsigned_Int; } break; case PROP_HIGH_LIMIT: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { CurrentAV->High_Limit = value.type.Real; } break; case PROP_LOW_LIMIT: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { CurrentAV->Low_Limit = value.type.Real; } break; case PROP_DEADBAND: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_REAL, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); if (status) { CurrentAV->Deadband = value.type.Real; } break; case PROP_LIMIT_ENABLE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_BIT_STRING, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BIT_STRING); if (status) { if (value.type.Bit_String.bits_used == 2) { CurrentAV->Limit_Enable = value.type.Bit_String.value[0]; @@ -867,10 +859,8 @@ bool Analog_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_EVENT_ENABLE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_BIT_STRING, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BIT_STRING); if (status) { if (value.type.Bit_String.bits_used == 3) { CurrentAV->Event_Enable = value.type.Bit_String.value[0]; @@ -883,10 +873,8 @@ bool Analog_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_NOTIFY_TYPE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { switch ((BACNET_NOTIFY_TYPE)value.type.Enumerated) { case NOTIFY_EVENT: @@ -1462,70 +1450,3 @@ int Analog_Value_Alarm_Summary( return -1; /* end of list */ } #endif /* defined(INTRINSIC_REPORTING) */ - -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -void testAnalog_Value(Test *pTest) -{ - BACNET_READ_PROPERTY_DATA rpdata; - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0; - uint32_t len_value = 0; - uint8_t tag_number = 0; - uint16_t decoded_type = 0; - uint32_t decoded_instance = 0; - - Analog_Value_Init(); - rpdata.application_data = &apdu[0]; - rpdata.application_data_len = sizeof(apdu); - rpdata.object_type = OBJECT_ANALOG_VALUE; - rpdata.object_instance = 1; - rpdata.object_property = PROP_OBJECT_IDENTIFIER; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Analog_Value_Read_Property(&rpdata); - ct_test(pTest, len != 0); - len = decode_tag_number_and_value(&apdu[0], &tag_number, &len_value); - ct_test(pTest, tag_number == BACNET_APPLICATION_TAG_OBJECT_ID); - len = decode_object_id(&apdu[len], &decoded_type, &decoded_instance); - ct_test(pTest, decoded_type == rpdata.object_type); - ct_test(pTest, decoded_instance == rpdata.object_instance); - - return; -} - -#ifdef TEST_ANALOG_VALUE -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Analog Value", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testAnalog_Value); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_ANALOG_VALUE */ -#endif /* BAC_TEST */ diff --git a/src/bacnet/basic/object/av.h b/src/bacnet/basic/object/av.h index 97fc3ddd..58f28996 100644 --- a/src/bacnet/basic/object/av.h +++ b/src/bacnet/basic/object/av.h @@ -211,13 +211,6 @@ extern "C" { void Analog_Value_Init( void); -#ifdef BAC_TEST -#include "ctest.h" - BACNET_STACK_EXPORT - void testAnalog_Value( - Test * pTest); -#endif - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/bacnet/basic/object/av.mak b/src/bacnet/basic/object/av.mak deleted file mode 100644 index d2be166a..00000000 --- a/src/bacnet/basic/object/av.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_ANALOG_VALUE - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = av.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(TEST_DIR)/ctest.c - -TARGET = analog_value - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/bacfile.c b/src/bacnet/basic/object/bacfile.c index 7dc8f32a..2689ee89 100644 --- a/src/bacnet/basic/object/bacfile.c +++ b/src/bacnet/basic/object/bacfile.c @@ -309,8 +309,8 @@ bool bacfile_write_property(BACNET_WRITE_PROPERTY_DATA *wp_data) property shall be logical TRUE only if no changes have been made to the file data by internal processes or through File Access Services since the last time the object was archived. */ - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { if (value.type.Boolean) { /* FIXME: do something to wp_data->object_instance */ @@ -323,9 +323,8 @@ bool bacfile_write_property(BACNET_WRITE_PROPERTY_DATA *wp_data) /* If the file size can be changed by writing to the file, and File_Access_Method is STREAM_ACCESS, then this property shall be writable. */ - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { /* FIXME: do something with value.type.Unsigned to wp_data->object_instance */ diff --git a/src/bacnet/basic/object/bi.c b/src/bacnet/basic/object/bi.c index d90eab89..e5f328b5 100644 --- a/src/bacnet/basic/object/bi.c +++ b/src/bacnet/basic/object/bi.c @@ -429,9 +429,8 @@ bool Binary_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { if (value.type.Enumerated <= MAX_BINARY_PV) { Binary_Input_Present_Value_Set(wp_data->object_instance, @@ -444,17 +443,16 @@ bool Binary_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Binary_Input_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); } break; case PROP_POLARITY: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { if (value.type.Enumerated < MAX_POLARITY) { Binary_Input_Polarity_Set(wp_data->object_instance, @@ -483,70 +481,3 @@ bool Binary_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) return status; } - -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -void testBinaryInput(Test *pTest) -{ - BACNET_READ_PROPERTY_DATA rpdata; - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0; - uint32_t len_value = 0; - uint8_t tag_number = 0; - uint16_t decoded_type = 0; - uint32_t decoded_instance = 0; - - Binary_Input_Init(); - rpdata.application_data = &apdu[0]; - rpdata.application_data_len = sizeof(apdu); - rpdata.object_type = OBJECT_BINARY_INPUT; - rpdata.object_instance = 1; - rpdata.object_property = PROP_OBJECT_IDENTIFIER; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Binary_Input_Read_Property(&rpdata); - ct_test(pTest, len != 0); - len = decode_tag_number_and_value(&apdu[0], &tag_number, &len_value); - ct_test(pTest, tag_number == BACNET_APPLICATION_TAG_OBJECT_ID); - len = decode_object_id(&apdu[len], &decoded_type, &decoded_instance); - ct_test(pTest, decoded_type == rpdata.object_type); - ct_test(pTest, decoded_instance == rpdata.object_instance); - - return; -} - -#ifdef TEST_BINARY_INPUT -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Binary Input", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testBinaryInput); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_BINARY_INPUT */ -#endif /* BAC_TEST */ diff --git a/src/bacnet/basic/object/bi.h b/src/bacnet/basic/object/bi.h index 423de741..23360766 100644 --- a/src/bacnet/basic/object/bi.h +++ b/src/bacnet/basic/object/bi.h @@ -155,13 +155,6 @@ extern "C" { void Binary_Input_Init( void); -#ifdef BAC_TEST -#include "ctest.h" - BACNET_STACK_EXPORT - void testBinaryInput( - Test * pTest); -#endif - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/bacnet/basic/object/bi.mak b/src/bacnet/basic/object/bi.mak deleted file mode 100644 index 677a736c..00000000 --- a/src/bacnet/basic/object/bi.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DTEST_BINARY_INPUT - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = bi.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(TEST_DIR)/ctest.c - -TARGET = binary_input - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/bo.c b/src/bacnet/basic/object/bo.c index 1c19c3f4..21def15e 100644 --- a/src/bacnet/basic/object/bo.c +++ b/src/bacnet/basic/object/bo.c @@ -363,7 +363,9 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - if (value.tag == BACNET_APPLICATION_TAG_ENUMERATED) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); + if (status) { priority = wp_data->priority; /* Command priority 6 is reserved for use by Minimum On/Off algorithm and may not be used for other purposes in any @@ -394,8 +396,8 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } } else { - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_NULL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_NULL); if (status) { level = BINARY_NULL; object_index = Binary_Output_Instance_To_Index( @@ -420,8 +422,8 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { object_index = Binary_Output_Instance_To_Index(wp_data->object_instance); @@ -450,70 +452,3 @@ bool Binary_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) return status; } - -#ifdef BAC_TEST -#include -#include -#include "ctest.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -void testBinaryOutput(Test *pTest) -{ - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0; - uint32_t len_value = 0; - uint8_t tag_number = 0; - uint16_t decoded_type = 0; - uint32_t decoded_instance = 0; - BACNET_READ_PROPERTY_DATA rpdata; - - Binary_Output_Init(); - rpdata.application_data = &apdu[0]; - rpdata.application_data_len = sizeof(apdu); - rpdata.object_type = OBJECT_BINARY_OUTPUT; - rpdata.object_instance = 1; - rpdata.object_property = PROP_OBJECT_IDENTIFIER; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Binary_Output_Read_Property(&rpdata); - ct_test(pTest, len != 0); - len = decode_tag_number_and_value(&apdu[0], &tag_number, &len_value); - ct_test(pTest, tag_number == BACNET_APPLICATION_TAG_OBJECT_ID); - len = decode_object_id(&apdu[len], &decoded_type, &decoded_instance); - ct_test(pTest, decoded_type == rpdata.object_type); - ct_test(pTest, decoded_instance == rpdata.object_instance); - - return; -} - -#ifdef TEST_BINARY_OUTPUT -int main(void) -{ - Test *pTest; - bool rc; - - pTest = ct_create("BACnet Binary Output", NULL); - /* individual tests */ - rc = ct_addTestFunction(pTest, testBinaryOutput); - assert(rc); - - ct_setStream(pTest, stdout); - ct_run(pTest); - (void)ct_report(pTest); - ct_destroy(pTest); - - return 0; -} -#endif /* TEST_BINARY_INPUT */ -#endif /* BAC_TEST */ diff --git a/src/bacnet/basic/object/bo.mak b/src/bacnet/basic/object/bo.mak deleted file mode 100644 index b3ecf077..00000000 --- a/src/bacnet/basic/object/bo.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_BINARY_OUTPUT - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = bo.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(TEST_DIR)/ctest.c - -TARGET = binary_output - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/bv.c b/src/bacnet/basic/object/bv.c index 30bb0321..0ce31332 100644 --- a/src/bacnet/basic/object/bv.c +++ b/src/bacnet/basic/object/bv.c @@ -457,7 +457,9 @@ bool Binary_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - if (value.tag == BACNET_APPLICATION_TAG_ENUMERATED) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); + if (status) { priority = wp_data->priority; /* Command priority 6 is reserved for use by Minimum On/Off algorithm and may not be used for other purposes in any @@ -486,8 +488,8 @@ bool Binary_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } } else { - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_NULL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_NULL); if (status) { level = BINARY_NULL; priority = wp_data->priority; @@ -510,8 +512,8 @@ bool Binary_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Binary_Value_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); @@ -542,19 +544,6 @@ bool Binary_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) #include #include "ctest.h" -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - void testBinary_Value(Test *pTest) { uint8_t apdu[MAX_APDU] = { 0 }; diff --git a/src/bacnet/basic/object/bv.mak b/src/bacnet/basic/object/bv.mak deleted file mode 100644 index c51c3151..00000000 --- a/src/bacnet/basic/object/bv.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_BINARY_VALUE - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = bv.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(TEST_DIR)/ctest.c - -TARGET = binary_value - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/channel.c b/src/bacnet/basic/object/channel.c index dcffe080..d6ed11b2 100644 --- a/src/bacnet/basic/object/channel.c +++ b/src/bacnet/basic/object/channel.c @@ -1513,8 +1513,8 @@ bool Channel_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) status = Channel_Present_Value_Set(wp_data, &value); break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Channel_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); @@ -1531,16 +1531,17 @@ bool Channel_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) ERROR_CODE_OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED; break; case PROP_CHANNEL_NUMBER: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { Channel_Number_Set( wp_data->object_instance, value.type.Unsigned_Int); } break; case PROP_CONTROL_GROUPS: - if (value.tag == BACNET_APPLICATION_TAG_UNSIGNED_INT) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); + if (status) { if (wp_data->array_index == 0) { /* Array element zero is the number of elements in the array */ @@ -1596,9 +1597,6 @@ bool Channel_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } } - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; case PROP_OBJECT_IDENTIFIER: diff --git a/src/bacnet/basic/object/command.c b/src/bacnet/basic/object/command.c index fc741236..e6945f8c 100644 --- a/src/bacnet/basic/object/command.c +++ b/src/bacnet/basic/object/command.c @@ -781,9 +781,8 @@ bool Command_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) switch ((int)wp_data->object_property) { case PROP_PRESENT_VALUE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { if (value.type.Unsigned_Int >= MAX_COMMAND_ACTIONS) { wp_data->error_class = ERROR_CLASS_PROPERTY; @@ -827,27 +826,6 @@ void Command_Intrinsic_Reporting(uint32_t object_instance) #include #include "ctest.h" -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - bool bResult; - - /* - * start out assuming success and only set up error - * response if validation fails. - */ - bResult = true; - if (pValue->tag != ucExpectedTag) { - bResult = false; - *pErrorClass = ERROR_CLASS_PROPERTY; - *pErrorCode = ERROR_CODE_INVALID_DATA_TYPE; - } - - return (bResult); -} - void testCommand(Test *pTest) { uint8_t apdu[MAX_APDU] = { 0 }; diff --git a/src/bacnet/basic/object/command.mak b/src/bacnet/basic/object/command.mak deleted file mode 100644 index 730ce385..00000000 --- a/src/bacnet/basic/object/command.mak +++ /dev/null @@ -1,43 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -HANDLER_DIR = ../handler -INCLUDES = -I../../include -I$(TEST_DIR) -I. -I$(HANDLER_DIR) -DEFINES = -DBIG_ENDIAN=0 -DBACDL_ALL -DBAC_TEST -DTEST_COMMAND - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = command.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(TEST_DIR)/ctest.c - -TARGET = command - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/credential_data_input.c b/src/bacnet/basic/object/credential_data_input.c index 85106762..87a0ca54 100644 --- a/src/bacnet/basic/object/credential_data_input.c +++ b/src/bacnet/basic/object/credential_data_input.c @@ -333,9 +333,8 @@ bool Credential_Data_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) case PROP_RELIABILITY: if (Credential_Data_Input_Out_Of_Service( wp_data->object_instance)) { - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { cdi_descr[object_index].reliability = (BACNET_RELIABILITY)value.type.Enumerated; @@ -369,19 +368,6 @@ bool Credential_Data_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) #include #include "ctest.h" -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - void testCredentialDataInput(Test *pTest) { uint8_t apdu[MAX_APDU] = { 0 }; diff --git a/src/bacnet/basic/object/credential_data_input.mak b/src/bacnet/basic/object/credential_data_input.mak deleted file mode 100644 index f951815d..00000000 --- a/src/bacnet/basic/object/credential_data_input.mak +++ /dev/null @@ -1,45 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_CREDENTIAL_DATA_INPUT - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = credential_data_input.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(SRC_DIR)/bacnet/authentication_factor.c \ - $(SRC_DIR)/bacnet/authentication_factor_format.c \ - $(SRC_DIR)/bacnet/timestamp.c \ - $(TEST_DIR)/ctest.c - -TARGET = credential_data_input - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/csv.c b/src/bacnet/basic/object/csv.c index 1bac65a1..0e7e5ead 100644 --- a/src/bacnet/basic/object/csv.c +++ b/src/bacnet/basic/object/csv.c @@ -589,9 +589,8 @@ bool CharacterString_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - status = WPValidateArgType(&value, - BACNET_APPLICATION_TAG_CHARACTER_STRING, &wp_data->error_class, - &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_CHARACTER_STRING); if (status) { status = CharacterString_Value_Present_Value_Set( wp_data->object_instance, &value.type.Character_String); @@ -602,8 +601,8 @@ bool CharacterString_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { CharacterString_Value_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); @@ -632,19 +631,6 @@ bool CharacterString_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) #include #include "ctest.h" -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - void testCharacterStringValue(Test *pTest) { uint8_t apdu[MAX_APDU] = { 0 }; diff --git a/src/bacnet/basic/object/csv.mak b/src/bacnet/basic/object/csv.mak deleted file mode 100644 index f0cd5459..00000000 --- a/src/bacnet/basic/object/csv.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_CHARACTERSTRING_VALUE - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = csv.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(TEST_DIR)/ctest.c - -TARGET = characterstring_value - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/device.c b/src/bacnet/basic/object/device.c index 306d02f6..8215bd54 100644 --- a/src/bacnet/basic/object/device.c +++ b/src/bacnet/basic/object/device.c @@ -1392,8 +1392,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) /* FIXME: len < application_data_len: more data? */ switch (wp_data->object_property) { case PROP_OBJECT_IDENTIFIER: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_OBJECT_ID, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_OBJECT_ID); if (status) { if ((value.type.Object_Id.type == OBJECT_DEVICE) && (Device_Set_Object_Instance_Number( @@ -1408,36 +1408,32 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_NUMBER_OF_APDU_RETRIES: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { /* FIXME: bounds check? */ apdu_retries_set((uint8_t)value.type.Unsigned_Int); } break; case PROP_APDU_TIMEOUT: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { /* FIXME: bounds check? */ apdu_timeout_set((uint16_t)value.type.Unsigned_Int); } break; case PROP_VENDOR_IDENTIFIER: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { /* FIXME: bounds check? */ Device_Set_Vendor_Identifier((uint16_t)value.type.Unsigned_Int); } break; case PROP_SYSTEM_STATUS: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { result = Device_Set_System_Status( (BACNET_DEVICE_STATUS)value.type.Enumerated, false); @@ -1455,9 +1451,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OBJECT_NAME: - status = WPValidateString(&value, - characterstring_capacity(&My_Object_Name), false, - &wp_data->error_class, &wp_data->error_code); + status = write_property_string_valid(wp_data, &value, + characterstring_capacity(&My_Object_Name)); if (status) { /* All the object names in a device must be unique */ if (Device_Valid_Object_Name(&value.type.Character_String, @@ -1477,8 +1472,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_LOCATION: - status = WPValidateString(&value, MAX_DEV_LOC_LEN, true, - &wp_data->error_class, &wp_data->error_code); + status = write_property_empty_string_valid(wp_data, &value, + MAX_DEV_LOC_LEN); if (status) { Device_Set_Location( characterstring_value(&value.type.Character_String), @@ -1487,8 +1482,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_DESCRIPTION: - status = WPValidateString(&value, MAX_DEV_DESC_LEN, true, - &wp_data->error_class, &wp_data->error_code); + status = write_property_empty_string_valid(wp_data, &value, + MAX_DEV_DESC_LEN); if (status) { Device_Set_Description( characterstring_value(&value.type.Character_String), @@ -1496,8 +1491,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_MODEL_NAME: - status = WPValidateString(&value, MAX_DEV_MOD_LEN, true, - &wp_data->error_class, &wp_data->error_code); + status = write_property_empty_string_valid(wp_data, &value, + MAX_DEV_MOD_LEN); if (status) { Device_Set_Model_Name( characterstring_value(&value.type.Character_String), @@ -1506,7 +1501,9 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) break; #if defined(BACNET_TIME_MASTER) case PROP_TIME_SYNCHRONIZATION_INTERVAL: - if (value.tag == BACNET_APPLICATION_TAG_UNSIGNED_INT) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); + if (status) { if (value.type.Unsigned_Int < 65535) { minutes = value.type.Unsigned_Int; Device_Time_Sync_Interval_Set(minutes); @@ -1515,22 +1512,20 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; case PROP_ALIGN_INTERVALS: - if (value.tag == BACNET_APPLICATION_TAG_BOOLEAN) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); + if (status) { Device_Align_Intervals_Set(value.type.Boolean); status = true; - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; case PROP_INTERVAL_OFFSET: - if (value.tag == BACNET_APPLICATION_TAG_UNSIGNED_INT) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); + if (status) { if (value.type.Unsigned_Int < 65535) { minutes = value.type.Unsigned_Int; Device_Interval_Offset_Set(minutes); @@ -1539,9 +1534,6 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; #else @@ -1553,7 +1545,9 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) break; #endif case PROP_UTC_OFFSET: - if (value.tag == BACNET_APPLICATION_TAG_SIGNED_INT) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_SIGNED_INT); + if (status) { if ((value.type.Signed_Int < (12 * 60)) && (value.type.Signed_Int > (-12 * 60))) { Device_UTC_Offset_Set(value.type.Signed_Int); @@ -1562,16 +1556,12 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; #if defined(BACDL_MSTP) case PROP_MAX_INFO_FRAMES: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { if (value.type.Unsigned_Int <= 255) { dlmstp_set_max_info_frames( @@ -1584,9 +1574,8 @@ bool Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_MAX_MASTER: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { if ((value.type.Unsigned_Int > 0) && (value.type.Unsigned_Int <= 127)) { @@ -1926,30 +1915,38 @@ void Routing_Device_Init(uint32_t first_object_instance) #include #include "ctest.h" -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) +bool write_property_type_valid( + BACNET_WRITE_PROPERTY_DATA * wp_data, + BACNET_APPLICATION_DATA_VALUE * value, + uint8_t expected_tag) { - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; + (void)wp_data; + (void)value; + (void)expected_tag; return false; } -bool WPValidateString(BACNET_APPLICATION_DATA_VALUE *pValue, - int iMaxLen, - bool bEmptyAllowed, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) +bool write_property_string_valid( + BACNET_WRITE_PROPERTY_DATA * wp_data, + BACNET_APPLICATION_DATA_VALUE * value, + int len_max) { - pValue = pValue; - iMaxLen = iMaxLen; - bEmptyAllowed = bEmptyAllowed; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; + (void)wp_data; + (void)value; + (void)len_max; + + return false; +} + +bool write_property_empty_string_valid( + BACNET_WRITE_PROPERTY_DATA * wp_data, + BACNET_APPLICATION_DATA_VALUE * value, + int len_max) +{ + (void)wp_data; + (void)value; + (void)len_max; return false; } diff --git a/src/bacnet/basic/object/device.mak b/src/bacnet/basic/object/device.mak deleted file mode 100644 index 1d7f1e0d..00000000 --- a/src/bacnet/basic/object/device.mak +++ /dev/null @@ -1,54 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -PORTS_DIR = ../../ports/linux -INCLUDES = -I../../include -I$(TEST_DIR) -I$(PORTS_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DEFINES += -DBAC_TEST -DBACDL_TEST -DEFINES += -DBACAPP_ALL -DEFINES += -DMAX_TSM_TRANSACTIONS=0 -DEFINES += -DTEST_DEVICE -DEFINES += -DBACNET_PROPERTY_LISTS=1 - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = device.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(SRC_DIR)/bacnet/proplist.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/basic/service/h_apdu.c \ - $(SRC_DIR)/bacnet/address.c \ - $(SRC_DIR)/bacnet/bacaddr.c \ - $(SRC_DIR)/bacnet/dcc.c \ - $(SRC_DIR)/bacnet/version.c \ - $(TEST_DIR)/ctest.c - -TARGET = device - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/gateway/gw_device.c b/src/bacnet/basic/object/gateway/gw_device.c index e7b4d0bd..dff8217e 100644 --- a/src/bacnet/basic/object/gateway/gw_device.c +++ b/src/bacnet/basic/object/gateway/gw_device.c @@ -498,8 +498,8 @@ bool Routed_Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) /* FIXME: len < application_data_len: more data? */ switch (wp_data->object_property) { case PROP_OBJECT_IDENTIFIER: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_OBJECT_ID, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_OBJECT_ID); if (status) { if ((value.type.Object_Id.type == OBJECT_DEVICE) && (Routed_Device_Set_Object_Instance_Number( @@ -514,8 +514,8 @@ bool Routed_Device_Write_Property_Local(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OBJECT_NAME: - status = WPValidateString(&value, MAX_DEV_NAME_LEN, false, - &wp_data->error_class, &wp_data->error_code); + status = write_property_string_valid(wp_data, &value, + MAX_DEV_NAME_LEN); if (status) { Routed_Device_Set_Object_Name( characterstring_encoding(&value.type.Character_String), diff --git a/src/bacnet/basic/object/iv.c b/src/bacnet/basic/object/iv.c index 386854d6..9d063a76 100644 --- a/src/bacnet/basic/object/iv.c +++ b/src/bacnet/basic/object/iv.c @@ -431,17 +431,16 @@ bool Integer_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_SIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_SIGNED_INT); if (status) { Integer_Value_Present_Value_Set(wp_data->object_instance, value.type.Signed_Int, wp_data->priority); } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Integer_Value_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); diff --git a/src/bacnet/basic/object/lc.c b/src/bacnet/basic/object/lc.c index 5a862aab..a420b34b 100644 --- a/src/bacnet/basic/object/lc.c +++ b/src/bacnet/basic/object/lc.c @@ -916,8 +916,8 @@ bool Load_Control_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_START_TIME: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_DATE, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_DATE); if (!status) { /* don't continue if we don't have a valid date */ break; @@ -928,8 +928,8 @@ bool Load_Control_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) bacapp_decode_application_data(wp_data->application_data + len, wp_data->application_data_len - len, &value); if (len) { - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_TIME, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_TIME); if (status) { /* Write time and date and set written flag */ Start_Time[object_index].date = TempDate; @@ -944,9 +944,8 @@ bool Load_Control_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_SHED_DURATION: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { Shed_Duration[object_index] = value.type.Unsigned_Int; Load_Control_Request_Written[object_index] = true; @@ -954,9 +953,8 @@ bool Load_Control_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_DUTY_WINDOW: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { Duty_Window[object_index] = value.type.Unsigned_Int; Load_Control_Request_Written[object_index] = true; @@ -964,9 +962,8 @@ bool Load_Control_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_SHED_LEVELS: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { /* re-write the size of the array? */ if (wp_data->array_index == 0) { @@ -989,8 +986,8 @@ bool Load_Control_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_ENABLE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Load_Control_Enable[object_index] = value.type.Boolean; } diff --git a/src/bacnet/basic/object/lc.mak b/src/bacnet/basic/object/lc.mak deleted file mode 100644 index aa959b5c..00000000 --- a/src/bacnet/basic/object/lc.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_LOAD_CONTROL - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = lc.c ao.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(TEST_DIR)/ctest.c - -TARGET = load_control - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/lo.c b/src/bacnet/basic/object/lo.c index db226f4e..19e23baf 100644 --- a/src/bacnet/basic/object/lo.c +++ b/src/bacnet/basic/object/lo.c @@ -1111,7 +1111,9 @@ bool Lighting_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - if (value.tag == BACNET_APPLICATION_TAG_REAL) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_REAL); + if (status) { /* Command priority 6 is reserved for use by Minimum On/Off algorithm and may not be used for other purposes in any object. */ @@ -1129,8 +1131,8 @@ bool Lighting_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } } else { - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_NULL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_NULL); if (status) { if (wp_data->priority == 6) { /* Command priority 6 is reserved for use by Minimum @@ -1152,21 +1154,20 @@ bool Lighting_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_LIGHTING_COMMAND: - if (value.tag == BACNET_APPLICATION_TAG_LIGHTING_COMMAND) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_LIGHTING_COMMAND); + if (status) { status = Lighting_Output_Lighting_Command_Set( wp_data->object_instance, &value.type.Lighting_Command); if (!status) { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Lighting_Output_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); @@ -1336,19 +1337,6 @@ void Lighting_Output_Init(void) #include #include "ctest.h" -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - void testLightingOutput(Test *pTest) { uint8_t apdu[MAX_APDU] = { 0 }; diff --git a/src/bacnet/basic/object/lo.mak b/src/bacnet/basic/object/lo.mak deleted file mode 100644 index 993c3d0a..00000000 --- a/src/bacnet/basic/object/lo.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_LIGHTING_OUTPUT - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = lo.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(TEST_DIR)/ctest.c - -TARGET = lighting_output - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/lsp.c b/src/bacnet/basic/object/lsp.c index 94abe8a6..f013799e 100644 --- a/src/bacnet/basic/object/lsp.c +++ b/src/bacnet/basic/object/lsp.c @@ -322,9 +322,8 @@ bool Life_Safety_Point_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_MODE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { if (value.type.Enumerated <= MAX_LIFE_SAFETY_MODE) { object_index = Life_Safety_Point_Instance_To_Index( @@ -339,8 +338,8 @@ bool Life_Safety_Point_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { object_index = Life_Safety_Point_Instance_To_Index( wp_data->object_instance); @@ -378,19 +377,6 @@ bool Life_Safety_Point_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) #include #include "ctest.h" -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - void testLifeSafetyPoint(Test *pTest) { uint8_t apdu[MAX_APDU] = { 0 }; diff --git a/src/bacnet/basic/object/lsp.mak b/src/bacnet/basic/object/lsp.mak deleted file mode 100644 index b434f24e..00000000 --- a/src/bacnet/basic/object/lsp.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_LIFE_SAFETY_POINT - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = lsp.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(TEST_DIR)/ctest.c - -TARGET = life_safety_point - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/ms-input.c b/src/bacnet/basic/object/ms-input.c index 952c057e..f87deb53 100644 --- a/src/bacnet/basic/object/ms-input.c +++ b/src/bacnet/basic/object/ms-input.c @@ -603,7 +603,9 @@ bool Multistate_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_OBJECT_NAME: - if (value.tag == BACNET_APPLICATION_TAG_CHARACTER_STRING) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_CHARACTER_STRING); + if (status) { /* All the object names in a device must be unique */ if (Device_Valid_Object_Name(&value.type.Character_String, &object_type, &object_instance)) { @@ -621,25 +623,20 @@ bool Multistate_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->object_instance, &value.type.Character_String, &wp_data->error_class, &wp_data->error_code); } - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; case PROP_DESCRIPTION: - if (value.tag == BACNET_APPLICATION_TAG_CHARACTER_STRING) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_CHARACTER_STRING); + if (status) { status = Multistate_Input_Description_Write( wp_data->object_instance, &value.type.Character_String, &wp_data->error_class, &wp_data->error_code); - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; case PROP_PRESENT_VALUE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { status = Multistate_Input_Present_Value_Set( wp_data->object_instance, value.type.Unsigned_Int); @@ -650,64 +647,68 @@ bool Multistate_Input_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Multistate_Input_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); } break; case PROP_STATE_TEXT: - if (value.tag == BACNET_APPLICATION_TAG_CHARACTER_STRING) { - if (wp_data->array_index == 0) { - /* Array element zero is the number of - elements in the array. We have a fixed - size array, so we are read-only. */ - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED; - } else if (wp_data->array_index == BACNET_ARRAY_ALL) { - max_states = - Multistate_Input_Max_States(wp_data->object_instance); - array_index = 1; - element_len = len; - do { - if (element_len) { - status = Multistate_Input_State_Text_Write( - wp_data->object_instance, array_index, - &value.type.Character_String, - &wp_data->error_class, &wp_data->error_code); + if (wp_data->array_index == 0) { + /* Array element zero is the number of + elements in the array. We have a fixed + size array, so we are read-only. */ + wp_data->error_class = ERROR_CLASS_PROPERTY; + wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED; + } else if (wp_data->array_index == BACNET_ARRAY_ALL) { + max_states = + Multistate_Input_Max_States(wp_data->object_instance); + array_index = 1; + element_len = len; + do { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_CHARACTER_STRING); + if (!status) { + break; + } + if (element_len) { + status = Multistate_Input_State_Text_Write( + wp_data->object_instance, array_index, + &value.type.Character_String, + &wp_data->error_class, &wp_data->error_code); + } + max_states--; + array_index++; + if (max_states) { + element_len = bacapp_decode_application_data( + &wp_data->application_data[len], + wp_data->application_data_len - len, &value); + if (element_len < 0) { + wp_data->error_class = ERROR_CLASS_PROPERTY; + wp_data->error_code = + ERROR_CODE_VALUE_OUT_OF_RANGE; + break; } - max_states--; - array_index++; - if (max_states) { - element_len = bacapp_decode_application_data( - &wp_data->application_data[len], - wp_data->application_data_len - len, &value); - if (element_len < 0) { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = - ERROR_CODE_VALUE_OUT_OF_RANGE; - break; - } - len += element_len; - } - } while (max_states); - } else { - max_states = - Multistate_Input_Max_States(wp_data->object_instance); - if (wp_data->array_index <= max_states) { + len += element_len; + } + } while (max_states); + } else { + max_states = + Multistate_Input_Max_States(wp_data->object_instance); + if (wp_data->array_index <= max_states) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_CHARACTER_STRING); + if (status) { status = Multistate_Input_State_Text_Write( wp_data->object_instance, wp_data->array_index, &value.type.Character_String, &wp_data->error_class, &wp_data->error_code); - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED; } + } else { + wp_data->error_class = ERROR_CLASS_PROPERTY; + wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; case PROP_OBJECT_IDENTIFIER: @@ -739,19 +740,6 @@ bool Device_Valid_Object_Name(BACNET_CHARACTER_STRING *object_name, return true; } -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - void testMultistateInput(Test *pTest) { uint8_t apdu[MAX_APDU] = { 0 }; diff --git a/src/bacnet/basic/object/ms-input.mak b/src/bacnet/basic/object/ms-input.mak deleted file mode 100644 index 15a8c8ae..00000000 --- a/src/bacnet/basic/object/ms-input.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_MULTISTATE_INPUT - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = ms-input.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(TEST_DIR)/ctest.c - -TARGET = multistate_input - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/mso.c b/src/bacnet/basic/object/mso.c index 42514da2..4c130526 100644 --- a/src/bacnet/basic/object/mso.c +++ b/src/bacnet/basic/object/mso.c @@ -375,7 +375,9 @@ bool Multistate_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - if (value.tag == BACNET_APPLICATION_TAG_UNSIGNED_INT) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); + if (status) { priority = wp_data->priority; /* Command priority 6 is reserved for use by Minimum On/Off algorithm and may not be used for other purposes in any @@ -408,8 +410,8 @@ bool Multistate_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } } else { - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_NULL, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_NULL); if (status) { level = MULTISTATE_NULL; object_index = Multistate_Output_Instance_To_Index( @@ -435,8 +437,8 @@ bool Multistate_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Multistate_Output_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); @@ -468,19 +470,6 @@ bool Multistate_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) #include #include "ctest.h" -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - void testMultistateOutput(Test *pTest) { uint8_t apdu[MAX_APDU] = { 0 }; diff --git a/src/bacnet/basic/object/mso.mak b/src/bacnet/basic/object/mso.mak deleted file mode 100644 index 12998b84..00000000 --- a/src/bacnet/basic/object/mso.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_MULTISTATE_OUTPUT - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = mso.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(TEST_DIR)/ctest.c - -TARGET = multistate_output - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/msv.c b/src/bacnet/basic/object/msv.c index 6cc6df44..9d4a092f 100644 --- a/src/bacnet/basic/object/msv.c +++ b/src/bacnet/basic/object/msv.c @@ -538,9 +538,8 @@ bool Multistate_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { status = Multistate_Value_Present_Value_Set( wp_data->object_instance, value.type.Unsigned_Int); @@ -551,8 +550,8 @@ bool Multistate_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Multistate_Value_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); @@ -583,19 +582,6 @@ bool Multistate_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) #include #include "ctest.h" -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - void testMultistateInput(Test *pTest) { uint8_t apdu[MAX_APDU] = { 0 }; diff --git a/src/bacnet/basic/object/msv.mak b/src/bacnet/basic/object/msv.mak deleted file mode 100644 index 0ab72915..00000000 --- a/src/bacnet/basic/object/msv.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_MULTISTATE_VALUE - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = msv.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(TEST_DIR)/ctest.c - -TARGET = multistate_value - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/nc.c b/src/bacnet/basic/object/nc.c index bd8a812a..f7c5442b 100644 --- a/src/bacnet/basic/object/nc.c +++ b/src/bacnet/basic/object/nc.c @@ -417,10 +417,8 @@ bool Notification_Class_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_PRIORITY: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { if (wp_data->array_index == 0) { wp_data->error_class = ERROR_CLASS_PROPERTY; @@ -472,10 +470,8 @@ bool Notification_Class_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_ACK_REQUIRED: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_BIT_STRING, - &wp_data->error_class, &wp_data->error_code); - + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BIT_STRING); if (status) { if (value.type.Bit_String.bits_used == 3) { CurrentNotify->Ack_Required = diff --git a/src/bacnet/basic/object/netport.c b/src/bacnet/basic/object/netport.c index 9647e995..a7dab6a9 100644 --- a/src/bacnet/basic/object/netport.c +++ b/src/bacnet/basic/object/netport.c @@ -2146,7 +2146,9 @@ bool Network_Port_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) /* FIXME: len < application_data_len: more data? */ switch (wp_data->object_property) { case PROP_MAX_MASTER: - if (value.tag == BACNET_APPLICATION_TAG_UNSIGNED_INT) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); + if (status) { if (value.type.Unsigned_Int <= 255) { status = Network_Port_MSTP_Max_Master_Set( wp_data->object_instance, value.type.Unsigned_Int); @@ -2158,13 +2160,12 @@ bool Network_Port_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; case PROP_MAX_INFO_FRAMES: - if (value.tag == BACNET_APPLICATION_TAG_UNSIGNED_INT) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); + if (status) { if (value.type.Unsigned_Int <= 255) { status = Network_Port_MSTP_Max_Info_Frames_Set( wp_data->object_instance, value.type.Unsigned_Int); @@ -2177,9 +2178,6 @@ bool Network_Port_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } - } else { - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; } break; case PROP_OBJECT_IDENTIFIER: @@ -2316,19 +2314,6 @@ void Network_Port_Init(void) #include #include "ctest.h" -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - void test_network_port(Test *pTest) { uint8_t apdu[MAX_APDU] = { 0 }; diff --git a/src/bacnet/basic/object/netport.mak b/src/bacnet/basic/object/netport.mak deleted file mode 100644 index d4a4cda9..00000000 --- a/src/bacnet/basic/object/netport.mak +++ /dev/null @@ -1,43 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBACNET_UNIT_TEST -DTEST_NETWORK_PORT - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = netport.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/proplist.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(TEST_DIR)/ctest.c - -TARGET = network_port - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/osv.c b/src/bacnet/basic/object/osv.c index d91695a2..1cb7579b 100644 --- a/src/bacnet/basic/object/osv.c +++ b/src/bacnet/basic/object/osv.c @@ -303,7 +303,9 @@ bool OctetString_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - if (value.tag == BACNET_APPLICATION_TAG_OCTET_STRING) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_OCTET_STRING); + if (status) { /* Command priority 6 is reserved for use by Minimum On/Off algorithm and may not be used for other purposes in any object. */ @@ -321,16 +323,12 @@ bool OctetString_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } - } else { - status = false; - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { CurrentAV->Out_Of_Service = value.type.Boolean; } @@ -363,19 +361,6 @@ void OctetString_Value_Intrinsic_Reporting(uint32_t object_instance) #include #include "ctest.h" -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - void testOctetString_Value(Test *pTest) { BACNET_READ_PROPERTY_DATA rpdata; diff --git a/src/bacnet/basic/object/osv.mak b/src/bacnet/basic/object/osv.mak deleted file mode 100644 index c58be784..00000000 --- a/src/bacnet/basic/object/osv.mak +++ /dev/null @@ -1,43 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DBACNET_PROPERTY_LISTS -DTEST_OCTETSTRING_VALUE - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = osv.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/proplist.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(TEST_DIR)/ctest.c - -TARGET = octetstring_value - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/piv.c b/src/bacnet/basic/object/piv.c index a4a1ed89..97dc6934 100644 --- a/src/bacnet/basic/object/piv.c +++ b/src/bacnet/basic/object/piv.c @@ -309,7 +309,9 @@ bool PositiveInteger_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) switch (wp_data->object_property) { case PROP_PRESENT_VALUE: - if (value.tag == BACNET_APPLICATION_TAG_UNSIGNED_INT) { + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); + if (status) { /* Command priority 6 is reserved for use by Minimum On/Off algorithm and may not be used for other purposes in any object. */ @@ -327,16 +329,12 @@ bool PositiveInteger_Value_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } - } else { - status = false; - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; } break; case PROP_OUT_OF_SERVICE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { CurrentAV->Out_Of_Service = value.type.Boolean; } @@ -368,19 +366,6 @@ void PositiveInteger_Value_Intrinsic_Reporting(uint32_t object_instance) #include #include "ctest.h" -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - void testPositiveInteger_Value(Test *pTest) { BACNET_READ_PROPERTY_DATA rpdata; diff --git a/src/bacnet/basic/object/piv.mak b/src/bacnet/basic/object/piv.mak deleted file mode 100644 index 9247ffcc..00000000 --- a/src/bacnet/basic/object/piv.mak +++ /dev/null @@ -1,42 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_POSITIVEINTEGER_VALUE - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = piv.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(TEST_DIR)/ctest.c - -TARGET = positiveinteger_value - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/schedule.c b/src/bacnet/basic/object/schedule.c index 0ab850f6..bc6decf9 100644 --- a/src/bacnet/basic/object/schedule.c +++ b/src/bacnet/basic/object/schedule.c @@ -347,8 +347,8 @@ bool Schedule_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) suitable time for review by all interested parties. Say 6 months -> September 2016 */ - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { Schedule_Out_Of_Service_Set( wp_data->object_instance, value.type.Boolean); diff --git a/src/bacnet/basic/object/schedule.mak b/src/bacnet/basic/object/schedule.mak deleted file mode 100644 index 56411316..00000000 --- a/src/bacnet/basic/object/schedule.mak +++ /dev/null @@ -1,43 +0,0 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../src -TEST_DIR = ../../test -INCLUDES = -I../../include -I$(TEST_DIR) -I. -DEFINES = -DBIG_ENDIAN=0 -DBAC_TEST -DBACAPP_ALL -DTEST_SCHEDULE - -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g - -SRCS = schedule.c \ - $(SRC_DIR)/bacnet/bacdcode.c \ - $(SRC_DIR)/bacnet/bacint.c \ - $(SRC_DIR)/bacnet/bacstr.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/bacdevobjpropref.c \ - $(SRC_DIR)/bacnet/bactimevalue.c \ - $(SRC_DIR)/bacnet/datetime.c \ - $(SRC_DIR)/bacnet/lighting.c \ - $(SRC_DIR)/bacnet/bacapp.c \ - $(SRC_DIR)/bacnet/bactext.c \ - $(SRC_DIR)/bacnet/indtext.c \ - $(TEST_DIR)/ctest.c - -TARGET = schedule - -all: ${TARGET} - -OBJS = ${SRCS:.c=.o} - -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} - -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ - -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend - -clean: - rm -rf core ${TARGET} $(OBJS) - -include: .depend diff --git a/src/bacnet/basic/object/trendlog.c b/src/bacnet/basic/object/trendlog.c index ff7631c8..d2a86a5b 100644 --- a/src/bacnet/basic/object/trendlog.c +++ b/src/bacnet/basic/object/trendlog.c @@ -448,8 +448,8 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) } switch (wp_data->object_property) { case PROP_ENABLE: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { /* Section 12.25.5 can't enable a full log with stop when full * set */ @@ -490,8 +490,8 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_STOP_WHEN_FULL: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { /* Only trigger this on a change of state */ if (CurrentLog->bStopWhenFull != value.type.Boolean) { @@ -522,9 +522,8 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_RECORD_COUNT: - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { if (value.type.Unsigned_Int == 0) { /* Time to clear down the log */ @@ -540,9 +539,8 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) /* logic * triggered and polled options. */ - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_ENUMERATED, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_ENUMERATED); if (status) { if (value.type.Enumerated != LOGGING_TYPE_COV) { CurrentLog->LoggingType = @@ -571,8 +569,8 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) case PROP_START_TIME: /* Copy the date part to safe place */ - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_DATE, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_DATE); if (!status) { break; } @@ -583,8 +581,8 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->application_data_len - len, &value); if (len) { - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_TIME, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_TIME); if (!status) { break; } @@ -622,8 +620,8 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) case PROP_STOP_TIME: /* Copy the date part to safe place */ - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_DATE, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_DATE); if (!status) { break; } @@ -634,8 +632,8 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->application_data_len - len, &value); if (len) { - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_TIME, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_TIME); if (!status) { break; } @@ -714,9 +712,8 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED; break; } - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { if ((CurrentLog->LoggingType == LOGGING_TYPE_POLLED) && (value.type.Unsigned_Int == 0)) { @@ -740,8 +737,8 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) break; case PROP_ALIGN_INTERVALS: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { CurrentLog->bAlignIntervals = value.type.Boolean; } @@ -750,17 +747,16 @@ bool Trend_Log_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) case PROP_INTERVAL_OFFSET: /* We only log to 1 sec accuracy so must divide by 100 before * passing it on */ - status = - WPValidateArgType(&value, BACNET_APPLICATION_TAG_UNSIGNED_INT, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_UNSIGNED_INT); if (status) { CurrentLog->ulIntervalOffset = value.type.Unsigned_Int / 100; } break; case PROP_TRIGGER: - status = WPValidateArgType(&value, BACNET_APPLICATION_TAG_BOOLEAN, - &wp_data->error_class, &wp_data->error_code); + status = write_property_type_valid(wp_data, &value, + BACNET_APPLICATION_TAG_BOOLEAN); if (status) { /* We will not allow triggered operation if polling with * aligning to the clock as that will produce non aligned diff --git a/src/bacnet/wp.c b/src/bacnet/wp.c index d2391501..b0fc0719 100644 --- a/src/bacnet/wp.c +++ b/src/bacnet/wp.c @@ -198,6 +198,131 @@ int wp_decode_service_request( return len; } +/** + * @brief simple validation of value tag for Write Property argument + * @param wp_data - #BACNET_WRITE_PROPERTY_DATA data, including + * requested data and space for the reply, or error response. + * @param value - #BACNET_APPLICATION_DATA_VALUE data, for the tag + * @param expected_tag - the tag that is expected for this property value + */ +bool write_property_type_valid( + BACNET_WRITE_PROPERTY_DATA * wp_data, + BACNET_APPLICATION_DATA_VALUE * value, + uint8_t expected_tag) +{ + /* assume success */ + bool valid = true; + + if (value && (value->tag != expected_tag)) { + valid = false; + if (wp_data) { + wp_data->error_class = ERROR_CLASS_PROPERTY; + wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; + } + } + + return (valid); +} + +/** + * @brief simple validation of character string value for Write Property + * @param wp_data - #BACNET_WRITE_PROPERTY_DATA data, including + * requested data and space for the reply, or error response. + * @param value - #BACNET_APPLICATION_DATA_VALUE data, for the tag + * @param expected_tag - the tag that is expected for this property value + */ +bool write_property_string_valid( + BACNET_WRITE_PROPERTY_DATA * wp_data, + BACNET_APPLICATION_DATA_VALUE * value, + int len_max) +{ + bool valid = false; + + if (value && (value->tag == BACNET_APPLICATION_TAG_CHARACTER_STRING)) { + if (characterstring_encoding(&value->type.Character_String) == + CHARACTER_ANSI_X34) { + if (characterstring_length(&value->type.Character_String) == 0) { + if (wp_data) { + wp_data->error_class = ERROR_CLASS_PROPERTY; + wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; + } + } else if (!characterstring_printable( + &value->type.Character_String)) { + /* assumption: non-empty also means must be "printable" */ + if (wp_data) { + wp_data->error_class = ERROR_CLASS_PROPERTY; + wp_data->error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; + } + } else if (characterstring_length(&value->type.Character_String) > + (uint16_t)len_max) { + if (wp_data) { + wp_data->error_class = ERROR_CLASS_RESOURCES; + wp_data->error_code = ERROR_CODE_NO_SPACE_TO_WRITE_PROPERTY; + } + } else { + /* It's all good! */ + valid = true; + } + } else { + if (wp_data) { + wp_data->error_class = ERROR_CLASS_PROPERTY; + wp_data->error_code = ERROR_CODE_CHARACTER_SET_NOT_SUPPORTED; + } + } + } else { + if (wp_data) { + wp_data->error_class = ERROR_CLASS_PROPERTY; + wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; + } + } + + return (valid); +} + +/** + * @brief simple validation of character string value for Write Property + * for character strings which can be empty + * @param wp_data - #BACNET_WRITE_PROPERTY_DATA data, including + * requested data and space for the reply, or error response. + * @param value - #BACNET_APPLICATION_DATA_VALUE data, for the tag + * @param expected_tag - the tag that is expected for this property value + */ +bool write_property_empty_string_valid( + BACNET_WRITE_PROPERTY_DATA * wp_data, + BACNET_APPLICATION_DATA_VALUE * value, + int len_max) +{ + bool valid = false; + + if (value && (value->tag == BACNET_APPLICATION_TAG_CHARACTER_STRING)) { + if (characterstring_encoding(&value->type.Character_String) == + CHARACTER_ANSI_X34) { + if (characterstring_length(&value->type.Character_String) > + (uint16_t)len_max) { + if (wp_data) { + wp_data->error_class = ERROR_CLASS_RESOURCES; + wp_data->error_code = ERROR_CODE_NO_SPACE_TO_WRITE_PROPERTY; + } + } else { + /* It's all good! */ + valid = true; + } + } else { + if (wp_data) { + wp_data->error_class = ERROR_CLASS_PROPERTY; + wp_data->error_code = ERROR_CODE_CHARACTER_SET_NOT_SUPPORTED; + } + } + } else { + if (wp_data) { + wp_data->error_class = ERROR_CLASS_PROPERTY; + wp_data->error_code = ERROR_CODE_INVALID_DATA_TYPE; + } + } + + return (valid); +} + #ifdef BAC_TEST #include #include @@ -257,6 +382,7 @@ void testWritePropertyTag(Test *pTest, BACNET_APPLICATION_DATA_VALUE *value) len = bacapp_decode_application_data(test_data.application_data, test_data.application_data_len, &test_value); ct_test(pTest, test_value.tag == value->tag); + ct_test(pTest, write_property_type_valid(&wpdata, value, test_value.tag)); switch (test_value.tag) { case BACNET_APPLICATION_TAG_NULL: break; diff --git a/src/bacnet/wp.h b/src/bacnet/wp.h index 5b777308..bc7289eb 100644 --- a/src/bacnet/wp.h +++ b/src/bacnet/wp.h @@ -80,6 +80,22 @@ extern "C" { unsigned apdu_len, BACNET_WRITE_PROPERTY_DATA * wp_data); + BACNET_STACK_EXPORT + bool write_property_type_valid( + BACNET_WRITE_PROPERTY_DATA * wp_data, + BACNET_APPLICATION_DATA_VALUE * value, + uint8_t expected_tag); + BACNET_STACK_EXPORT + bool write_property_string_valid( + BACNET_WRITE_PROPERTY_DATA * wp_data, + BACNET_APPLICATION_DATA_VALUE * value, + int len_max); + BACNET_STACK_EXPORT + bool write_property_empty_string_valid( + BACNET_WRITE_PROPERTY_DATA * wp_data, + BACNET_APPLICATION_DATA_VALUE * value, + int len_max); + #ifdef BAC_TEST #include "ctest.h" BACNET_STACK_EXPORT diff --git a/test/bacnet/abort/CMakeLists.txt b/test/bacnet/abort/CMakeLists.txt index 38e29011..538c7745 100644 --- a/test/bacnet/abort/CMakeLists.txt +++ b/test/bacnet/abort/CMakeLists.txt @@ -7,7 +7,6 @@ project(test_${basename} VERSION 1.0.0 LANGUAGES C) - string(REGEX REPLACE "/test/bacnet/[a-zA-Z_/-]*$" "/src" @@ -39,3 +38,4 @@ add_executable(${PROJECT_NAME} ${ZTST_DIR}/ztest_mock.c ${ZTST_DIR}/ztest.c ) + diff --git a/test/bacnet/bacreal/Makefile b/test/bacnet/bacreal/Makefile index 0bc0f52b..764a464b 100644 --- a/test/bacnet/bacreal/Makefile +++ b/test/bacnet/bacreal/Makefile @@ -1,43 +1,452 @@ -#Makefile to build test case -CC = gcc -SRC_DIR = ../../../src -TEST_DIR = ../../../test -INCLUDES = -I$(SRC_DIR) -I$(TEST_DIR) -DEFINES = -DDEBUG_ENABLED=0 +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 -CFLAGS = -Wall $(INCLUDES) $(DEFINES) -g +# Default target executed when no arguments are given to make. +default_target: all -SRCS = main.c \ - $(SRC_DIR)/bacnet/bacreal.c \ - $(SRC_DIR)/bacnet/basic/sys/bigend.c \ - $(TEST_DIR)/ctest.c +.PHONY : default_target -TARGET_NAME = unittest -ifeq ($(OS),Windows_NT) -TARGET_EXT = .exe -else -TARGET_EXT = -endif -TARGET = $(TARGET_NAME)$(TARGET_EXT) +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: -all: ${TARGET} -OBJS = ${SRCS:.c=.o} +#============================================================================= +# Special targets provided by cmake. -${TARGET}: ${OBJS} - ${CC} -o $@ ${OBJS} +# Disable implicit rules so canonical targets will work. +.SUFFIXES: -.c.o: - ${CC} -c ${CFLAGS} $*.c -o $@ -depend: - rm -f .depend - ${CC} -MM ${CFLAGS} *.c >> .depend +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/skarg/Projects/bacnet-stack + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/skarg/Projects/bacnet-stack + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test + +.PHONY : test/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"dev\" \"lib\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components + +.PHONY : list_install_components/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# The main all target +all: cmake_check_build_system + cd /home/skarg/Projects/bacnet-stack && $(CMAKE_COMMAND) -E cmake_progress_start /home/skarg/Projects/bacnet-stack/CMakeFiles /home/skarg/Projects/bacnet-stack/test/bacnet/bacreal/CMakeFiles/progress.marks + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f CMakeFiles/Makefile2 test/bacnet/bacreal/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/skarg/Projects/bacnet-stack/CMakeFiles 0 +.PHONY : all + +# The main clean target clean: - rm -rf ${TARGET} $(OBJS) + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f CMakeFiles/Makefile2 test/bacnet/bacreal/clean +.PHONY : clean -test: ${TARGET} - ./${TARGET} +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f CMakeFiles/Makefile2 test/bacnet/bacreal/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f CMakeFiles/Makefile2 test/bacnet/bacreal/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/skarg/Projects/bacnet-stack && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/rule: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f CMakeFiles/Makefile2 test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/rule +.PHONY : test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/rule + +# Convenience name for target. +test_bacreal: test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/rule + +.PHONY : test_bacreal + +# fast build rule for target. +test_bacreal/fast: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build +.PHONY : test_bacreal/fast + +__/__/__/src/bacnet/bacdcode.o: __/__/__/src/bacnet/bacdcode.c.o + +.PHONY : __/__/__/src/bacnet/bacdcode.o + +# target to build an object file +__/__/__/src/bacnet/bacdcode.c.o: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/bacdcode.c.o +.PHONY : __/__/__/src/bacnet/bacdcode.c.o + +__/__/__/src/bacnet/bacdcode.i: __/__/__/src/bacnet/bacdcode.c.i + +.PHONY : __/__/__/src/bacnet/bacdcode.i + +# target to preprocess a source file +__/__/__/src/bacnet/bacdcode.c.i: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/bacdcode.c.i +.PHONY : __/__/__/src/bacnet/bacdcode.c.i + +__/__/__/src/bacnet/bacdcode.s: __/__/__/src/bacnet/bacdcode.c.s + +.PHONY : __/__/__/src/bacnet/bacdcode.s + +# target to generate assembly for a file +__/__/__/src/bacnet/bacdcode.c.s: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/bacdcode.c.s +.PHONY : __/__/__/src/bacnet/bacdcode.c.s + +__/__/__/src/bacnet/bacint.o: __/__/__/src/bacnet/bacint.c.o + +.PHONY : __/__/__/src/bacnet/bacint.o + +# target to build an object file +__/__/__/src/bacnet/bacint.c.o: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/bacint.c.o +.PHONY : __/__/__/src/bacnet/bacint.c.o + +__/__/__/src/bacnet/bacint.i: __/__/__/src/bacnet/bacint.c.i + +.PHONY : __/__/__/src/bacnet/bacint.i + +# target to preprocess a source file +__/__/__/src/bacnet/bacint.c.i: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/bacint.c.i +.PHONY : __/__/__/src/bacnet/bacint.c.i + +__/__/__/src/bacnet/bacint.s: __/__/__/src/bacnet/bacint.c.s + +.PHONY : __/__/__/src/bacnet/bacint.s + +# target to generate assembly for a file +__/__/__/src/bacnet/bacint.c.s: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/bacint.c.s +.PHONY : __/__/__/src/bacnet/bacint.c.s + +__/__/__/src/bacnet/bacreal.o: __/__/__/src/bacnet/bacreal.c.o + +.PHONY : __/__/__/src/bacnet/bacreal.o + +# target to build an object file +__/__/__/src/bacnet/bacreal.c.o: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/bacreal.c.o +.PHONY : __/__/__/src/bacnet/bacreal.c.o + +__/__/__/src/bacnet/bacreal.i: __/__/__/src/bacnet/bacreal.c.i + +.PHONY : __/__/__/src/bacnet/bacreal.i + +# target to preprocess a source file +__/__/__/src/bacnet/bacreal.c.i: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/bacreal.c.i +.PHONY : __/__/__/src/bacnet/bacreal.c.i + +__/__/__/src/bacnet/bacreal.s: __/__/__/src/bacnet/bacreal.c.s + +.PHONY : __/__/__/src/bacnet/bacreal.s + +# target to generate assembly for a file +__/__/__/src/bacnet/bacreal.c.s: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/bacreal.c.s +.PHONY : __/__/__/src/bacnet/bacreal.c.s + +__/__/__/src/bacnet/bacstr.o: __/__/__/src/bacnet/bacstr.c.o + +.PHONY : __/__/__/src/bacnet/bacstr.o + +# target to build an object file +__/__/__/src/bacnet/bacstr.c.o: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/bacstr.c.o +.PHONY : __/__/__/src/bacnet/bacstr.c.o + +__/__/__/src/bacnet/bacstr.i: __/__/__/src/bacnet/bacstr.c.i + +.PHONY : __/__/__/src/bacnet/bacstr.i + +# target to preprocess a source file +__/__/__/src/bacnet/bacstr.c.i: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/bacstr.c.i +.PHONY : __/__/__/src/bacnet/bacstr.c.i + +__/__/__/src/bacnet/bacstr.s: __/__/__/src/bacnet/bacstr.c.s + +.PHONY : __/__/__/src/bacnet/bacstr.s + +# target to generate assembly for a file +__/__/__/src/bacnet/bacstr.c.s: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/bacstr.c.s +.PHONY : __/__/__/src/bacnet/bacstr.c.s + +__/__/__/src/bacnet/basic/sys/bigend.o: __/__/__/src/bacnet/basic/sys/bigend.c.o + +.PHONY : __/__/__/src/bacnet/basic/sys/bigend.o + +# target to build an object file +__/__/__/src/bacnet/basic/sys/bigend.c.o: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/basic/sys/bigend.c.o +.PHONY : __/__/__/src/bacnet/basic/sys/bigend.c.o + +__/__/__/src/bacnet/basic/sys/bigend.i: __/__/__/src/bacnet/basic/sys/bigend.c.i + +.PHONY : __/__/__/src/bacnet/basic/sys/bigend.i + +# target to preprocess a source file +__/__/__/src/bacnet/basic/sys/bigend.c.i: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/basic/sys/bigend.c.i +.PHONY : __/__/__/src/bacnet/basic/sys/bigend.c.i + +__/__/__/src/bacnet/basic/sys/bigend.s: __/__/__/src/bacnet/basic/sys/bigend.c.s + +.PHONY : __/__/__/src/bacnet/basic/sys/bigend.s + +# target to generate assembly for a file +__/__/__/src/bacnet/basic/sys/bigend.c.s: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/__/src/bacnet/basic/sys/bigend.c.s +.PHONY : __/__/__/src/bacnet/basic/sys/bigend.c.s + +__/__/ztest/src/ztest.o: __/__/ztest/src/ztest.c.o + +.PHONY : __/__/ztest/src/ztest.o + +# target to build an object file +__/__/ztest/src/ztest.c.o: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/ztest/src/ztest.c.o +.PHONY : __/__/ztest/src/ztest.c.o + +__/__/ztest/src/ztest.i: __/__/ztest/src/ztest.c.i + +.PHONY : __/__/ztest/src/ztest.i + +# target to preprocess a source file +__/__/ztest/src/ztest.c.i: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/ztest/src/ztest.c.i +.PHONY : __/__/ztest/src/ztest.c.i + +__/__/ztest/src/ztest.s: __/__/ztest/src/ztest.c.s + +.PHONY : __/__/ztest/src/ztest.s + +# target to generate assembly for a file +__/__/ztest/src/ztest.c.s: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/ztest/src/ztest.c.s +.PHONY : __/__/ztest/src/ztest.c.s + +__/__/ztest/src/ztest_mock.o: __/__/ztest/src/ztest_mock.c.o + +.PHONY : __/__/ztest/src/ztest_mock.o + +# target to build an object file +__/__/ztest/src/ztest_mock.c.o: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/ztest/src/ztest_mock.c.o +.PHONY : __/__/ztest/src/ztest_mock.c.o + +__/__/ztest/src/ztest_mock.i: __/__/ztest/src/ztest_mock.c.i + +.PHONY : __/__/ztest/src/ztest_mock.i + +# target to preprocess a source file +__/__/ztest/src/ztest_mock.c.i: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/ztest/src/ztest_mock.c.i +.PHONY : __/__/ztest/src/ztest_mock.c.i + +__/__/ztest/src/ztest_mock.s: __/__/ztest/src/ztest_mock.c.s + +.PHONY : __/__/ztest/src/ztest_mock.s + +# target to generate assembly for a file +__/__/ztest/src/ztest_mock.c.s: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/__/__/ztest/src/ztest_mock.c.s +.PHONY : __/__/ztest/src/ztest_mock.c.s + +src/main.o: src/main.c.o + +.PHONY : src/main.o + +# target to build an object file +src/main.c.o: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/src/main.c.o +.PHONY : src/main.c.o + +src/main.i: src/main.c.i + +.PHONY : src/main.i + +# target to preprocess a source file +src/main.c.i: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/src/main.c.i +.PHONY : src/main.c.i + +src/main.s: src/main.c.s + +.PHONY : src/main.s + +# target to generate assembly for a file +src/main.c.s: + cd /home/skarg/Projects/bacnet-stack && $(MAKE) -f test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/build.make test/bacnet/bacreal/CMakeFiles/test_bacreal.dir/src/main.c.s +.PHONY : src/main.c.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... install/strip" + @echo "... install/local" + @echo "... test" + @echo "... list_install_components" + @echo "... test_bacreal" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... install" + @echo "... __/__/__/src/bacnet/bacdcode.o" + @echo "... __/__/__/src/bacnet/bacdcode.i" + @echo "... __/__/__/src/bacnet/bacdcode.s" + @echo "... __/__/__/src/bacnet/bacint.o" + @echo "... __/__/__/src/bacnet/bacint.i" + @echo "... __/__/__/src/bacnet/bacint.s" + @echo "... __/__/__/src/bacnet/bacreal.o" + @echo "... __/__/__/src/bacnet/bacreal.i" + @echo "... __/__/__/src/bacnet/bacreal.s" + @echo "... __/__/__/src/bacnet/bacstr.o" + @echo "... __/__/__/src/bacnet/bacstr.i" + @echo "... __/__/__/src/bacnet/bacstr.s" + @echo "... __/__/__/src/bacnet/basic/sys/bigend.o" + @echo "... __/__/__/src/bacnet/basic/sys/bigend.i" + @echo "... __/__/__/src/bacnet/basic/sys/bigend.s" + @echo "... __/__/ztest/src/ztest.o" + @echo "... __/__/ztest/src/ztest.i" + @echo "... __/__/ztest/src/ztest.s" + @echo "... __/__/ztest/src/ztest_mock.o" + @echo "... __/__/ztest/src/ztest_mock.i" + @echo "... __/__/ztest/src/ztest_mock.s" + @echo "... src/main.o" + @echo "... src/main.i" + @echo "... src/main.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/skarg/Projects/bacnet-stack && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system -include: .depend diff --git a/test/bacnet/basic/object/acc/src/main.c b/test/bacnet/basic/object/acc/src/main.c index 83c4c975..15cdbdaa 100644 --- a/test/bacnet/basic/object/acc/src/main.c +++ b/test/bacnet/basic/object/acc/src/main.c @@ -21,39 +21,41 @@ */ static void test_Accumulator(void) { -#if 0 /*TODO: Refactor implementation to expose for testing */ uint8_t apdu[MAX_APDU] = { 0 }; int len = 0; int test_len = 0; BACNET_READ_PROPERTY_DATA rpdata = {0}; BACNET_APPLICATION_DATA_VALUE value = {0}; - const int *property = &Properties_Required[0]; + int *required_property = NULL; BACNET_UNSIGNED_INTEGER unsigned_value = 1; Accumulator_Init(); rpdata.application_data = &apdu[0]; rpdata.application_data_len = sizeof(apdu); rpdata.object_type = OBJECT_ACCUMULATOR; - rpdata.object_instance = 1; + rpdata.object_instance = Accumulator_Index_To_Instance(0); - while ((*property) >= 0) { - rpdata.object_property = *property; + Accumulator_Property_Lists(&required_property, NULL, NULL); + while ((*required_property) >= 0) { + rpdata.object_property = *required_property; rpdata.array_index = BACNET_ARRAY_ALL; len = Accumulator_Read_Property(&rpdata); - zassert_not_equal(len, 0, NULL); - if (IS_CONTEXT_SPECIFIC(rpdata.application_data[0])) { - test_len = bacapp_decode_context_data(rpdata.application_data, - len, &value, rpdata.object_property); - } else { - test_len = bacapp_decode_application_data(rpdata.application_data, - len, &value); + zassert_true(len >= 0, NULL); + if (len >= 0) { + if (IS_CONTEXT_SPECIFIC(rpdata.application_data[0])) { + test_len = bacapp_decode_context_data(rpdata.application_data, + len, &value, rpdata.object_property); + } else { + test_len = bacapp_decode_application_data( + rpdata.application_data, len, &value); + } + if (len != test_len) { + printf("property '%s': failed to decode!\n", + bactext_property_name(rpdata.object_property)); + } + zassert_equal(len, test_len, NULL); } - if (len != test_len) { - printf("property '%s': failed to decode!\n", - bactext_property_name(rpdata.object_property)); - } - zassert_equal(len, test_len, NULL); - property++; + required_property++; } /* test 1-bit to 64-bit encode/decode of present-value */ rpdata.object_property = PROP_PRESENT_VALUE; @@ -68,9 +70,6 @@ static void test_Accumulator(void) } return; -#else - ztest_test_skip(); -#endif } /** * @} diff --git a/test/bacnet/basic/object/access_credential/CMakeLists.txt b/test/bacnet/basic/object/access_credential/CMakeLists.txt index baf6b03c..32f31499 100644 --- a/test/bacnet/basic/object/access_credential/CMakeLists.txt +++ b/test/bacnet/basic/object/access_credential/CMakeLists.txt @@ -48,7 +48,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/access_credential/src/main.c b/test/bacnet/basic/object/access_credential/src/main.c index 55a66ed5..dddbf6be 100644 --- a/test/bacnet/basic/object/access_credential/src/main.c +++ b/test/bacnet/basic/object/access_credential/src/main.c @@ -23,26 +23,46 @@ static void testAccessCredential(void) { uint8_t apdu[MAX_APDU] = { 0 }; int len = 0; - uint32_t len_value = 0; - uint8_t tag_number = 0; - uint32_t decoded_instance = 0; - BACNET_OBJECT_TYPE decoded_type = 0; - BACNET_READ_PROPERTY_DATA rpdata; + int test_len = 0; + BACNET_READ_PROPERTY_DATA rpdata = {0}; + BACNET_APPLICATION_DATA_VALUE value = {0}; + BACNET_APPLICATION_DATA_VALUE value2 = {0}; + int *required_property = NULL; + BACNET_UNSIGNED_INTEGER unsigned_value = 1; Access_Credential_Init(); rpdata.application_data = &apdu[0]; rpdata.application_data_len = sizeof(apdu); rpdata.object_type = OBJECT_ACCESS_CREDENTIAL; - rpdata.object_instance = 1; - rpdata.object_property = PROP_OBJECT_IDENTIFIER; - rpdata.array_index = BACNET_ARRAY_ALL; - len = Access_Credential_Read_Property(&rpdata); - zassert_not_equal(len, 0, NULL); - len = decode_tag_number_and_value(&apdu[0], &tag_number, &len_value); - zassert_equal(tag_number, BACNET_APPLICATION_TAG_OBJECT_ID, NULL); - len = decode_object_id(&apdu[len], &decoded_type, &decoded_instance); - zassert_equal(decoded_type, rpdata.object_type, NULL); - zassert_equal(decoded_instance, rpdata.object_instance, NULL); + rpdata.object_instance = Access_Credential_Index_To_Instance(0); + + Access_Credential_Property_Lists(&required_property, NULL, NULL); + while ((*required_property) >= 0) { + rpdata.object_property = *required_property; + rpdata.array_index = BACNET_ARRAY_ALL; + len = Access_Credential_Read_Property(&rpdata); + zassert_true(len >= 0, NULL); + if (len >= 0) { + if (IS_CONTEXT_SPECIFIC(rpdata.application_data[0])) { + test_len = bacapp_decode_context_data(rpdata.application_data, + len, &value, rpdata.object_property); + } else { + test_len = bacapp_decode_application_data( + rpdata.application_data, len, &value); + if (test_len < len) { + test_len += bacapp_decode_application_data( + rpdata.application_data+test_len, len-test_len, + &value2); + } + } + if (len != test_len) { + fprintf(stderr, "property '%d': failed to decode!\n", + rpdata.object_property); + } + zassert_true(len == test_len, NULL); + } + required_property++; + } return; } diff --git a/test/bacnet/basic/object/access_credential/stubs.c b/test/bacnet/basic/object/access_credential/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/access_credential/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/access_door/CMakeLists.txt b/test/bacnet/basic/object/access_door/CMakeLists.txt index e2bcb6ee..27a66987 100644 --- a/test/bacnet/basic/object/access_door/CMakeLists.txt +++ b/test/bacnet/basic/object/access_door/CMakeLists.txt @@ -45,7 +45,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/access_door/stubs.c b/test/bacnet/basic/object/access_door/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/access_door/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/access_rights/CMakeLists.txt b/test/bacnet/basic/object/access_rights/CMakeLists.txt index ab41c1cd..6ae6ec20 100644 --- a/test/bacnet/basic/object/access_rights/CMakeLists.txt +++ b/test/bacnet/basic/object/access_rights/CMakeLists.txt @@ -46,7 +46,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/access_rights/stubs.c b/test/bacnet/basic/object/access_rights/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/access_rights/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/access_user/CMakeLists.txt b/test/bacnet/basic/object/access_user/CMakeLists.txt index 86b06677..52d6fc98 100644 --- a/test/bacnet/basic/object/access_user/CMakeLists.txt +++ b/test/bacnet/basic/object/access_user/CMakeLists.txt @@ -45,7 +45,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/access_user/stubs.c b/test/bacnet/basic/object/access_user/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/access_user/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/access_zone/CMakeLists.txt b/test/bacnet/basic/object/access_zone/CMakeLists.txt index f0d1996d..7ee422d0 100644 --- a/test/bacnet/basic/object/access_zone/CMakeLists.txt +++ b/test/bacnet/basic/object/access_zone/CMakeLists.txt @@ -49,7 +49,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/access_zone/stubs.c b/test/bacnet/basic/object/access_zone/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/access_zone/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/ai/CMakeLists.txt b/test/bacnet/basic/object/ai/CMakeLists.txt index 81808c43..baa97684 100644 --- a/test/bacnet/basic/object/ai/CMakeLists.txt +++ b/test/bacnet/basic/object/ai/CMakeLists.txt @@ -47,7 +47,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c ${SRC_DIR}/bacnet/memcopy.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/ai/stubs.c b/test/bacnet/basic/object/ai/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/ai/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/ao/CMakeLists.txt b/test/bacnet/basic/object/ao/CMakeLists.txt index e47d67c8..4b3568ce 100644 --- a/test/bacnet/basic/object/ao/CMakeLists.txt +++ b/test/bacnet/basic/object/ao/CMakeLists.txt @@ -45,7 +45,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/ao/stubs.c b/test/bacnet/basic/object/ao/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/ao/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/av/CMakeLists.txt b/test/bacnet/basic/object/av/CMakeLists.txt index 60d525f2..3b053065 100644 --- a/test/bacnet/basic/object/av/CMakeLists.txt +++ b/test/bacnet/basic/object/av/CMakeLists.txt @@ -47,7 +47,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c ${SRC_DIR}/bacnet/memcopy.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/av/stubs.c b/test/bacnet/basic/object/av/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/av/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/bi/CMakeLists.txt b/test/bacnet/basic/object/bi/CMakeLists.txt index 04bf7355..1c9ab197 100644 --- a/test/bacnet/basic/object/bi/CMakeLists.txt +++ b/test/bacnet/basic/object/bi/CMakeLists.txt @@ -47,7 +47,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c ${SRC_DIR}/bacnet/memcopy.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/bi/stubs.c b/test/bacnet/basic/object/bi/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/bi/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/bo/CMakeLists.txt b/test/bacnet/basic/object/bo/CMakeLists.txt index 54ab3572..165cd632 100644 --- a/test/bacnet/basic/object/bo/CMakeLists.txt +++ b/test/bacnet/basic/object/bo/CMakeLists.txt @@ -45,7 +45,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/bo/stubs.c b/test/bacnet/basic/object/bo/stubs.c deleted file mode 100644 index 7b109e43..00000000 --- a/test/bacnet/basic/object/bo/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/bv/CMakeLists.txt b/test/bacnet/basic/object/bv/CMakeLists.txt index fa679e8e..6671f4a7 100644 --- a/test/bacnet/basic/object/bv/CMakeLists.txt +++ b/test/bacnet/basic/object/bv/CMakeLists.txt @@ -45,7 +45,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/bv/stubs.c b/test/bacnet/basic/object/bv/stubs.c deleted file mode 100644 index 7b109e43..00000000 --- a/test/bacnet/basic/object/bv/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/command/CMakeLists.txt b/test/bacnet/basic/object/command/CMakeLists.txt index 78afc6aa..4664f6cc 100644 --- a/test/bacnet/basic/object/command/CMakeLists.txt +++ b/test/bacnet/basic/object/command/CMakeLists.txt @@ -45,7 +45,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/command/stubs.c b/test/bacnet/basic/object/command/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/command/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/credential_data_input/CMakeLists.txt b/test/bacnet/basic/object/credential_data_input/CMakeLists.txt index fb2df9d0..f037a713 100644 --- a/test/bacnet/basic/object/credential_data_input/CMakeLists.txt +++ b/test/bacnet/basic/object/credential_data_input/CMakeLists.txt @@ -49,7 +49,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c ${SRC_DIR}/bacnet/timestamp.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/credential_data_input/stubs.c b/test/bacnet/basic/object/credential_data_input/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/credential_data_input/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/lc/CMakeLists.txt b/test/bacnet/basic/object/lc/CMakeLists.txt index ab34d3d0..cda4b2f1 100644 --- a/test/bacnet/basic/object/lc/CMakeLists.txt +++ b/test/bacnet/basic/object/lc/CMakeLists.txt @@ -47,6 +47,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c + ${SRC_DIR}/bacnet/wp.c ./stubs.c # Test and test library files ./src/main.c diff --git a/test/bacnet/basic/object/lc/stubs.c b/test/bacnet/basic/object/lc/stubs.c index 99a698e8..9a11a3e1 100644 --- a/test/bacnet/basic/object/lc/stubs.c +++ b/test/bacnet/basic/object/lc/stubs.c @@ -29,21 +29,6 @@ #include #include "bacnet/bacapp.h" #include "bacnet/datetime.h" -//#include "bacnet/bacdef.h" -//#include "bacnet/npdu.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} void datetime_init(void) { diff --git a/test/bacnet/basic/object/lo/CMakeLists.txt b/test/bacnet/basic/object/lo/CMakeLists.txt index 35747bce..e36ce9ab 100644 --- a/test/bacnet/basic/object/lo/CMakeLists.txt +++ b/test/bacnet/basic/object/lo/CMakeLists.txt @@ -47,7 +47,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/lo/stubs.c b/test/bacnet/basic/object/lo/stubs.c deleted file mode 100644 index 99a698e8..00000000 --- a/test/bacnet/basic/object/lo/stubs.c +++ /dev/null @@ -1,59 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" -#include "bacnet/datetime.h" -//#include "bacnet/bacdef.h" -//#include "bacnet/npdu.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} - -void datetime_init(void) -{ -} - -bool datetime_local( - BACNET_DATE * bdate, - BACNET_TIME * btime, - int16_t * utc_offset_minutes, - bool * dst_active) -{ - return true; -} diff --git a/test/bacnet/basic/object/lsp/CMakeLists.txt b/test/bacnet/basic/object/lsp/CMakeLists.txt index 5c4b5caa..7e275d4a 100644 --- a/test/bacnet/basic/object/lsp/CMakeLists.txt +++ b/test/bacnet/basic/object/lsp/CMakeLists.txt @@ -46,7 +46,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/lsp/stubs.c b/test/bacnet/basic/object/lsp/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/lsp/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/ms-input/CMakeLists.txt b/test/bacnet/basic/object/ms-input/CMakeLists.txt index 758d0e19..1d63c9cf 100644 --- a/test/bacnet/basic/object/ms-input/CMakeLists.txt +++ b/test/bacnet/basic/object/ms-input/CMakeLists.txt @@ -34,57 +34,18 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/ms-input.c # Support files and stubs (pathname alphabetical) - ${SRC_DIR}/bacnet/abort.c - ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c ${SRC_DIR}/bacnet/bacdcode.c ${SRC_DIR}/bacnet/bacdevobjpropref.c - ${SRC_DIR}/bacnet/bacerror.c ${SRC_DIR}/bacnet/bacint.c ${SRC_DIR}/bacnet/bacreal.c ${SRC_DIR}/bacnet/bacstr.c ${SRC_DIR}/bacnet/bactext.c - ${SRC_DIR}/bacnet/bactimevalue.c - ${SRC_DIR}/bacnet/basic/binding/address.c - ${SRC_DIR}/bacnet/basic/object/acc.c - ${SRC_DIR}/bacnet/basic/object/ai.c - ${SRC_DIR}/bacnet/basic/object/ao.c - ${SRC_DIR}/bacnet/basic/object/av.c - ${SRC_DIR}/bacnet/basic/object/bi.c - ${SRC_DIR}/bacnet/basic/object/bo.c - ${SRC_DIR}/bacnet/basic/object/bv.c - ${SRC_DIR}/bacnet/basic/object/channel.c - ${SRC_DIR}/bacnet/basic/object/command.c - ${SRC_DIR}/bacnet/basic/object/csv.c - ${SRC_DIR}/bacnet/basic/object/device.c - ${SRC_DIR}/bacnet/basic/object/iv.c - ${SRC_DIR}/bacnet/basic/object/lc.c - ${SRC_DIR}/bacnet/basic/object/lo.c - ${SRC_DIR}/bacnet/basic/object/lsp.c - ${SRC_DIR}/bacnet/basic/object/mso.c - ${SRC_DIR}/bacnet/basic/object/msv.c - ${SRC_DIR}/bacnet/basic/object/netport.c - ${SRC_DIR}/bacnet/basic/object/osv.c - ${SRC_DIR}/bacnet/basic/object/piv.c - ${SRC_DIR}/bacnet/basic/object/schedule.c - ${SRC_DIR}/bacnet/basic/object/trendlog.c - ${SRC_DIR}/bacnet/basic/service/h_apdu.c - ${SRC_DIR}/bacnet/basic/service/h_cov.c - ${SRC_DIR}/bacnet/basic/service/h_wp.c ${SRC_DIR}/bacnet/basic/sys/bigend.c - ${SRC_DIR}/bacnet/basic/tsm/tsm.c - ${SRC_DIR}/bacnet/cov.c ${SRC_DIR}/bacnet/datetime.c - ${SRC_DIR}/bacnet/dcc.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ${SRC_DIR}/bacnet/memcopy.c - ${SRC_DIR}/bacnet/npdu.c - ${SRC_DIR}/bacnet/proplist.c - ${SRC_DIR}/bacnet/reject.c - ${SRC_DIR}/bacnet/timestamp.c ${SRC_DIR}/bacnet/wp.c - ./stubs.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/ms-input/src/main.c b/test/bacnet/basic/object/ms-input/src/main.c index a0f4e01c..5a965646 100644 --- a/test/bacnet/basic/object/ms-input/src/main.c +++ b/test/bacnet/basic/object/ms-input/src/main.c @@ -11,6 +11,19 @@ #include #include +/** + * stub + */ +bool Device_Valid_Object_Name(BACNET_CHARACTER_STRING *object_name, + BACNET_OBJECT_TYPE *object_type, + uint32_t *object_instance) +{ + (void)object_name; + (void)object_type; + (void)object_instance; + return false; +} + /** * @addtogroup bacnet_tests * @{ diff --git a/test/bacnet/basic/object/ms-input/stubs.c b/test/bacnet/basic/object/ms-input/stubs.c deleted file mode 100644 index f542650c..00000000 --- a/test/bacnet/basic/object/ms-input/stubs.c +++ /dev/null @@ -1,58 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/datetime.h" -#include "bacnet/bacdef.h" -#include "bacnet/npdu.h" - -void datetime_init(void) -{ -} - -bool datetime_local( - BACNET_DATE * bdate, - BACNET_TIME * btime, - int16_t * utc_offset_minutes, - bool * dst_active) -{ - return true; -} - -void bip_get_my_address(BACNET_ADDRESS * my_address) -{ -} - -int bip_send_pdu( - BACNET_ADDRESS * dest, - BACNET_NPDU_DATA * npdu_data, - uint8_t * pdu, - unsigned pdu_len) -{ - return 0; -} diff --git a/test/bacnet/basic/object/mso/CMakeLists.txt b/test/bacnet/basic/object/mso/CMakeLists.txt index 30a24a93..3b379b39 100644 --- a/test/bacnet/basic/object/mso/CMakeLists.txt +++ b/test/bacnet/basic/object/mso/CMakeLists.txt @@ -45,7 +45,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/mso/stubs.c b/test/bacnet/basic/object/mso/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/mso/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/msv/CMakeLists.txt b/test/bacnet/basic/object/msv/CMakeLists.txt index 535b24f4..9d30c260 100644 --- a/test/bacnet/basic/object/msv/CMakeLists.txt +++ b/test/bacnet/basic/object/msv/CMakeLists.txt @@ -47,7 +47,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c ${SRC_DIR}/bacnet/memcopy.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/msv/stubs.c b/test/bacnet/basic/object/msv/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/msv/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/netport/CMakeLists.txt b/test/bacnet/basic/object/netport/CMakeLists.txt index 5873e0a9..6a1646b5 100644 --- a/test/bacnet/basic/object/netport/CMakeLists.txt +++ b/test/bacnet/basic/object/netport/CMakeLists.txt @@ -47,6 +47,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c ${SRC_DIR}/bacnet/proplist.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/objects/CMakeLists.txt b/test/bacnet/basic/object/objects/CMakeLists.txt index afa1a420..88ebb593 100644 --- a/test/bacnet/basic/object/objects/CMakeLists.txt +++ b/test/bacnet/basic/object/objects/CMakeLists.txt @@ -36,7 +36,6 @@ add_executable(${PROJECT_NAME} # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/basic/sys/key.c ${SRC_DIR}/bacnet/basic/sys/keylist.c - ./stubs.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/objects/stubs.c b/test/bacnet/basic/object/objects/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/objects/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/osv/CMakeLists.txt b/test/bacnet/basic/object/osv/CMakeLists.txt index 9a95e9e2..1b350cf1 100644 --- a/test/bacnet/basic/object/osv/CMakeLists.txt +++ b/test/bacnet/basic/object/osv/CMakeLists.txt @@ -45,7 +45,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/osv/stubs.c b/test/bacnet/basic/object/osv/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/osv/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/piv/CMakeLists.txt b/test/bacnet/basic/object/piv/CMakeLists.txt index 59224ccd..3e13bbf3 100644 --- a/test/bacnet/basic/object/piv/CMakeLists.txt +++ b/test/bacnet/basic/object/piv/CMakeLists.txt @@ -45,7 +45,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/piv/stubs.c b/test/bacnet/basic/object/piv/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/piv/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/basic/object/schedule/CMakeLists.txt b/test/bacnet/basic/object/schedule/CMakeLists.txt index 5698787a..9c6d6190 100644 --- a/test/bacnet/basic/object/schedule/CMakeLists.txt +++ b/test/bacnet/basic/object/schedule/CMakeLists.txt @@ -46,7 +46,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/datetime.c ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/lighting.c - ./stubs.c + ${SRC_DIR}/bacnet/wp.c # Test and test library files ./src/main.c ${ZTST_DIR}/ztest_mock.c diff --git a/test/bacnet/basic/object/schedule/stubs.c b/test/bacnet/basic/object/schedule/stubs.c deleted file mode 100644 index 58192fe0..00000000 --- a/test/bacnet/basic/object/schedule/stubs.c +++ /dev/null @@ -1,43 +0,0 @@ -/************************************************************************** - * - * Copyright (C) 2006 Steve Karg - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - *********************************************************************/ - -/* Binary Input Objects customize for your use */ - -#include -#include -#include "bacnet/bacapp.h" - -bool WPValidateArgType(BACNET_APPLICATION_DATA_VALUE *pValue, - uint8_t ucExpectedTag, - BACNET_ERROR_CLASS *pErrorClass, - BACNET_ERROR_CODE *pErrorCode) -{ - pValue = pValue; - ucExpectedTag = ucExpectedTag; - pErrorClass = pErrorClass; - pErrorCode = pErrorCode; - - return false; -} diff --git a/test/bacnet/dcc/src/main.c b/test/bacnet/dcc/src/main.c index 75069fc8..d464379e 100644 --- a/test/bacnet/dcc/src/main.c +++ b/test/bacnet/dcc/src/main.c @@ -132,7 +132,7 @@ static void test_DeviceCommunicationControlMalformedData(void) zassert_equal(len, BACNET_STATUS_ERROR, NULL); len = dcc_decode_apdu(&payload_4[0], sizeof(payload_4), &test_invoke_id, &test_timeDuration, &test_enable_disable, &test_password); - zassert_equal(len, BACNET_STATUS_ERROR, NULL); + zassert_equal(len, BACNET_STATUS_ABORT, NULL); len = dcc_decode_apdu(&payload_5[0], sizeof(payload_5), &test_invoke_id, &test_timeDuration, &test_enable_disable, &test_password); zassert_equal(len, BACNET_STATUS_ERROR, NULL); diff --git a/test/bacnet/wp/src/main.c b/test/bacnet/wp/src/main.c index d2662d06..c01cc751 100644 --- a/test/bacnet/wp/src/main.c +++ b/test/bacnet/wp/src/main.c @@ -56,6 +56,7 @@ static void testWritePropertyTag(BACNET_APPLICATION_DATA_VALUE *value) int apdu_len = 0; uint8_t invoke_id = 128; uint8_t test_invoke_id = 0; + bool status = false; wpdata.application_data_len = bacapp_encode_application_data(&wpdata.application_data[0], value); @@ -73,6 +74,8 @@ static void testWritePropertyTag(BACNET_APPLICATION_DATA_VALUE *value) len = bacapp_decode_application_data(test_data.application_data, test_data.application_data_len, &test_value); zassert_equal(test_value.tag, value->tag, NULL); + status = write_property_type_valid(&wpdata, value, test_value.tag); + zassert_equal(status, true, NULL); switch (test_value.tag) { case BACNET_APPLICATION_TAG_NULL: break;