From c18768ba61402e73e11c61216691fa89d06cb825 Mon Sep 17 00:00:00 2001 From: Steve Karg Date: Mon, 30 Sep 2024 14:04:30 -0500 Subject: [PATCH] Fixed BACnetAccessRule application integration into Access Rights object. Improved unit testing and code coverage. (#790) --- src/bacnet/access_rule.c | 110 ++++------ src/bacnet/access_rule.h | 20 +- src/bacnet/bacapp.c | 83 +++++++ src/bacnet/bacapp.h | 4 + src/bacnet/bacenum.h | 4 +- src/bacnet/basic/object/access_rights.c | 205 ++++++++++-------- src/bacnet/config.h | 5 +- test/bacnet/access_rule/src/main.c | 28 --- test/bacnet/bacapp/CMakeLists.txt | 1 + test/bacnet/bacapp/src/main.c | 4 +- test/bacnet/bacdest/CMakeLists.txt | 1 + test/bacnet/bacdevobjpropref/CMakeLists.txt | 1 + test/bacnet/bactimevalue/CMakeLists.txt | 1 + .../basic/binding/address/CMakeLists.txt | 1 + test/bacnet/basic/object/acc/CMakeLists.txt | 1 + .../object/access_credential/CMakeLists.txt | 1 + .../basic/object/access_door/CMakeLists.txt | 1 + .../basic/object/access_point/CMakeLists.txt | 1 + .../basic/object/access_rights/CMakeLists.txt | 5 + .../basic/object/access_rights/src/main.c | 35 ++- .../basic/object/access_user/CMakeLists.txt | 1 + .../basic/object/access_zone/CMakeLists.txt | 1 + test/bacnet/basic/object/ai/CMakeLists.txt | 1 + test/bacnet/basic/object/ao/CMakeLists.txt | 1 + test/bacnet/basic/object/av/CMakeLists.txt | 1 + .../basic/object/bacfile/CMakeLists.txt | 1 + test/bacnet/basic/object/bi/CMakeLists.txt | 1 + .../object/bitstring_value/CMakeLists.txt | 1 + test/bacnet/basic/object/blo/CMakeLists.txt | 1 + test/bacnet/basic/object/bo/CMakeLists.txt | 1 + test/bacnet/basic/object/bv/CMakeLists.txt | 1 + .../basic/object/calendar/CMakeLists.txt | 1 + .../basic/object/channel/CMakeLists.txt | 1 + .../basic/object/color_object/CMakeLists.txt | 1 + .../object/color_temperature/CMakeLists.txt | 1 + .../basic/object/command/CMakeLists.txt | 1 + .../credential_data_input/CMakeLists.txt | 1 + test/bacnet/basic/object/csv/CMakeLists.txt | 1 + .../bacnet/basic/object/device/CMakeLists.txt | 1 + test/bacnet/basic/object/device/src/main.c | 1 - test/bacnet/basic/object/iv/CMakeLists.txt | 1 + test/bacnet/basic/object/lc/CMakeLists.txt | 1 + test/bacnet/basic/object/lo/CMakeLists.txt | 1 + test/bacnet/basic/object/lsp/CMakeLists.txt | 1 + test/bacnet/basic/object/lsz/CMakeLists.txt | 1 + .../basic/object/ms-input/CMakeLists.txt | 1 + test/bacnet/basic/object/mso/CMakeLists.txt | 1 + test/bacnet/basic/object/msv/CMakeLists.txt | 1 + test/bacnet/basic/object/nc/CMakeLists.txt | 1 + .../basic/object/netport/CMakeLists.txt | 1 + test/bacnet/basic/object/osv/CMakeLists.txt | 1 + test/bacnet/basic/object/piv/CMakeLists.txt | 1 + .../basic/object/schedule/CMakeLists.txt | 1 + .../object/structured_view/CMakeLists.txt | 1 + .../basic/object/time_value/CMakeLists.txt | 1 + .../basic/object/trendlog/CMakeLists.txt | 1 + test/bacnet/cov/CMakeLists.txt | 1 + test/bacnet/create_object/CMakeLists.txt | 1 + test/bacnet/delete_object/CMakeLists.txt | 1 + test/bacnet/event/CMakeLists.txt | 1 + test/bacnet/getalarm/CMakeLists.txt | 1 + test/bacnet/getevent/CMakeLists.txt | 1 + test/bacnet/hostnport/CMakeLists.txt | 1 + test/bacnet/list_element/CMakeLists.txt | 1 + test/bacnet/lso/CMakeLists.txt | 1 + test/bacnet/ptransfer/CMakeLists.txt | 1 + test/bacnet/rpm/CMakeLists.txt | 1 + test/bacnet/specialevent/CMakeLists.txt | 1 + test/bacnet/timesync/CMakeLists.txt | 1 + test/bacnet/weeklyschedule/CMakeLists.txt | 1 + test/bacnet/wp/CMakeLists.txt | 1 + test/bacnet/wpm/CMakeLists.txt | 1 + 72 files changed, 335 insertions(+), 229 deletions(-) diff --git a/src/bacnet/access_rule.c b/src/bacnet/access_rule.c index 2a4010d7..4fa0704f 100644 --- a/src/bacnet/access_rule.c +++ b/src/bacnet/access_rule.c @@ -69,35 +69,6 @@ int bacapp_encode_access_rule(uint8_t *apdu, const BACNET_ACCESS_RULE *rule) return apdu_len; } -/** - * @brief Encode the BACnetAccessRule as Context Tagged - * @param apdu Pointer to the buffer for encoding, or NULL for length - * @param tag_number Tag number - * @param rule Pointer to the data to be encoded - * @return number of bytes encoded - */ -int bacapp_encode_context_access_rule( - uint8_t *apdu, uint8_t tag_number, const BACNET_ACCESS_RULE *rule) -{ - int len; - int apdu_len = 0; - - len = encode_opening_tag(apdu, tag_number); - apdu_len += len; - if (apdu) { - apdu += len; - } - len = bacapp_encode_access_rule(apdu, rule); - apdu_len += len; - if (apdu) { - apdu += len; - } - len = encode_closing_tag(apdu, tag_number); - apdu_len += len; - - return apdu_len; -} - /** * @brief Decode the BACnetAccessRule * @param apdu Pointer to the buffer for decoding. @@ -207,52 +178,55 @@ int bacapp_decode_access_rule(const uint8_t *apdu, BACNET_ACCESS_RULE *data) } /** - * @brief Decode the BACnetAccessRule as Context Tagged - * @param apdu Pointer to the buffer for decoding. - * @param apdu_size The size of the buffer for decoding. - * @param tag_number Tag number - * @param data Pointer to the data to be stored - * @return number of bytes decoded or BACNET_STATUS_ERROR on error + * @brief Parse a string into a BACnetAccessRule value + * @param value [out] The BACnetAccessRule value + * @param argv [in] The string to parse + * @return True on success, else False */ -int bacnet_access_rule_context_decode( - const uint8_t *apdu, - size_t apdu_size, - uint8_t tag_number, - BACNET_ACCESS_RULE *data) +bool bacnet_access_rule_from_ascii(BACNET_ACCESS_RULE *value, const char *argv) { - int len = 0; - int apdu_len = 0; + bool status = false; - if (!bacnet_is_opening_tag_number( - &apdu[apdu_len], apdu_size - apdu_len, tag_number, &len)) { - return BACNET_STATUS_ERROR; - } - apdu_len += len; - len = - bacnet_access_rule_decode(&apdu[apdu_len], apdu_size - apdu_len, data); - if (len <= 0) { - return BACNET_STATUS_ERROR; - } - apdu_len += len; - if (!bacnet_is_closing_tag_number( - &apdu[apdu_len], apdu_size - apdu_len, tag_number, &len)) { - return BACNET_STATUS_ERROR; - } - apdu_len += len; + (void)value; + (void)argv; - return apdu_len; + return status; } /** - * @brief Decode the BACnetAccessRule as Context Tagged - * @param apdu Pointer to the buffer for decoding. - * @param tag_number Tag number - * @param data Pointer to the data to be stored - * @return number of bytes decoded or BACNET_STATUS_ERROR on error - * @deprecated Use bacnet_access_rule_context_decode() instead + * @brief Compare two BACnetAccessRule values + * @param value1 [in] The first BACnetAccessRule value + * @param value2 [in] The second BACnetAccessRule value + * @return True if the values are the same, else False */ -int bacapp_decode_context_access_rule( - const uint8_t *apdu, uint8_t tag_number, BACNET_ACCESS_RULE *data) +bool bacnet_access_rule_same( + const BACNET_ACCESS_RULE *value1, const BACNET_ACCESS_RULE *value2) { - return bacnet_access_rule_context_decode(apdu, MAX_APDU, tag_number, data); + bool status; + + if (value1->time_range_specifier != value2->time_range_specifier) { + return false; + } + if (value1->time_range_specifier == TIME_RANGE_SPECIFIER_SPECIFIED) { + status = bacnet_device_object_property_reference_same( + &value1->time_range, &value2->time_range); + if (!status) { + return false; + } + } + if (value1->location_specifier != value2->location_specifier) { + return false; + } + if (value1->location_specifier == LOCATION_SPECIFIER_SPECIFIED) { + status = bacnet_device_object_reference_same( + &value1->location, &value2->location); + if (!status) { + return false; + } + } + if (value1->enable != value2->enable) { + return false; + } + + return true; } diff --git a/src/bacnet/access_rule.h b/src/bacnet/access_rule.h index 04a884c7..0fd26a12 100644 --- a/src/bacnet/access_rule.h +++ b/src/bacnet/access_rule.h @@ -13,7 +13,6 @@ /* BACnet Stack defines - first */ #include "bacnet/bacdef.h" /* BACnet Stack API */ -#include "bacnet/bacapp.h" #include "bacnet/bacdevobjpropref.h" typedef enum { @@ -28,7 +27,7 @@ typedef enum { LOCATION_SPECIFIER_MAX = 2 } BACNET_ACCESS_RULE_LOCATION_SPECIFIER; -typedef struct { +typedef struct BACnetAccessRule { BACNET_ACCESS_RULE_TIME_RANGE_SPECIFIER time_range_specifier; BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE time_range; BACNET_ACCESS_RULE_LOCATION_SPECIFIER location_specifier; @@ -42,26 +41,19 @@ extern "C" { BACNET_STACK_EXPORT int bacapp_encode_access_rule(uint8_t *apdu, const BACNET_ACCESS_RULE *rule); -BACNET_STACK_EXPORT -int bacapp_encode_context_access_rule( - uint8_t *apdu, uint8_t tag_number, const BACNET_ACCESS_RULE *rule); BACNET_STACK_DEPRECATED("Use bacnet_access_rule_decode() instead") BACNET_STACK_EXPORT int bacapp_decode_access_rule(const uint8_t *apdu, BACNET_ACCESS_RULE *rule); -BACNET_STACK_DEPRECATED("Use bacnet_access_rule_context_decode() instead") -BACNET_STACK_EXPORT -int bacapp_decode_context_access_rule( - const uint8_t *apdu, uint8_t tag_number, BACNET_ACCESS_RULE *rule); BACNET_STACK_EXPORT int bacnet_access_rule_decode( const uint8_t *apdu, size_t apdu_size, BACNET_ACCESS_RULE *data); + BACNET_STACK_EXPORT -int bacnet_access_rule_context_decode( - const uint8_t *apdu, - size_t apdu_size, - uint8_t tag_number, - BACNET_ACCESS_RULE *data); +bool bacnet_access_rule_from_ascii(BACNET_ACCESS_RULE *value, const char *argv); +BACNET_STACK_EXPORT +bool bacnet_access_rule_same( + const BACNET_ACCESS_RULE *value1, const BACNET_ACCESS_RULE *value2); #ifdef __cplusplus } diff --git a/src/bacnet/bacapp.c b/src/bacnet/bacapp.c index c118cbf2..8b6a25ae 100644 --- a/src/bacnet/bacapp.c +++ b/src/bacnet/bacapp.c @@ -17,6 +17,7 @@ #include #include #endif +#include "bacnet/access_rule.h" #include "bacnet/bacenum.h" #include "bacnet/bacdcode.h" #include "bacnet/bacint.h" @@ -502,6 +503,13 @@ int bacapp_encode_application_data( apdu_len = bacnet_shed_level_encode(apdu, &value->type.Shed_Level); break; +#endif +#if defined(BACAPP_ACCESS_RULE) + case BACNET_APPLICATION_TAG_ACCESS_RULE: + /* BACnetAccessRule */ + apdu_len = + bacapp_encode_access_rule(apdu, &value->type.Access_Rule); + break; #endif default: break; @@ -919,6 +927,7 @@ int bacapp_encode_context_data_value( case BACNET_APPLICATION_TAG_ACTION_COMMAND: case BACNET_APPLICATION_TAG_SCALE: case BACNET_APPLICATION_TAG_SHED_LEVEL: + case BACNET_APPLICATION_TAG_ACCESS_RULE: /* complex data is enclosed in open/close tags */ len = encode_opening_tag(apdu, context_tag_number); apdu_len += len; @@ -1291,6 +1300,10 @@ int bacapp_known_property_tag( case PROP_BBMD_FOREIGN_DEVICE_TABLE: /* BACnetFDTEntry */ return BACNET_APPLICATION_TAG_FDT_ENTRY; + case PROP_POSITIVE_ACCESS_RULES: + case PROP_NEGATIVE_ACCESS_RULES: + /* BACnetAccessRule */ + return BACNET_APPLICATION_TAG_ACCESS_RULE; default: return -1; @@ -1587,6 +1600,13 @@ int bacapp_decode_application_tag_value( apdu_len = bacnet_shed_level_decode( apdu, apdu_size, &value->type.Shed_Level); break; +#endif +#if defined(BACAPP_ACCESS_RULE) + case BACNET_APPLICATION_TAG_ACCESS_RULE: + /* BACnetAccessRule */ + apdu_len = bacnet_access_rule_decode( + apdu, apdu_size, &value->type.Access_Rule); + break; #endif default: break; @@ -2500,6 +2520,51 @@ static int bacapp_snprintf_object_property_reference( } #endif +#if defined(BACAPP_ACCESS_RULE) +/** + * @brief Print a value to a string for EPICS + * @param str - destination string, or NULL for length only + * @param str_len - length of the destination string, or 0 for length only + * @param value - value to be printed + * @return number of characters written to the string + */ +static int bacapp_snprintf_access_rule( + char *str, size_t str_len, const BACNET_ACCESS_RULE *value) +{ + int slen; + int ret_val = 0; + + slen = bacapp_snprintf(str, str_len, "{"); + ret_val += bacapp_snprintf_shift(slen, &str, &str_len); + /* specified (0), always (1) */ + if (value->time_range_specifier == TIME_RANGE_SPECIFIER_SPECIFIED) { + slen = bacapp_snprintf(str, str_len, "specified, "); + ret_val += bacapp_snprintf_shift(slen, &str, &str_len); + slen = bacapp_snprintf_device_object_property_reference( + str, str_len, &value->time_range); + ret_val += bacapp_snprintf_shift(slen, &str, &str_len); + } else { + slen = bacapp_snprintf(str, str_len, "always, "); + ret_val += bacapp_snprintf_shift(slen, &str, &str_len); + } + /* specified (0), all (1) */ + if (value->location_specifier == LOCATION_SPECIFIER_SPECIFIED) { + slen = bacapp_snprintf(str, str_len, "specified, "); + ret_val += bacapp_snprintf_shift(slen, &str, &str_len); + slen = bacapp_snprintf_device_object_reference( + str, str_len, &value->location); + ret_val += bacapp_snprintf_shift(slen, &str, &str_len); + } else { + slen = bacapp_snprintf(str, str_len, "all"); + ret_val += bacapp_snprintf_shift(slen, &str, &str_len); + } + slen = bacapp_snprintf(str, str_len, "}"); + ret_val += bacapp_snprintf_shift(slen, &str, &str_len); + + return ret_val; +} +#endif + #if defined(BACAPP_WEEKLY_SCHEDULE) /** * @brief Print a weekly schedule value to a string for EPICS @@ -3279,6 +3344,12 @@ int bacapp_snprintf_value( ret_val = bacapp_snprintf_shed_level( str, str_len, &value->type.Shed_Level); break; +#endif +#if defined(BACAPP_ACCESS_RULE) + case BACNET_APPLICATION_TAG_ACCESS_RULE: + ret_val = bacapp_snprintf_access_rule( + str, str_len, &value->type.Access_Rule); + break; #endif case BACNET_APPLICATION_TAG_EMPTYLIST: ret_val = bacapp_snprintf(str, str_len, "{}"); @@ -3892,6 +3963,12 @@ bool bacapp_parse_application_data( status = bacnet_shed_level_from_ascii(&value->type.Shed_Level, argv); break; +#endif +#if defined(BACAPP_ACCESS_RULE) + case BACNET_APPLICATION_TAG_ACCESS_RULE: + /* BACnetAccessRule - not implemented */ + bacnet_access_rule_from_ascii(&value->type.Access_Rule, argv); + break; #endif default: break; @@ -4444,6 +4521,12 @@ bool bacapp_same_value( status = bacnet_shed_level_same( &value->type.Shed_Level, &test_value->type.Shed_Level); break; +#endif +#if defined(BACAPP_ACCESS_RULE) + case BACNET_APPLICATION_TAG_ACCESS_RULE: + status = bacnet_access_rule_same( + &value->type.Access_Rule, &test_value->type.Access_Rule); + break; #endif case BACNET_APPLICATION_TAG_EMPTYLIST: status = true; diff --git a/src/bacnet/bacapp.h b/src/bacnet/bacapp.h index fff5209d..38dee146 100644 --- a/src/bacnet/bacapp.h +++ b/src/bacnet/bacapp.h @@ -15,6 +15,7 @@ /* BACnet Stack defines - first */ #include "bacnet/bacdef.h" /* BACnet Stack API */ +#include "bacnet/access_rule.h" #include "bacnet/bacaction.h" #include "bacnet/bacdest.h" #include "bacnet/bacint.h" @@ -159,6 +160,9 @@ typedef struct BACnet_Application_Data_Value { #endif #if defined(BACAPP_SHED_LEVEL) BACNET_SHED_LEVEL Shed_Level; +#endif +#if defined(BACAPP_ACCESS_RULE) + BACNET_ACCESS_RULE Access_Rule; #endif } type; /* simple linked list if needed */ diff --git a/src/bacnet/bacenum.h b/src/bacnet/bacenum.h index 70929524..133004ae 100644 --- a/src/bacnet/bacenum.h +++ b/src/bacnet/bacenum.h @@ -1608,7 +1608,9 @@ typedef enum { /* BACnetScale */ BACNET_APPLICATION_TAG_SCALE, /* BACnetShedLevel */ - BACNET_APPLICATION_TAG_SHED_LEVEL + BACNET_APPLICATION_TAG_SHED_LEVEL, + /* BACnetAccessRule */ + BACNET_APPLICATION_TAG_ACCESS_RULE } BACNET_APPLICATION_TAG; /* note: these are not the real values, */ diff --git a/src/bacnet/basic/object/access_rights.c b/src/bacnet/basic/object/access_rights.c index 1fe2982e..0e1388a8 100644 --- a/src/bacnet/basic/object/access_rights.c +++ b/src/bacnet/basic/object/access_rights.c @@ -13,6 +13,7 @@ /* BACnet Stack API */ #include "bacnet/bacdcode.h" #include "bacnet/bacapp.h" +#include "bacnet/property.h" #include "bacnet/wp.h" #include "bacnet/basic/services.h" /* me! */ @@ -23,16 +24,19 @@ static bool Access_Rights_Initialized = false; static ACCESS_RIGHTS_DESCR ar_descr[MAX_ACCESS_RIGHTSS]; /* These three arrays are used by the ReadPropertyMultiple handler */ -static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER, - PROP_OBJECT_NAME, - PROP_OBJECT_TYPE, - PROP_GLOBAL_IDENTIFIER, - PROP_STATUS_FLAGS, - PROP_RELIABILITY, - PROP_ENABLE, - PROP_NEGATIVE_ACCESS_RULES, - PROP_POSITIVE_ACCESS_RULES, - -1 }; +static const int Properties_Required[] = { + /* unordered list of required properties */ + PROP_OBJECT_IDENTIFIER, + PROP_OBJECT_NAME, + PROP_OBJECT_TYPE, + PROP_GLOBAL_IDENTIFIER, + PROP_STATUS_FLAGS, + PROP_RELIABILITY, + PROP_ENABLE, + PROP_NEGATIVE_ACCESS_RULES, + PROP_POSITIVE_ACCESS_RULES, + -1 +}; static const int Properties_Optional[] = { -1 }; @@ -133,22 +137,80 @@ bool Access_Rights_Object_Name( return status; } +/** + * @brief Encode a BACnetARRAY property element + * @param object_instance [in] BACnet network port object instance number + * @param index [in] array index requested: + * 0 to N for individual array members + * @param apdu [out] Buffer in which the APDU contents are built, or NULL to + * return the length of buffer if it had been built + * @return The length of the apdu encoded or + * BACNET_STATUS_ERROR for ERROR_CODE_INVALID_ARRAY_INDEX + */ +static int Negative_Access_Rules_Encode( + uint32_t object_instance, BACNET_ARRAY_INDEX index, uint8_t *apdu) +{ + int apdu_len = BACNET_STATUS_ERROR; + BACNET_ACCESS_RULE *rule; + uint32_t count; + + if (object_instance < MAX_ACCESS_RIGHTSS) { + count = ar_descr[object_instance].negative_access_rules_count; + if (index < count) { + rule = &ar_descr[object_instance].negative_access_rules[index]; + apdu_len = bacapp_encode_access_rule(&apdu[0], rule); + } + } + + return apdu_len; +} + +/** + * @brief Encode a BACnetARRAY property element + * @param object_instance [in] BACnet network port object instance number + * @param index [in] array index requested: + * 0 to N for individual array members + * @param apdu [out] Buffer in which the APDU contents are built, or NULL to + * return the length of buffer if it had been built + * @return The length of the apdu encoded or + * BACNET_STATUS_ERROR for ERROR_CODE_INVALID_ARRAY_INDEX + */ +static int Positive_Access_Rules_Encode( + uint32_t object_instance, BACNET_ARRAY_INDEX index, uint8_t *apdu) +{ + int apdu_len = BACNET_STATUS_ERROR; + BACNET_ACCESS_RULE *rule; + uint32_t count; + + if (object_instance < MAX_ACCESS_RIGHTSS) { + count = ar_descr[object_instance].positive_access_rules_count; + if (index < count) { + rule = &ar_descr[object_instance].positive_access_rules[index]; + apdu_len = bacapp_encode_access_rule(&apdu[0], rule); + } + } + + return apdu_len; +} + /* return apdu len, or BACNET_STATUS_ERROR on error */ int Access_Rights_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) { - int len = 0; int apdu_len = 0; /* return value */ + int apdu_size = 0; BACNET_BIT_STRING bit_string; BACNET_CHARACTER_STRING char_string; unsigned object_index = 0; - unsigned i = 0; + BACNET_UNSIGNED_INTEGER count; uint8_t *apdu = NULL; + bool is_array = false; if ((rpdata == NULL) || (rpdata->application_data == NULL) || (rpdata->application_data_len == 0)) { return 0; } apdu = rpdata->application_data; + apdu_size = rpdata->application_data_len; object_index = Access_Rights_Instance_To_Index(rpdata->object_instance); switch (rpdata->object_property) { case PROP_OBJECT_IDENTIFIER: @@ -185,73 +247,29 @@ int Access_Rights_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) &apdu[0], ar_descr[object_index].enable); break; case PROP_NEGATIVE_ACCESS_RULES: - if (rpdata->array_index == 0) { - apdu_len = encode_application_unsigned( - &apdu[0], - ar_descr[object_index].negative_access_rules_count); - } else if (rpdata->array_index == BACNET_ARRAY_ALL) { - for (i = 0; - i < ar_descr[object_index].negative_access_rules_count; - i++) { - len = bacapp_encode_access_rule( - &apdu[0], - &ar_descr[object_index].negative_access_rules[i]); - if (apdu_len + len < MAX_APDU) { - apdu_len += len; - } else { - rpdata->error_code = - ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; - apdu_len = BACNET_STATUS_ABORT; - break; - } - } - } else { - if (rpdata->array_index <= - ar_descr[object_index].negative_access_rules_count) { - apdu_len = bacapp_encode_access_rule( - &apdu[0], - &ar_descr[object_index] - .negative_access_rules[rpdata->array_index - 1]); - } else { - rpdata->error_class = ERROR_CLASS_PROPERTY; - rpdata->error_code = ERROR_CODE_INVALID_ARRAY_INDEX; - apdu_len = BACNET_STATUS_ERROR; - } + count = ar_descr[object_index].negative_access_rules_count; + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Negative_Access_Rules_Encode, count, apdu, apdu_size); + if (apdu_len == BACNET_STATUS_ABORT) { + rpdata->error_code = + ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; + } else if (apdu_len == BACNET_STATUS_ERROR) { + rpdata->error_class = ERROR_CLASS_PROPERTY; + rpdata->error_code = ERROR_CODE_INVALID_ARRAY_INDEX; } break; case PROP_POSITIVE_ACCESS_RULES: - if (rpdata->array_index == 0) { - apdu_len = encode_application_unsigned( - &apdu[0], - ar_descr[object_index].positive_access_rules_count); - } else if (rpdata->array_index == BACNET_ARRAY_ALL) { - for (i = 0; - i < ar_descr[object_index].positive_access_rules_count; - i++) { - len = bacapp_encode_access_rule( - &apdu[0], - &ar_descr[object_index].positive_access_rules[i]); - if (apdu_len + len < MAX_APDU) { - apdu_len += len; - } else { - rpdata->error_code = - ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; - apdu_len = BACNET_STATUS_ABORT; - break; - } - } - } else { - if (rpdata->array_index <= - ar_descr[object_index].positive_access_rules_count) { - apdu_len = bacapp_encode_access_rule( - &apdu[0], - &ar_descr[object_index] - .positive_access_rules[rpdata->array_index - 1]); - } else { - rpdata->error_class = ERROR_CLASS_PROPERTY; - rpdata->error_code = ERROR_CODE_INVALID_ARRAY_INDEX; - apdu_len = BACNET_STATUS_ERROR; - } + count = ar_descr[object_index].positive_access_rules_count; + apdu_len = bacnet_array_encode( + rpdata->object_instance, rpdata->array_index, + Positive_Access_Rules_Encode, count, apdu, apdu_size); + if (apdu_len == BACNET_STATUS_ABORT) { + rpdata->error_code = + ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED; + } else if (apdu_len == BACNET_STATUS_ERROR) { + rpdata->error_class = ERROR_CLASS_PROPERTY; + rpdata->error_code = ERROR_CODE_INVALID_ARRAY_INDEX; } break; default: @@ -261,9 +279,9 @@ int Access_Rights_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) break; } /* only array properties can have array options */ - if ((apdu_len >= 0) && - (rpdata->object_property != PROP_NEGATIVE_ACCESS_RULES) && - (rpdata->object_property != PROP_POSITIVE_ACCESS_RULES) && + is_array = property_list_bacnet_array_member( + rpdata->object_type, rpdata->object_property); + if ((apdu_len >= 0) && (!is_array) && (rpdata->array_index != BACNET_ARRAY_ALL)) { rpdata->error_class = ERROR_CLASS_PROPERTY; rpdata->error_code = ERROR_CODE_PROPERTY_IS_NOT_AN_ARRAY; @@ -277,6 +295,7 @@ int Access_Rights_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata) bool Access_Rights_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) { bool status = false; /* return value */ + bool is_array = false; int len = 0; BACNET_APPLICATION_DATA_VALUE value; unsigned object_index = 0; @@ -292,9 +311,9 @@ bool Access_Rights_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) return false; } /* only array properties can have array options */ - if ((wp_data->object_property != PROP_NEGATIVE_ACCESS_RULES) && - (wp_data->object_property != PROP_POSITIVE_ACCESS_RULES) && - (wp_data->array_index != BACNET_ARRAY_ALL)) { + is_array = property_list_bacnet_array_member( + wp_data->object_type, wp_data->object_property); + if (is_array && (wp_data->array_index != BACNET_ARRAY_ALL)) { wp_data->error_class = ERROR_CLASS_PROPERTY; wp_data->error_code = ERROR_CODE_PROPERTY_IS_NOT_AN_ARRAY; return false; @@ -309,20 +328,16 @@ bool Access_Rights_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data) value.type.Unsigned_Int; } break; - case PROP_OBJECT_IDENTIFIER: - case PROP_OBJECT_NAME: - case PROP_OBJECT_TYPE: - case PROP_STATUS_FLAGS: - case PROP_RELIABILITY: - case PROP_ENABLE: - case PROP_NEGATIVE_ACCESS_RULES: - case PROP_POSITIVE_ACCESS_RULES: - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED; - break; default: - wp_data->error_class = ERROR_CLASS_PROPERTY; - wp_data->error_code = ERROR_CODE_UNKNOWN_PROPERTY; + if (property_lists_member( + Properties_Required, Properties_Optional, + Properties_Proprietary, wp_data->object_property)) { + 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_UNKNOWN_PROPERTY; + } break; } diff --git a/src/bacnet/config.h b/src/bacnet/config.h index 2fe386f1..e8218c91 100644 --- a/src/bacnet/config.h +++ b/src/bacnet/config.h @@ -203,6 +203,7 @@ defined(BACAPP_ACTION_COMMAND) || \ defined(BACAPP_SCALE) || \ defined(BACAPP_SHED_LEVEL) || \ + defined(BACAPP_ACCESS_RULE) || \ defined(BACAPP_TYPES_EXTRA)) #define BACAPP_ALL #endif @@ -249,6 +250,7 @@ #define BACAPP_ACTION_COMMAND #define BACAPP_SCALE #define BACAPP_SHED_LEVEL +#define BACAPP_ACCESS_RULE #endif /* clang-format off */ @@ -270,7 +272,8 @@ defined(BACAPP_FDT_ENTRY) || \ defined(BACAPP_ACTION_COMMAND) || \ defined(BACAPP_SCALE) || \ - defined(BACAPP_SHED_LEVEL) + defined(BACAPP_SHED_LEVEL) || \ + defined(BACAPP_ACCESS_RULE) #define BACAPP_COMPLEX_TYPES #endif /* clang-format on */ diff --git a/test/bacnet/access_rule/src/main.c b/test/bacnet/access_rule/src/main.c index cb72c585..966c7ced 100644 --- a/test/bacnet/access_rule/src/main.c +++ b/test/bacnet/access_rule/src/main.c @@ -22,7 +22,6 @@ static void test_access_rule_positive(BACNET_ACCESS_RULE *data) { BACNET_ACCESS_RULE test_data = { 0 }; uint8_t apdu[MAX_APDU]; - uint8_t tag_number = 1; int len; int test_len; int null_len; @@ -51,33 +50,6 @@ static void test_access_rule_positive(BACNET_ACCESS_RULE *data) test_len = bacnet_access_rule_decode(apdu, len, &test_data); zassert_true(test_len <= 0, NULL); } - - /* context tagged */ - null_len = bacapp_encode_context_access_rule(NULL, tag_number, data); - len = bacapp_encode_context_access_rule(apdu, tag_number, data); - zassert_equal(null_len, len, NULL); - test_len = - bacnet_access_rule_context_decode(apdu, len, tag_number, &test_data); - zassert_equal(test_len, len, NULL); - zassert_equal( - data->time_range_specifier, test_data.time_range_specifier, NULL); - zassert_equal(data->location_specifier, test_data.location_specifier, NULL); - zassert_equal(data->enable, test_data.enable, NULL); - if (data->time_range_specifier == TIME_RANGE_SPECIFIER_SPECIFIED) { - status = bacnet_device_object_property_reference_same( - &data->time_range, &test_data.time_range); - zassert_true(status, NULL); - } - if (data->location_specifier == LOCATION_SPECIFIER_SPECIFIED) { - status = bacnet_device_object_reference_same( - &data->location, &test_data.location); - zassert_true(status, NULL); - } - while (--len) { - test_len = bacnet_access_rule_context_decode( - apdu, len, tag_number, &test_data); - zassert_true(test_len <= 0, NULL); - } } /** diff --git a/test/bacnet/bacapp/CMakeLists.txt b/test/bacnet/bacapp/CMakeLists.txt index 77415480..cca5ff05 100644 --- a/test/bacnet/bacapp/CMakeLists.txt +++ b/test/bacnet/bacapp/CMakeLists.txt @@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/bacapp.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacdest.c diff --git a/test/bacnet/bacapp/src/main.c b/test/bacnet/bacapp/src/main.c index 36479114..fceb778f 100644 --- a/test/bacnet/bacapp/src/main.c +++ b/test/bacnet/bacapp/src/main.c @@ -73,7 +73,9 @@ static const BACNET_APPLICATION_TAG tag_list[] = { /* BACnetScale */ BACNET_APPLICATION_TAG_SCALE, /* BACnetShedLevel */ - BACNET_APPLICATION_TAG_SHED_LEVEL + BACNET_APPLICATION_TAG_SHED_LEVEL, + /* BACnetAccessRule */ + BACNET_APPLICATION_TAG_ACCESS_RULE }; /** diff --git a/test/bacnet/bacdest/CMakeLists.txt b/test/bacnet/bacdest/CMakeLists.txt index 4488f1e9..743be862 100644 --- a/test/bacnet/bacdest/CMakeLists.txt +++ b/test/bacnet/bacdest/CMakeLists.txt @@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/bacdest.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/bacdevobjpropref/CMakeLists.txt b/test/bacnet/bacdevobjpropref/CMakeLists.txt index 55a455a7..b173eab0 100644 --- a/test/bacnet/bacdevobjpropref/CMakeLists.txt +++ b/test/bacnet/bacdevobjpropref/CMakeLists.txt @@ -39,6 +39,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/bacdevobjpropref.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/bactimevalue/CMakeLists.txt b/test/bacnet/bactimevalue/CMakeLists.txt index 7af36ff4..7735a22b 100644 --- a/test/bacnet/bactimevalue/CMakeLists.txt +++ b/test/bacnet/bactimevalue/CMakeLists.txt @@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/bactimevalue.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/binding/address/CMakeLists.txt b/test/bacnet/basic/binding/address/CMakeLists.txt index 700d00de..82a35849 100644 --- a/test/bacnet/basic/binding/address/CMakeLists.txt +++ b/test/bacnet/basic/binding/address/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/binding/address.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/acc/CMakeLists.txt b/test/bacnet/basic/object/acc/CMakeLists.txt index 5fcb24ce..feccf5e2 100644 --- a/test/bacnet/basic/object/acc/CMakeLists.txt +++ b/test/bacnet/basic/object/acc/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/acc.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/access_credential/CMakeLists.txt b/test/bacnet/basic/object/access_credential/CMakeLists.txt index 858c36e2..02a8587e 100644 --- a/test/bacnet/basic/object/access_credential/CMakeLists.txt +++ b/test/bacnet/basic/object/access_credential/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/access_credential.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/assigned_access_rights.c ${SRC_DIR}/bacnet/authentication_factor.c ${SRC_DIR}/bacnet/bacaction.c diff --git a/test/bacnet/basic/object/access_door/CMakeLists.txt b/test/bacnet/basic/object/access_door/CMakeLists.txt index 2edc4acf..8f6029cd 100644 --- a/test/bacnet/basic/object/access_door/CMakeLists.txt +++ b/test/bacnet/basic/object/access_door/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/access_door.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/access_point/CMakeLists.txt b/test/bacnet/basic/object/access_point/CMakeLists.txt index cb78e070..698ff19b 100644 --- a/test/bacnet/basic/object/access_point/CMakeLists.txt +++ b/test/bacnet/basic/object/access_point/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/access_point.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/access_rights/CMakeLists.txt b/test/bacnet/basic/object/access_rights/CMakeLists.txt index 751435f6..45a82717 100644 --- a/test/bacnet/basic/object/access_rights/CMakeLists.txt +++ b/test/bacnet/basic/object/access_rights/CMakeLists.txt @@ -22,11 +22,13 @@ set(ZTST_DIR "${TST_DIR}/ztest/src") add_compile_definitions( BIG_ENDIAN=0 + BACNET_PROPERTY_ARRAY_LISTS=1 CONFIG_ZTEST=1 ) include_directories( ${SRC_DIR} + ${TST_DIR}/bacnet/basic/object/test ${TST_DIR}/ztest/include ) @@ -51,6 +53,8 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/indtext.c ${SRC_DIR}/bacnet/hostnport.c ${SRC_DIR}/bacnet/lighting.c + ${SRC_DIR}/bacnet/property.c + ${SRC_DIR}/bacnet/proplist.c ${SRC_DIR}/bacnet/timestamp.c ${SRC_DIR}/bacnet/wp.c ${SRC_DIR}/bacnet/weeklyschedule.c @@ -60,6 +64,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/special_event.c # Test and test library files ./src/main.c + ${TST_DIR}/bacnet/basic/object/test/property_test.c ${ZTST_DIR}/ztest_mock.c ${ZTST_DIR}/ztest.c ) diff --git a/test/bacnet/basic/object/access_rights/src/main.c b/test/bacnet/basic/object/access_rights/src/main.c index 39a3b5d2..893b5637 100644 --- a/test/bacnet/basic/object/access_rights/src/main.c +++ b/test/bacnet/basic/object/access_rights/src/main.c @@ -10,6 +10,7 @@ #include #include +#include /** * @addtogroup bacnet_tests @@ -25,28 +26,22 @@ ZTEST(access_rights_tests, testAccessRights) static void testAccessRights(void) #endif { - uint8_t apdu[MAX_APDU] = { 0 }; - int len = 0, test_len = 0; - uint32_t decoded_instance = 0; - BACNET_OBJECT_TYPE decoded_type = 0; - BACNET_READ_PROPERTY_DATA rpdata; + bool status = false; + unsigned count = 0; + uint32_t object_instance = 0; + const int skip_fail_property_list[] = { -1 }; 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); - zassert_not_equal(len, 0, NULL); - test_len = bacnet_object_id_application_decode( - apdu, len, &decoded_type, &decoded_instance); - zassert_not_equal(test_len, BACNET_STATUS_ERROR, NULL); - zassert_equal(decoded_type, rpdata.object_type, NULL); - zassert_equal(decoded_instance, rpdata.object_instance, NULL); - - return; + count = Access_Rights_Count(); + zassert_true(count > 0, NULL); + object_instance = Access_Rights_Index_To_Instance(0); + status = Access_Rights_Valid_Instance(object_instance); + zassert_true(status, NULL); + /* perform a general test for RP/WP */ + bacnet_object_properties_read_write_test( + OBJECT_ACCESS_RIGHTS, object_instance, Access_Rights_Property_Lists, + Access_Rights_Read_Property, Access_Rights_Write_Property, + skip_fail_property_list); } /** * @} diff --git a/test/bacnet/basic/object/access_user/CMakeLists.txt b/test/bacnet/basic/object/access_user/CMakeLists.txt index 90930418..41f4a94c 100644 --- a/test/bacnet/basic/object/access_user/CMakeLists.txt +++ b/test/bacnet/basic/object/access_user/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/access_user.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/access_zone/CMakeLists.txt b/test/bacnet/basic/object/access_zone/CMakeLists.txt index 4d019503..b635e248 100644 --- a/test/bacnet/basic/object/access_zone/CMakeLists.txt +++ b/test/bacnet/basic/object/access_zone/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/access_credential.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/authentication_factor.c ${SRC_DIR}/bacnet/assigned_access_rights.c ${SRC_DIR}/bacnet/bacaction.c diff --git a/test/bacnet/basic/object/ai/CMakeLists.txt b/test/bacnet/basic/object/ai/CMakeLists.txt index c9b26280..2d5c2087 100644 --- a/test/bacnet/basic/object/ai/CMakeLists.txt +++ b/test/bacnet/basic/object/ai/CMakeLists.txt @@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/ai.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacdcode.c diff --git a/test/bacnet/basic/object/ao/CMakeLists.txt b/test/bacnet/basic/object/ao/CMakeLists.txt index a3695cea..4b5b4ec6 100644 --- a/test/bacnet/basic/object/ao/CMakeLists.txt +++ b/test/bacnet/basic/object/ao/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/ao.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/av/CMakeLists.txt b/test/bacnet/basic/object/av/CMakeLists.txt index 46bd1341..029c9871 100644 --- a/test/bacnet/basic/object/av/CMakeLists.txt +++ b/test/bacnet/basic/object/av/CMakeLists.txt @@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/av.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/bacfile/CMakeLists.txt b/test/bacnet/basic/object/bacfile/CMakeLists.txt index 7d067eb6..4495d085 100644 --- a/test/bacnet/basic/object/bacfile/CMakeLists.txt +++ b/test/bacnet/basic/object/bacfile/CMakeLists.txt @@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/bacfile.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/arf.c ${SRC_DIR}/bacnet/awf.c ${SRC_DIR}/bacnet/bacaction.c diff --git a/test/bacnet/basic/object/bi/CMakeLists.txt b/test/bacnet/basic/object/bi/CMakeLists.txt index 514c17be..f3adebed 100644 --- a/test/bacnet/basic/object/bi/CMakeLists.txt +++ b/test/bacnet/basic/object/bi/CMakeLists.txt @@ -37,6 +37,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/bi.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/bitstring_value/CMakeLists.txt b/test/bacnet/basic/object/bitstring_value/CMakeLists.txt index 87d49bed..09723d66 100644 --- a/test/bacnet/basic/object/bitstring_value/CMakeLists.txt +++ b/test/bacnet/basic/object/bitstring_value/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/bitstring_value.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/blo/CMakeLists.txt b/test/bacnet/basic/object/blo/CMakeLists.txt index 0b3aa1da..bdd259b4 100644 --- a/test/bacnet/basic/object/blo/CMakeLists.txt +++ b/test/bacnet/basic/object/blo/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/blo.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/bo/CMakeLists.txt b/test/bacnet/basic/object/bo/CMakeLists.txt index b5366089..0f278147 100644 --- a/test/bacnet/basic/object/bo/CMakeLists.txt +++ b/test/bacnet/basic/object/bo/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/bo.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/bv/CMakeLists.txt b/test/bacnet/basic/object/bv/CMakeLists.txt index ac7fa7f1..5a8037f5 100644 --- a/test/bacnet/basic/object/bv/CMakeLists.txt +++ b/test/bacnet/basic/object/bv/CMakeLists.txt @@ -37,6 +37,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/bv.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/calendar/CMakeLists.txt b/test/bacnet/basic/object/calendar/CMakeLists.txt index 97d3316b..32c8ac1e 100644 --- a/test/bacnet/basic/object/calendar/CMakeLists.txt +++ b/test/bacnet/basic/object/calendar/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/calendar.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/channel/CMakeLists.txt b/test/bacnet/basic/object/channel/CMakeLists.txt index 2e0a5160..6d90b440 100644 --- a/test/bacnet/basic/object/channel/CMakeLists.txt +++ b/test/bacnet/basic/object/channel/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/channel.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/color_object/CMakeLists.txt b/test/bacnet/basic/object/color_object/CMakeLists.txt index ac997759..82ff86da 100644 --- a/test/bacnet/basic/object/color_object/CMakeLists.txt +++ b/test/bacnet/basic/object/color_object/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/color_object.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/color_temperature/CMakeLists.txt b/test/bacnet/basic/object/color_temperature/CMakeLists.txt index 66e4e72a..80d33638 100644 --- a/test/bacnet/basic/object/color_temperature/CMakeLists.txt +++ b/test/bacnet/basic/object/color_temperature/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/color_temperature.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/command/CMakeLists.txt b/test/bacnet/basic/object/command/CMakeLists.txt index 6be4117e..65a4fb20 100644 --- a/test/bacnet/basic/object/command/CMakeLists.txt +++ b/test/bacnet/basic/object/command/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/command.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/credential_data_input/CMakeLists.txt b/test/bacnet/basic/object/credential_data_input/CMakeLists.txt index 5a813237..0912608b 100644 --- a/test/bacnet/basic/object/credential_data_input/CMakeLists.txt +++ b/test/bacnet/basic/object/credential_data_input/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/credential_data_input.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/authentication_factor.c ${SRC_DIR}/bacnet/authentication_factor_format.c ${SRC_DIR}/bacnet/bacaction.c diff --git a/test/bacnet/basic/object/csv/CMakeLists.txt b/test/bacnet/basic/object/csv/CMakeLists.txt index 427290ef..bcdaa097 100644 --- a/test/bacnet/basic/object/csv/CMakeLists.txt +++ b/test/bacnet/basic/object/csv/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/csv.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/device/CMakeLists.txt b/test/bacnet/basic/object/device/CMakeLists.txt index 33624e0a..20939800 100644 --- a/test/bacnet/basic/object/device/CMakeLists.txt +++ b/test/bacnet/basic/object/device/CMakeLists.txt @@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/object/device.c # Support files and stubs (pathname alphabetical) ${SRC_DIR}/bacnet/abort.c + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/device/src/main.c b/test/bacnet/basic/object/device/src/main.c index 4e77744d..2046bf18 100644 --- a/test/bacnet/basic/object/device/src/main.c +++ b/test/bacnet/basic/object/device/src/main.c @@ -42,7 +42,6 @@ static void test_Device_Data_Sharing(void) rpdata.application_data_len = sizeof(apdu); rpdata.object_type = OBJECT_DEVICE; rpdata.object_instance = Device_Index_To_Instance(0); - ; Device_Property_Lists(&pRequired, &pOptional, &pProprietary); while ((*pRequired) != -1) { rpdata.object_property = *pRequired; diff --git a/test/bacnet/basic/object/iv/CMakeLists.txt b/test/bacnet/basic/object/iv/CMakeLists.txt index 008f6227..04d177e2 100644 --- a/test/bacnet/basic/object/iv/CMakeLists.txt +++ b/test/bacnet/basic/object/iv/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/iv.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/lc/CMakeLists.txt b/test/bacnet/basic/object/lc/CMakeLists.txt index f90c5264..19b0b381 100644 --- a/test/bacnet/basic/object/lc/CMakeLists.txt +++ b/test/bacnet/basic/object/lc/CMakeLists.txt @@ -38,6 +38,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/lc.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/lo/CMakeLists.txt b/test/bacnet/basic/object/lo/CMakeLists.txt index 26e8d7b3..e33e259b 100644 --- a/test/bacnet/basic/object/lo/CMakeLists.txt +++ b/test/bacnet/basic/object/lo/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/lo.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/lsp/CMakeLists.txt b/test/bacnet/basic/object/lsp/CMakeLists.txt index 41f0a123..cbb2c62c 100644 --- a/test/bacnet/basic/object/lsp/CMakeLists.txt +++ b/test/bacnet/basic/object/lsp/CMakeLists.txt @@ -33,6 +33,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/lsp.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/lsz/CMakeLists.txt b/test/bacnet/basic/object/lsz/CMakeLists.txt index d6de6bf5..08b31d1e 100644 --- a/test/bacnet/basic/object/lsz/CMakeLists.txt +++ b/test/bacnet/basic/object/lsz/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/lsz.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/ms-input/CMakeLists.txt b/test/bacnet/basic/object/ms-input/CMakeLists.txt index 16cbcbbd..881f43bb 100644 --- a/test/bacnet/basic/object/ms-input/CMakeLists.txt +++ b/test/bacnet/basic/object/ms-input/CMakeLists.txt @@ -35,6 +35,7 @@ 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/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/mso/CMakeLists.txt b/test/bacnet/basic/object/mso/CMakeLists.txt index 24c5a12b..f360f78c 100644 --- a/test/bacnet/basic/object/mso/CMakeLists.txt +++ b/test/bacnet/basic/object/mso/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/mso.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/msv/CMakeLists.txt b/test/bacnet/basic/object/msv/CMakeLists.txt index c0014bb2..ed955d22 100644 --- a/test/bacnet/basic/object/msv/CMakeLists.txt +++ b/test/bacnet/basic/object/msv/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/msv.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/nc/CMakeLists.txt b/test/bacnet/basic/object/nc/CMakeLists.txt index 4d89c31f..18860255 100644 --- a/test/bacnet/basic/object/nc/CMakeLists.txt +++ b/test/bacnet/basic/object/nc/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/nc.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/netport/CMakeLists.txt b/test/bacnet/basic/object/netport/CMakeLists.txt index bb0c30af..86279d35 100644 --- a/test/bacnet/basic/object/netport/CMakeLists.txt +++ b/test/bacnet/basic/object/netport/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/netport.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/osv/CMakeLists.txt b/test/bacnet/basic/object/osv/CMakeLists.txt index f1992de7..a8f727d7 100644 --- a/test/bacnet/basic/object/osv/CMakeLists.txt +++ b/test/bacnet/basic/object/osv/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/osv.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/piv/CMakeLists.txt b/test/bacnet/basic/object/piv/CMakeLists.txt index 036ce0bd..c54b4677 100644 --- a/test/bacnet/basic/object/piv/CMakeLists.txt +++ b/test/bacnet/basic/object/piv/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/piv.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/schedule/CMakeLists.txt b/test/bacnet/basic/object/schedule/CMakeLists.txt index a370c5b9..4a031d3d 100644 --- a/test/bacnet/basic/object/schedule/CMakeLists.txt +++ b/test/bacnet/basic/object/schedule/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/schedule.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/structured_view/CMakeLists.txt b/test/bacnet/basic/object/structured_view/CMakeLists.txt index 9868b83a..543eb026 100644 --- a/test/bacnet/basic/object/structured_view/CMakeLists.txt +++ b/test/bacnet/basic/object/structured_view/CMakeLists.txt @@ -36,6 +36,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/structured_view.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/time_value/CMakeLists.txt b/test/bacnet/basic/object/time_value/CMakeLists.txt index aa24e5e6..00610b9b 100644 --- a/test/bacnet/basic/object/time_value/CMakeLists.txt +++ b/test/bacnet/basic/object/time_value/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/time_value.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/basic/object/trendlog/CMakeLists.txt b/test/bacnet/basic/object/trendlog/CMakeLists.txt index 9be1fb5c..7eef6e40 100644 --- a/test/bacnet/basic/object/trendlog/CMakeLists.txt +++ b/test/bacnet/basic/object/trendlog/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/basic/object/trendlog.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/cov/CMakeLists.txt b/test/bacnet/cov/CMakeLists.txt index 690e21be..eba71cae 100644 --- a/test/bacnet/cov/CMakeLists.txt +++ b/test/bacnet/cov/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/cov.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/create_object/CMakeLists.txt b/test/bacnet/create_object/CMakeLists.txt index 85526a67..b32bdd48 100644 --- a/test/bacnet/create_object/CMakeLists.txt +++ b/test/bacnet/create_object/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/create_object.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/delete_object/CMakeLists.txt b/test/bacnet/delete_object/CMakeLists.txt index c9a7e804..6436e76e 100644 --- a/test/bacnet/delete_object/CMakeLists.txt +++ b/test/bacnet/delete_object/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/delete_object.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/event/CMakeLists.txt b/test/bacnet/event/CMakeLists.txt index 4b7dd952..f40e1178 100644 --- a/test/bacnet/event/CMakeLists.txt +++ b/test/bacnet/event/CMakeLists.txt @@ -49,6 +49,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/basic/sys/days.c ${SRC_DIR}/bacnet/timestamp.c # Dependencies of bacapp.c + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bactext.c ${SRC_DIR}/bacnet/indtext.c diff --git a/test/bacnet/getalarm/CMakeLists.txt b/test/bacnet/getalarm/CMakeLists.txt index 3d18d0ed..0158f61e 100644 --- a/test/bacnet/getalarm/CMakeLists.txt +++ b/test/bacnet/getalarm/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/get_alarm_sum.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/getevent/CMakeLists.txt b/test/bacnet/getevent/CMakeLists.txt index fad0ff30..4ea1b5ea 100644 --- a/test/bacnet/getevent/CMakeLists.txt +++ b/test/bacnet/getevent/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/getevent.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/hostnport/CMakeLists.txt b/test/bacnet/hostnport/CMakeLists.txt index 3fbc5653..5b54b062 100644 --- a/test/bacnet/hostnport/CMakeLists.txt +++ b/test/bacnet/hostnport/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/hostnport.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/list_element/CMakeLists.txt b/test/bacnet/list_element/CMakeLists.txt index 8d94e36d..b23d7e01 100644 --- a/test/bacnet/list_element/CMakeLists.txt +++ b/test/bacnet/list_element/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/list_element.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/lso/CMakeLists.txt b/test/bacnet/lso/CMakeLists.txt index cf82a185..7d14db38 100644 --- a/test/bacnet/lso/CMakeLists.txt +++ b/test/bacnet/lso/CMakeLists.txt @@ -34,6 +34,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/lso.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/ptransfer/CMakeLists.txt b/test/bacnet/ptransfer/CMakeLists.txt index ae902a87..55203763 100644 --- a/test/bacnet/ptransfer/CMakeLists.txt +++ b/test/bacnet/ptransfer/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/ptransfer.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/rpm/CMakeLists.txt b/test/bacnet/rpm/CMakeLists.txt index a576e316..b8d6a650 100644 --- a/test/bacnet/rpm/CMakeLists.txt +++ b/test/bacnet/rpm/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/rpm.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/specialevent/CMakeLists.txt b/test/bacnet/specialevent/CMakeLists.txt index 32e4078b..3055a50b 100644 --- a/test/bacnet/specialevent/CMakeLists.txt +++ b/test/bacnet/specialevent/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/special_event.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/timesync/CMakeLists.txt b/test/bacnet/timesync/CMakeLists.txt index c1ec0efd..7c243172 100644 --- a/test/bacnet/timesync/CMakeLists.txt +++ b/test/bacnet/timesync/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/timesync.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/weeklyschedule/CMakeLists.txt b/test/bacnet/weeklyschedule/CMakeLists.txt index 49d132d4..c1110bc5 100644 --- a/test/bacnet/weeklyschedule/CMakeLists.txt +++ b/test/bacnet/weeklyschedule/CMakeLists.txt @@ -37,6 +37,7 @@ add_executable(${PROJECT_NAME} ${SRC_DIR}/bacnet/bactimevalue.c ${SRC_DIR}/bacnet/dailyschedule.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/wp/CMakeLists.txt b/test/bacnet/wp/CMakeLists.txt index 5470c189..a19910f4 100644 --- a/test/bacnet/wp/CMakeLists.txt +++ b/test/bacnet/wp/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/wp.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c diff --git a/test/bacnet/wpm/CMakeLists.txt b/test/bacnet/wpm/CMakeLists.txt index 3f2ea6da..f8ef6a1f 100644 --- a/test/bacnet/wpm/CMakeLists.txt +++ b/test/bacnet/wpm/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(${PROJECT_NAME} # File(s) under test ${SRC_DIR}/bacnet/wpm.c # Support files and stubs (pathname alphabetical) + ${SRC_DIR}/bacnet/access_rule.c ${SRC_DIR}/bacnet/bacaction.c ${SRC_DIR}/bacnet/bacaddr.c ${SRC_DIR}/bacnet/bacapp.c