--- /dev/null
+%define MODULE_NAME zigbee
+%define MODULE_LIBNAME capi-network-zigbee
+Name: core-%{MODULE_NAME}-tests
+Summary: Core API unit TC (%{name})
+Version: 0.1
+Release: 0
+Group: Development/Tools
+License: Apache License, Version 2.0
+Source0: %{name}-%{version}.tar.gz
+BuildRequires: pkgconfig(%{MODULE_LIBNAME})
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: cmake
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(capi-system-info)
+
+
+%description
+Core API unit TC (%{name})
+
+%prep
+%setup -q
+
+%build
+
+%define PREFIX "%{_libdir}/%{name}"
+
+export LDFLAGS+="-Wl,--rpath=%{PREFIX} -Wl,--as-needed"
+
+%if %{?ASAN_BUILD:1}0
+ %if %{?DEVICE_BUILD_TYPE_MOBILE:1}0
+ cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -DDEVICE_BUILD_TYPE="mobile" -DASANBUILD="true" -DCMAKE_INSTALL_PREFIX=%{_prefix}
+ %endif
+ %if %{?DEVICE_BUILD_TYPE_WEARABLE:1}0
+ cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -DDEVICE_BUILD_TYPE="wearable" -DASANBUILD="true" -DCMAKE_INSTALL_PREFIX=%{_prefix}
+ %endif
+ %if %{?DEVICE_BUILD_TYPE_TV:1}0
+ cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -DDEVICE_BUILD_TYPE="tv" -DASANBUILD="true" -DCMAKE_INSTALL_PREFIX=%{_prefix}
+ %endif
+ %if %{?DEVICE_BUILD_TYPE_COMMON_IOT:1}0
+ cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -DDEVICE_BUILD_TYPE="common_iot" -DASANBUILD="true" -DCMAKE_INSTALL_PREFIX=%{_prefix}
+ %endif
+%else
+ %if %{?DEVICE_BUILD_TYPE_MOBILE:1}0
+ cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -DDEVICE_BUILD_TYPE="mobile" -DASANBUILD="false" -DCMAKE_INSTALL_PREFIX=%{_prefix}
+ %endif
+ %if %{?DEVICE_BUILD_TYPE_WEARABLE:1}0
+ cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -DDEVICE_BUILD_TYPE="wearable" -DASANBUILD="false" -DCMAKE_INSTALL_PREFIX=%{_prefix}
+ %endif
+ %if %{?DEVICE_BUILD_TYPE_TV:1}0
+ cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -DDEVICE_BUILD_TYPE="tv" -DASANBUILD="false" -DCMAKE_INSTALL_PREFIX=%{_prefix}
+ %endif
+ %if %{?DEVICE_BUILD_TYPE_COMMON_IOT:1}0
+ cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -DDEVICE_BUILD_TYPE="common_iot" -DASANBUILD="false" -DCMAKE_INSTALL_PREFIX=%{_prefix}
+ %endif
+%endif
+
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+mkdir -p %{buildroot}/usr/share/license
+cp LICENSE %{buildroot}/usr/share/license/%{name}
+mkdir -p %{buildroot}/usr/share/packages/
+cp packaging/utc/%{name}.xml %{buildroot}/usr/share/packages/
+mkdir -p %{buildroot}/usr/apps/%{name}/bin
+%post
+
+%postun
+
+
+%files
+/usr/apps/%{name}/*
+/usr/share/packages/%{name}.xml
+/usr/share/license/%{name}
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="core-zigbee-tests" version="0.1.0" api-version="3.0">
+ <label>CoreZigbeeTest</label>
+ <author email="test@tizen.org" href="www.tizen.org">test</author>
+ <description>Core API test Application</description>
+ <ui-application appid="core.zigbee-tests" exec="/usr/apps/core-zigbee-tests/bin/tct-zigbee-core" nodisplay="false" multiple="false" type="capp" taskmanage="true">
+ <background-category value="background-network"/>
+ <background-category value="download"/>
+ <background-category value="iot-communication"/>
+ <background-category value="location"/>
+ <background-category value="media"/>
+ <background-category value="sensor"/>
+ </ui-application>
+ <privileges>
+ <privilege>http://tizen.org/privilege/zigbee</privilege>
+ </privileges>
+</manifest>
wifi-manager
yaca
peripheral-io
-stc
+stc
intelligent-network-monitoring
asp
camera
privacy-privilege-manager
sound-pool
softap
+zigbee
--- /dev/null
+SET(PKG_NAME "zigbee")
+
+SET(EXEC_NAME "tct-${PKG_NAME}-core")
+SET(RPM_NAME "core-${PKG_NAME}-tests")
+
+SET(CAPI_LIB "capi-network-zigbee")
+SET(TC_SOURCES
+ utc-zigbee.c
+ utc-zigbee-zdo.c
+ utc-zigbee-zdo-dev-disc.c
+ utc-zigbee-zcl.c
+ utc-zigbee-zcl-global-commands.c
+ utc-zigbee-zcl-ias-zone.c
+ utc-zigbee-zcl-on-off.c
+)
+
+PKG_CHECK_MODULES(${CAPI_LIB} REQUIRED
+ ${CAPI_LIB}
+ capi-appfw-application
+ capi-system-info
+ glib-2.0
+ bundle
+ dlog
+ elementary
+)
+
+INCLUDE_DIRECTORIES(
+ ${${CAPI_LIB}_INCLUDE_DIRS}
+)
+
+ADD_EXECUTABLE(${EXEC_NAME} ${EXEC_NAME}.c ${TC_SOURCES} ${COMMON_FILE})
+TARGET_LINK_LIBRARIES(${EXEC_NAME}
+ ${${CAPI_LIB}_LIBRARIES}
+ bundle
+)
+
+INSTALL(PROGRAMS ${EXEC_NAME}
+ DESTINATION ${BIN_DIR}/${RPM_NAME}/bin
+)
+
+IF( DEFINED ASAN )
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -Wall -pie -g -fsanitize=address -fsanitize-recover=address -U_FORTIFY_SOURCE -fno-omit-frame-pointer")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=/usr/lib -Wl,-fsanitize=address")
+ELSE()
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g -fPIE -Wall")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=/usr/lib -pie")
+ENDIF()
--- /dev/null
+//
+// Copyright (c) 2014 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#include "tct_common.h"
+
+#ifdef MOBILE //Starts MOBILE
+#include "tct-zigbee-core_mobile.h"
+#endif //MOBILE //End MOBILE
+
+#ifdef WEARABLE //Starts WEARABLE
+#include "tct-zigbee-core_wearable.h"
+#endif //WEARABLE //End WEARABLE
+
+#ifdef TV //Starts TV
+#include "tct-zigbee-core_tv.h"
+#endif //TV //End TV
+
+//#ifdef TIZENIOT //Starts TIZENIOT
+#include "tct-zigbee-core_tizeniot.h"
+//#endif //TIZENIOT //End TIZENIOT
+
+#include <stdio.h>
+#include <string.h>
+#include <malloc.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#include <glib.h>
+#include <stdbool.h>
+#include <app.h>
+#include <dlog.h>
+
+#include <Elementary.h>
+
+typedef struct appdata {
+ Evas_Object *win;
+ Evas_Object *conform;
+ Evas_Object *label;
+} appdata_s;
+
+static bool app_create(void *data)
+{
+ return true;
+}
+
+static void app_control(app_control_h app_control, void *data)
+{
+ char* pszGetTCName = NULL;
+ int i=0, result=0, nRet=0;
+ nRet = app_control_get_extra_data(app_control, "testcase_name", &pszGetTCName);
+ if(nRet != APP_CONTROL_ERROR_NONE)
+ {
+ dlog_print(DLOG_ERROR, "NativeTCT", "[%s:%d] app_control_get_extra_data returns error = %d", __FUNCTION__, __LINE__, nRet);
+ PRINT_UTC_LOG("\\n[%s][Line : %d]Unable to fetch test case name: app_control_get_extra_data API call fails\\n", __FILE__, __LINE__);
+ PRINT_TC_RESULT("%d",1);
+ FREE_MEMORY_TC(pszGetTCName);
+ return;
+ }
+
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Executing TC Name = %s", __FUNCTION__, __LINE__, pszGetTCName);
+ for ( i = 0; tc_array[i].name; i++ )
+ {
+ if ( 0 == strncmp(pszGetTCName, tc_array[i].name, strlen(pszGetTCName)) )
+ {
+ DUMP_UTC_ERRLOG();
+ if ( tc_array[i].startup )
+ {
+ dlog_print(DLOG_INFO, "NativeTCT", "%s : Start up", pszGetTCName);
+ tc_array[i].startup();
+ }
+
+ dlog_print(DLOG_INFO, "NativeTCT", "%s : Body", pszGetTCName);
+ result = tc_array[i].function();
+ dlog_print(DLOG_INFO, "NativeTCT", "%s returns value = %d", pszGetTCName, result);
+
+ if ( tc_array[i].cleanup )
+ {
+ dlog_print(DLOG_INFO, "NativeTCT", "%s : Clean up", pszGetTCName);
+ tc_array[i].cleanup();
+ }
+
+ CLOSE_UTC_ERRLOG();
+ PRINT_TC_RESULT("%d",result);
+ FREE_MEMORY_TC(pszGetTCName);
+ return;
+ }
+ }
+
+ dlog_print(DLOG_ERROR, "NativeTCT", "[%s:%d] Unable to execute %s : Unknown Test Case Name", __FUNCTION__, __LINE__, pszGetTCName);
+ PRINT_UTC_LOG("\\n[%s][Line : %d]Unable to execute %s : Unknown Test Case Name\\n", __FILE__, __LINE__, pszGetTCName);
+ PRINT_TC_RESULT("%d",1);
+ FREE_MEMORY_TC(pszGetTCName);
+ return;
+}
+
+static void app_terminate(void *data)
+{
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Application Package is now Terminating", __FUNCTION__, __LINE__);
+}
+
+int main(int argc, char *argv[])
+{
+ int ret = 0;
+ appdata_s ad = {0,};
+
+ ui_app_lifecycle_callback_s event_callback = {0,};
+ event_callback.create = app_create;
+ event_callback.terminate = app_terminate;
+ event_callback.app_control = app_control;
+
+ //setting gcda file location for coverage
+ setenv("GCOV_PREFIX","/tmp",1);
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Coverage *.gcda File location set to /tmp/home/abuild/rpmbuild/BUILD/ ", __FUNCTION__, __LINE__);
+
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Application Main Function is Invoked", __FUNCTION__, __LINE__);
+ ret = ui_app_main(argc, argv, &event_callback, &ad);
+ if (ret != APP_ERROR_NONE)
+ {
+ dlog_print(DLOG_ERROR, "NativeTCT", "Application ui_app_main call gets failed. err = %d", ret);
+ PRINT_UTC_LOG("\\n[%s][Line : %d]Application ui_app_main call gets failed. err = %d\\n", __FILE__, __LINE__, ret);
+ PRINT_TC_RESULT("%d",1);
+ return ret;
+ }
+
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Application Package is Terminated", __FUNCTION__, __LINE__);
+ return ret;
+}
--- /dev/null
+//
+// Copyright (c) 2014 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef __TCT_ZIGBEE_NATIVE_H__
+#define __TCT_ZIGBEE_NATIVE_H__
+
+#include "testcase.h"
+#include "tct_common.h"
+#include "utc-zigbee.h"
+
+extern void utc_startup(void);
+extern void utc_cleanup(void);
+extern void utc_zdo_simple_desc_startup(void);
+extern void utc_zdo_simple_desc_cleanup(void);
+extern void utc_zdo_power_desc_startup(void);
+extern void utc_zdo_power_desc_cleanup(void);
+extern void utc_zdo_node_desc_startup(void);
+extern void utc_zdo_node_desc_cleanup(void);
+extern void utc_zdo_getter_startup(void);
+extern void utc_zdo_getter_cleanup(void);
+
+/* Zigbee APIs */
+extern int utc_zb_create_p(void);
+extern int utc_zb_create_n(void);
+extern int utc_zb_destroy_p(void);
+extern int utc_zb_destroy_n(void);
+extern int utc_zb_ev_get_enable_status_n(void);
+extern int utc_zb_ev_get_form_network_panid_n(void);
+extern int utc_zb_ev_get_join_count_n(void);
+extern int utc_zb_ev_get_join_ep_n(void);
+extern int utc_zb_ev_get_child_left_status_n(void);
+extern int utc_zb_ev_get_global_default_rsp_ep_n(void);
+extern int utc_zb_ev_get_global_default_rsp_cluster_id_n(void);
+extern int utc_zb_ev_get_global_default_rsp_command_id_n(void);
+extern int utc_zb_ev_get_global_default_rsp_status_n(void);
+extern int utc_zb_ev_get_enroll_request_src_ep_n(void);
+extern int utc_zb_ev_get_enroll_request_zone_type_n(void);
+extern int utc_zb_ev_get_enroll_request_mfg_code_n(void);
+extern int utc_zb_ev_get_ias_noti_src_ep_n(void);
+extern int utc_zb_ev_get_ias_noti_zone_status_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_src_ep_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_status_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_zone_status_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_delay_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_zone_id_n(void);
+extern int utc_zb_set_event_cb_p(void);
+extern int utc_zb_set_event_cb_n(void);
+extern int utc_zb_form_network_p(void);
+extern int utc_zb_form_network_n(void);
+extern int utc_zb_disable_network_p(void);
+extern int utc_zb_disable_network_n(void);
+extern int utc_zb_leave_device_p(void);
+extern int utc_zb_leave_device_n(void);
+extern int utc_zb_permit_join_p(void);
+extern int utc_zb_permit_join_n(void);
+extern int utc_zb_get_controller_mac_address_p(void);
+extern int utc_zb_get_controller_mac_address_n(void);
+extern int utc_zb_get_network_info_p(void);
+extern int utc_zb_get_network_info_n(void);
+
+extern int utc_zb_end_dev_get_ep_list_p(void);
+extern int utc_zb_end_dev_get_ep_list_n(void);
+extern int utc_zb_end_dev_get_cluster_list_p(void);
+extern int utc_zb_end_dev_get_cluster_list_n(void);
+extern int utc_zb_end_dev_get_end_dev_info_list_p(void);
+extern int utc_zb_end_dev_get_end_dev_info_list_n1(void);
+extern int utc_zb_end_dev_get_end_dev_info_list_n2(void);
+extern int utc_zb_end_dev_info_create_p(void);
+extern int utc_zb_end_dev_info_create_n(void);
+extern int utc_zb_end_dev_info_clone_p(void);
+extern int utc_zb_end_dev_info_clone_n(void);
+extern int utc_zb_end_dev_info_destroy_p(void);
+extern int utc_zb_end_dev_info_destroy_n(void);
+extern int utc_zb_end_dev_info_list_free_p(void);
+extern int utc_zb_end_dev_info_list_free_n(void);
+extern int utc_zb_end_dev_info_get_network_address_n(void);
+extern int utc_zb_end_dev_info_get_ieee_address_n(void);
+extern int utc_zb_end_dev_info_get_num_of_ep_n(void);
+extern int utc_zb_end_dev_info_get_ep_list_n(void);
+extern int utc_zb_end_dev_info_get_mac_capability_n(void);
+extern int utc_zb_end_dev_info_get_alternative_pan_coordinator_n(void);
+extern int utc_zb_end_dev_info_get_device_id_n(void);
+extern int utc_zb_end_dev_info_get_profile_id_n(void);
+extern int utc_zb_end_dev_info_get_power_source_n(void);
+extern int utc_zb_end_dev_info_get_security_capabilty_n(void);
+
+/* Zigbee ZDO */
+
+#ifdef SUPPORT_SIMPLE_DESCRIPTION
+extern int utc_zb_simple_desc_create_p(void);
+extern int utc_zb_simple_desc_create_n(void);
+extern int utc_zb_simple_desc_destroy_p(void);
+extern int utc_zb_simple_desc_destroy_n(void);
+extern int utc_zb_simple_desc_clone_p(void);
+extern int utc_zb_simple_desc_clone_n(void);
+extern int utc_zb_simple_desc_get_ep_p(void);
+extern int utc_zb_simple_desc_get_ep_n(void);
+extern int utc_zb_simple_desc_set_ep_p(void);
+extern int utc_zb_simple_desc_set_ep_n(void);
+extern int utc_zb_simple_desc_get_profile_id_p(void);
+extern int utc_zb_simple_desc_get_profile_id_n(void);
+extern int utc_zb_simple_desc_set_profile_id_p(void);
+extern int utc_zb_simple_desc_set_profile_id_n(void);
+extern int utc_zb_simple_desc_get_device_id_p(void);
+extern int utc_zb_simple_desc_get_device_id_n(void);
+extern int utc_zb_simple_desc_set_device_id_p(void);
+extern int utc_zb_simple_desc_set_device_id_n(void);
+extern int utc_zb_simple_desc_get_device_ver_p(void);
+extern int utc_zb_simple_desc_get_device_ver_n(void);
+extern int utc_zb_simple_desc_set_device_ver_p(void);
+extern int utc_zb_simple_desc_set_device_ver_n(void);
+extern int utc_zb_simple_desc_get_num_of_in_clusters_p(void);
+extern int utc_zb_simple_desc_get_num_of_in_clusters_n(void);
+extern int utc_zb_simple_desc_set_num_of_in_clusters_p(void);
+extern int utc_zb_simple_desc_set_num_of_in_clusters_n(void);
+extern int utc_zb_simple_desc_get_num_of_out_clusters_p(void);
+extern int utc_zb_simple_desc_get_num_of_out_clusters_n(void);
+extern int utc_zb_simple_desc_set_num_of_out_clusters_p(void);
+extern int utc_zb_simple_desc_set_num_of_out_clusters_n(void);
+extern int utc_zb_simple_desc_get_in_clusters_p(void);
+extern int utc_zb_simple_desc_get_in_clusters_n(void);
+extern int utc_zb_simple_desc_set_in_clusters_p(void);
+extern int utc_zb_simple_desc_set_in_clusters_n(void);
+extern int utc_zb_simple_desc_get_out_clusters_p(void);
+extern int utc_zb_simple_desc_get_out_clusters_n(void);
+extern int utc_zb_simple_desc_set_out_clusters_p(void);
+extern int utc_zb_simple_desc_set_out_clusters_n(void);
+#endif /* SUPPORT_SIMPLE_DESCRIPTION */
+
+#ifdef SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER
+/* Zigbee ZDO Device Discovery */
+extern int utc_zb_zdo_nwk_addr_req_p(void);
+extern int utc_zb_zdo_nwk_addr_req_n(void);
+extern int utc_zb_zdo_ieee_addr_req_p(void);
+extern int utc_zb_zdo_ieee_addr_req_n(void);
+extern int utc_zb_zdo_active_ep_p(void);
+extern int utc_zb_zdo_active_ep_n(void);
+extern int utc_zb_zdo_simple_desc_req_p(void);
+extern int utc_zb_zdo_simple_desc_req_n(void);
+#endif /* SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER */
+
+#ifdef SUPPORT_ZCL_GLOBAL_COMMNAD_CLUSTER
+/* Global Command */
+extern int utc_zb_zcl_global_attr_read_p(void);
+extern int utc_zb_zcl_global_attr_read_n(void);
+extern int utc_zb_zcl_global_attr_write_p(void);
+extern int utc_zb_zcl_global_attr_write_n(void);
+extern int utc_zb_zcl_global_attr_write_undivided_p(void);
+extern int utc_zb_zcl_global_attr_write_undivided_n(void);
+extern int utc_zb_zcl_global_attr_write_no_rsp_p(void);
+extern int utc_zb_zcl_global_attr_write_no_rsp_n(void);
+extern int utc_zb_zcl_global_config_report_write_p(void);
+extern int utc_zb_zcl_global_config_report_write_n(void);
+extern int utc_zb_zcl_global_config_report_read_p(void);
+extern int utc_zb_zcl_global_config_report_read_n(void);
+extern int utc_zb_zcl_global_config_report_read_n(void);
+#endif /* SUPPORT_ZCL_GLOBAL_COMMNAD_CLUSTER */
+
+#ifdef SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD
+extern int utc_zb_read_attr_status_record_create_p(void);
+extern int utc_zb_read_attr_status_record_create_n(void);
+extern int utc_zb_read_attr_status_record_clone_p(void);
+extern int utc_zb_read_attr_status_record_clone_n(void);
+extern int utc_zb_read_attr_status_record_destroy_p(void);
+extern int utc_zb_read_attr_status_record_destroy_n(void);
+extern int utc_zb_read_attr_status_record_set_id_p(void);
+extern int utc_zb_read_attr_status_record_set_id_n(void);
+extern int utc_zb_read_attr_status_record_get_id_p(void);
+extern int utc_zb_read_attr_status_record_get_id_n(void);
+extern int utc_zb_read_attr_status_record_set_status_p(void);
+extern int utc_zb_read_attr_status_record_set_status_n(void);
+extern int utc_zb_read_attr_status_record_get_status_p(void);
+extern int utc_zb_read_attr_status_record_get_status_n(void);
+extern int utc_zb_read_attr_status_record_set_type_p(void);
+extern int utc_zb_read_attr_status_record_set_type_n(void);
+extern int utc_zb_read_attr_status_record_get_type_p(void);
+extern int utc_zb_read_attr_status_record_get_type_n(void);
+extern int utc_zb_read_attr_status_record_set_value_p(void);
+extern int utc_zb_read_attr_status_record_set_value_n(void);
+extern int utc_zb_read_attr_status_record_get_value_p(void);
+extern int utc_zb_read_attr_status_record_get_value_n(void);
+#endif /* SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD */
+
+#ifdef SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS
+extern int utc_zb_write_attr_record_create_p(void);
+extern int utc_zb_write_attr_record_create_n(void);
+extern int utc_zb_write_attr_record_destroy_p(void);
+extern int utc_zb_write_attr_record_destroy_n(void);
+extern int utc_zb_write_attr_record_set_id_p(void);
+extern int utc_zb_write_attr_record_set_id_n(void);
+extern int utc_zb_write_attr_record_set_value_p(void);
+extern int utc_zb_write_attr_record_set_value_n(void);
+extern int utc_zb_write_attr_status_create_p(void);
+extern int utc_zb_write_attr_status_create_n(void);
+extern int utc_zb_write_attr_status_destroy_p(void);
+extern int utc_zb_write_attr_status_destroy_n(void);
+extern int utc_zb_write_attr_status_set_status_p(void);
+extern int utc_zb_write_attr_status_set_status_n(void);
+extern int utc_zb_write_attr_status_get_status_p(void);
+extern int utc_zb_write_attr_status_get_status_n(void);
+extern int utc_zb_write_attr_status_set_id_p(void);
+extern int utc_zb_write_attr_status_set_id_n(void);
+extern int utc_zb_write_attr_status_get_id_p(void);
+extern int utc_zb_write_attr_status_get_id_n(void);
+#endif /* SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_REPORT
+extern int utc_zb_report_config_record_create_p(void);
+extern int utc_zb_report_config_record_create_n(void);
+extern int utc_zb_report_config_record_clone_p(void);
+extern int utc_zb_report_config_record_clone_n(void);
+extern int utc_zb_report_config_record_destroy_p(void);
+extern int utc_zb_report_config_record_destroy_n(void);
+extern int utc_zb_report_config_record_set_dir_p(void);
+extern int utc_zb_report_config_record_set_dir_n(void);
+extern int utc_zb_report_config_record_get_dir_p(void);
+extern int utc_zb_report_config_record_get_dir_n(void);
+extern int utc_zb_report_config_record_set_id_p(void);
+extern int utc_zb_report_config_record_set_id_n(void);
+extern int utc_zb_report_config_record_get_id_p(void);
+extern int utc_zb_report_config_record_get_id_n(void);
+extern int utc_zb_report_config_record_set_min_interval_p(void);
+extern int utc_zb_report_config_record_set_min_interval_n(void);
+extern int utc_zb_report_config_record_get_min_interval_p(void);
+extern int utc_zb_report_config_record_get_min_interval_n(void);
+extern int utc_zb_report_config_record_set_max_interval_p(void);
+extern int utc_zb_report_config_record_set_max_interval_n(void);
+extern int utc_zb_report_config_record_get_max_interval_p(void);
+extern int utc_zb_report_config_record_get_max_interval_n(void);
+extern int utc_zb_report_config_record_set_timeout_p(void);
+extern int utc_zb_report_config_record_set_timeout_n(void);
+extern int utc_zb_report_config_record_get_timeout_p(void);
+extern int utc_zb_report_config_record_get_timeout_n(void);
+extern int utc_zb_report_config_record_set_change_p(void);
+extern int utc_zb_report_config_record_set_change_n(void);
+extern int utc_zb_report_config_record_get_change_p(void);
+extern int utc_zb_report_config_record_get_change_n(void);
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_REPORT */
+
+#ifdef SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD
+extern int utc_zb_read_report_config_record_create_p(void);
+extern int utc_zb_read_report_config_record_create_n(void);
+extern int utc_zb_read_report_config_record_destroy_p(void);
+extern int utc_zb_read_report_config_record_destroy_n(void);
+extern int utc_zb_read_report_config_record_set_dir_p(void);
+extern int utc_zb_read_report_config_record_set_dir_n(void);
+extern int utc_zb_read_report_config_record_set_id_p(void);
+extern int utc_zb_read_report_config_record_set_id_n(void);
+#endif /* SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD
+extern int utc_zb_report_config_response_record_clone_n(void);
+extern int utc_zb_report_config_response_record_destroy_n(void);
+extern int utc_zb_report_config_response_record_get_status_n(void);
+extern int utc_zb_report_config_response_record_get_dir_n(void);
+extern int utc_zb_report_config_response_record_get_id_n(void);
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD */
+
+#ifdef SUPPORT_ZCL_IAS_ZONE_CLUSTER
+/* IAS Zone Cluster */
+extern int utc_zb_zcl_zone_enroll_response_p(void);
+extern int utc_zb_zcl_zone_enroll_response_n(void);
+#endif /* SUPPORT_ZCL_IAS_ZONE_CLUSTER */
+
+#ifdef SUPPORT_ZCL_ON_OFF_CLUSTER
+/* On/Off Cluster */
+extern int utc_zb_zcl_on_off_control_p(void);
+extern int utc_zb_zcl_on_off_control_n(void);
+#endif /* SUPPORT_ZCL_ON_OFF_CLUSTER */
+
+testcase tc_array[] = {
+ /* Zigbee APIs */
+ {"utc_zb_create_p", utc_zb_create_p, utc_startup, utc_cleanup},
+ {"utc_zb_create_n", utc_zb_create_n, utc_startup, utc_cleanup},
+ {"utc_zb_destroy_p", utc_zb_destroy_p, utc_startup, utc_cleanup},
+ {"utc_zb_destroy_n", utc_zb_destroy_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_enable_status_n", utc_zb_ev_get_enable_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_form_network_panid_n", utc_zb_ev_get_form_network_panid_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_join_count_n", utc_zb_ev_get_join_count_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_join_ep_n", utc_zb_ev_get_join_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_child_left_status_n", utc_zb_ev_get_child_left_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_ep_n", utc_zb_ev_get_global_default_rsp_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_cluster_id_n", utc_zb_ev_get_global_default_rsp_cluster_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_command_id_n", utc_zb_ev_get_global_default_rsp_command_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_status_n", utc_zb_ev_get_global_default_rsp_status_n, utc_startup, utc_cleanup},
+
+ {"utc_zb_ev_get_enroll_request_src_ep_n", utc_zb_ev_get_enroll_request_src_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_enroll_request_zone_type_n", utc_zb_ev_get_enroll_request_zone_type_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_enroll_request_mfg_code_n", utc_zb_ev_get_enroll_request_mfg_code_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_noti_src_ep_n", utc_zb_ev_get_ias_noti_src_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_noti_zone_status_n", utc_zb_ev_get_ias_noti_zone_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_src_ep_n", utc_zb_ev_get_ias_ext_noti_src_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_status_n", utc_zb_ev_get_ias_ext_noti_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_zone_status_n", utc_zb_ev_get_ias_ext_noti_zone_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_delay_n", utc_zb_ev_get_ias_ext_noti_delay_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_zone_id_n", utc_zb_ev_get_ias_ext_noti_zone_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_set_event_cb_p", utc_zb_set_event_cb_p, utc_startup, utc_cleanup},
+ {"utc_zb_set_event_cb_n", utc_zb_set_event_cb_n, utc_startup, utc_cleanup},
+ {"utc_zb_form_network_p", utc_zb_form_network_p, utc_startup, utc_cleanup},
+ {"utc_zb_form_network_n", utc_zb_form_network_n, utc_startup, utc_cleanup},
+ {"utc_zb_disable_network_p", utc_zb_disable_network_p, utc_startup, utc_cleanup},
+ {"utc_zb_disable_network_n", utc_zb_disable_network_n, utc_startup, utc_cleanup},
+ {"utc_zb_leave_device_p", utc_zb_leave_device_p, utc_startup, utc_cleanup},
+ {"utc_zb_leave_device_n", utc_zb_leave_device_n, utc_startup, utc_cleanup},
+ {"utc_zb_permit_join_p", utc_zb_permit_join_p, utc_startup, utc_cleanup},
+ {"utc_zb_permit_join_n", utc_zb_permit_join_n, utc_startup, utc_cleanup},
+ {"utc_zb_get_controller_mac_address_p", utc_zb_get_controller_mac_address_p, utc_startup, utc_cleanup},
+ {"utc_zb_get_controller_mac_address_n", utc_zb_get_controller_mac_address_n, utc_startup, utc_cleanup},
+ {"utc_zb_get_network_info_p", utc_zb_get_network_info_p, utc_startup, utc_cleanup},
+ {"utc_zb_get_network_info_n", utc_zb_get_network_info_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_ep_list_p", utc_zb_end_dev_get_ep_list_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_ep_list_n", utc_zb_end_dev_get_ep_list_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_cluster_list_p", utc_zb_end_dev_get_cluster_list_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_cluster_list_n", utc_zb_end_dev_get_cluster_list_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_end_dev_info_list_p", utc_zb_end_dev_get_end_dev_info_list_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_end_dev_info_list_n1", utc_zb_end_dev_get_end_dev_info_list_n1, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_end_dev_info_list_n2", utc_zb_end_dev_get_end_dev_info_list_n2, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_list_free_p", utc_zb_end_dev_info_list_free_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_list_free_n", utc_zb_end_dev_info_list_free_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_create_p", utc_zb_end_dev_info_create_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_create_n", utc_zb_end_dev_info_create_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_clone_p", utc_zb_end_dev_info_clone_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_clone_n", utc_zb_end_dev_info_clone_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_destroy_p", utc_zb_end_dev_info_destroy_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_destroy_n", utc_zb_end_dev_info_destroy_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_network_address_n", utc_zb_end_dev_info_get_network_address_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_ieee_address_n", utc_zb_end_dev_info_get_ieee_address_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_num_of_ep_n", utc_zb_end_dev_info_get_num_of_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_ep_list_n", utc_zb_end_dev_info_get_ep_list_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_mac_capability_n", utc_zb_end_dev_info_get_mac_capability_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_alternative_pan_coordinator_n", utc_zb_end_dev_info_get_alternative_pan_coordinator_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_device_id_n", utc_zb_end_dev_info_get_device_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_profile_id_n", utc_zb_end_dev_info_get_profile_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_power_source_n", utc_zb_end_dev_info_get_power_source_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_security_capabilty_n", utc_zb_end_dev_info_get_security_capabilty_n, utc_startup, utc_cleanup},
+
+#ifdef SUPPORT_SIMPLE_DESCRIPTION
+ /* Zigbee ZDO - Simple Descripter Getter/Setter */
+ {"utc_zb_simple_desc_create_p", utc_zb_simple_desc_create_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_create_n", utc_zb_simple_desc_create_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_destroy_p", utc_zb_simple_desc_destroy_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_destroy_n", utc_zb_simple_desc_destroy_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_clone_p", utc_zb_simple_desc_clone_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_clone_n", utc_zb_simple_desc_clone_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_ep_p", utc_zb_simple_desc_get_ep_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_ep_n", utc_zb_simple_desc_get_ep_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_ep_p", utc_zb_simple_desc_set_ep_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_ep_n", utc_zb_simple_desc_set_ep_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_profile_id_p", utc_zb_simple_desc_get_profile_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_profile_id_n", utc_zb_simple_desc_get_profile_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_profile_id_p", utc_zb_simple_desc_set_profile_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_profile_id_n", utc_zb_simple_desc_set_profile_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_id_p", utc_zb_simple_desc_get_device_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_id_n", utc_zb_simple_desc_get_device_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_id_p", utc_zb_simple_desc_set_device_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_id_n", utc_zb_simple_desc_set_device_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_ver_p", utc_zb_simple_desc_get_device_ver_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_ver_n", utc_zb_simple_desc_get_device_ver_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_ver_p", utc_zb_simple_desc_set_device_ver_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_ver_n", utc_zb_simple_desc_set_device_ver_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_in_clusters_p", utc_zb_simple_desc_get_num_of_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_in_clusters_n", utc_zb_simple_desc_get_num_of_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_in_clusters_p", utc_zb_simple_desc_set_num_of_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_in_clusters_n", utc_zb_simple_desc_set_num_of_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_out_clusters_p", utc_zb_simple_desc_get_num_of_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_out_clusters_n", utc_zb_simple_desc_get_num_of_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_out_clusters_p", utc_zb_simple_desc_set_num_of_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_out_clusters_n", utc_zb_simple_desc_set_num_of_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_in_clusters_p", utc_zb_simple_desc_get_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_in_clusters_n", utc_zb_simple_desc_get_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_in_clusters_p", utc_zb_simple_desc_set_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_in_clusters_n", utc_zb_simple_desc_set_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_out_clusters_p", utc_zb_simple_desc_get_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_out_clusters_n", utc_zb_simple_desc_get_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_out_clusters_p", utc_zb_simple_desc_set_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_out_clusters_n", utc_zb_simple_desc_set_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+#endif /* SUPPORT_SIMPLE_DESCRIPTION*/
+
+#ifdef SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER
+ /* Zigbee ZDO - Device Discovery */
+ {"utc_zb_zdo_nwk_addr_req_p", utc_zb_zdo_nwk_addr_req_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_nwk_addr_req_n", utc_zb_zdo_nwk_addr_req_n, utc_startup, utc_startup},
+ {"utc_zb_zdo_ieee_addr_req_p", utc_zb_zdo_ieee_addr_req_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_ieee_addr_req_n", utc_zb_zdo_ieee_addr_req_n, utc_startup, utc_startup},
+ {"utc_zb_zdo_active_ep_p", utc_zb_zdo_active_ep_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_active_ep_n", utc_zb_zdo_active_ep_n, utc_startup, utc_startup},
+ {"utc_zb_zdo_simple_desc_req_p", utc_zb_zdo_simple_desc_req_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_simple_desc_req_n", utc_zb_zdo_simple_desc_req_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER */
+
+#if defined(SUPPORT_ZCL_GLOBAL_COMMNAD_CLUSTER)
+ /* Zigbee ZCL - Global Cluster */
+ {"utc_zb_zcl_global_attr_read_p", utc_zb_zcl_global_attr_read_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_read_n", utc_zb_zcl_global_attr_read_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_p", utc_zb_zcl_global_attr_write_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_n", utc_zb_zcl_global_attr_write_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_undivided_p", utc_zb_zcl_global_attr_write_undivided_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_undivided_n", utc_zb_zcl_global_attr_write_undivided_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_no_rsp_p", utc_zb_zcl_global_attr_write_no_rsp_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_no_rsp_n", utc_zb_zcl_global_attr_write_no_rsp_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_write_p", utc_zb_zcl_global_config_report_write_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_write_n", utc_zb_zcl_global_config_report_write_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_read_p", utc_zb_zcl_global_config_report_write_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_read_n", utc_zb_zcl_global_config_report_read_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_GLOBAL_COMMAND_CLUSTER */
+
+#ifdef SUPPORT_ZCL_IAS_ZONE_CLUSTER
+ /* Zigbee ZCL - IAS Zone Cluster */
+ {"utc_zb_zcl_zone_enroll_response_p", utc_zb_zcl_zone_enroll_response_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_zone_enroll_response_n", utc_zb_zcl_zone_enroll_response_p, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_IAS_ZONE_CLUSTER */
+
+#ifdef SUPPORT_ZCL_ON_OFF_CLUSTER
+ /* Zigbee ZCL - On/Off Cluster */
+ {"utc_zb_zcl_on_off_control_p", utc_zb_zcl_on_off_control_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_on_off_control_n", utc_zb_zcl_on_off_control_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_ON_OFF_CLUSTER */
+
+#ifdef SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD
+ /* Zigbee ZCL - Read Attribute Status Record Getter/Setter */
+ {"utc_zb_read_attr_status_record_create_p", utc_zb_read_attr_status_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_create_n", utc_zb_read_attr_status_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_clone_p", utc_zb_read_attr_status_record_clone_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_clone_n", utc_zb_read_attr_status_record_clone_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_destroy_p", utc_zb_read_attr_status_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_destroy_n", utc_zb_read_attr_status_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_id_p", utc_zb_read_attr_status_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_id_n", utc_zb_read_attr_status_record_set_id_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_id_p", utc_zb_read_attr_status_record_get_id_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_id_n", utc_zb_read_attr_status_record_get_id_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_status_p", utc_zb_read_attr_status_record_set_status_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_status_n", utc_zb_read_attr_status_record_set_status_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_status_p", utc_zb_read_attr_status_record_get_status_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_status_n", utc_zb_read_attr_status_record_get_status_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_type_p", utc_zb_read_attr_status_record_get_status_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_type_n", utc_zb_read_attr_status_record_set_type_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_type_p", utc_zb_read_attr_status_record_get_type_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_type_n", utc_zb_read_attr_status_record_get_type_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_value_p", utc_zb_read_attr_status_record_set_value_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_value_n", utc_zb_read_attr_status_record_set_value_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_value_p", utc_zb_read_attr_status_record_get_value_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_value_n", utc_zb_read_attr_status_record_get_value_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD */
+
+#ifdef SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS
+ /* Zigbee ZCL - Write Attribute Status Record Getter/Setter */
+ {"utc_zb_write_attr_record_create_p", utc_zb_write_attr_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_create_n", utc_zb_write_attr_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_destroy_p", utc_zb_write_attr_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_destroy_n", utc_zb_write_attr_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_id_p", utc_zb_write_attr_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_id_n", utc_zb_write_attr_record_set_id_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_value_p", utc_zb_write_attr_record_set_value_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_value_n", utc_zb_write_attr_record_set_value_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_create_p", utc_zb_write_attr_status_create_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_create_n", utc_zb_write_attr_status_create_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_destroy_p", utc_zb_write_attr_status_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_destroy_n", utc_zb_write_attr_status_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_status_p", utc_zb_write_attr_status_set_status_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_status_n", utc_zb_write_attr_status_set_status_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_status_p", utc_zb_write_attr_status_get_status_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_status_n", utc_zb_write_attr_status_get_status_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_id_p", utc_zb_write_attr_status_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_id_n", utc_zb_write_attr_status_set_id_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_id_p", utc_zb_write_attr_status_get_id_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_id_n", utc_zb_write_attr_status_get_id_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_REPORT
+ /* Zigbee ZCL - Report Configuration Record Getter/Setter */
+ {"utc_zb_report_config_record_create_p", utc_zb_report_config_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_create_n", utc_zb_report_config_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_clone_p", utc_zb_report_config_record_clone_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_clone_n", utc_zb_report_config_record_clone_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_destroy_p", utc_zb_report_config_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_destroy_n", utc_zb_report_config_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_dir_p", utc_zb_report_config_record_set_dir_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_dir_n", utc_zb_report_config_record_set_dir_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_dir_p", utc_zb_report_config_record_get_dir_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_dir_n", utc_zb_report_config_record_get_dir_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_id_p", utc_zb_report_config_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_id_n", utc_zb_report_config_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_id_p", utc_zb_report_config_record_get_id_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_id_n", utc_zb_report_config_record_get_id_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_min_interval_p", utc_zb_report_config_record_set_min_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_min_interval_n", utc_zb_report_config_record_set_min_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_min_interval_p", utc_zb_report_config_record_get_min_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_min_interval_n", utc_zb_report_config_record_get_min_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_max_interval_p", utc_zb_report_config_record_set_max_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_max_interval_n", utc_zb_report_config_record_set_max_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_max_interval_p", utc_zb_report_config_record_get_max_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_max_interval_n", utc_zb_report_config_record_get_max_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_timeout_p", utc_zb_report_config_record_set_timeout_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_timeout_n", utc_zb_report_config_record_set_timeout_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_timeout_p", utc_zb_report_config_record_get_timeout_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_timeout_n", utc_zb_report_config_record_get_timeout_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_change_p", utc_zb_report_config_record_set_change_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_change_n", utc_zb_report_config_record_set_change_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_change_p", utc_zb_report_config_record_get_change_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_change_n", utc_zb_report_config_record_get_change_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_REPORT */
+
+#ifdef SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD
+ /* Zigbee ZCL - Read Report Configuration Record Getter/Setter */
+ {"utc_zb_read_report_config_record_create_p", utc_zb_read_report_config_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_create_n", utc_zb_read_report_config_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_destroy_p", utc_zb_read_report_config_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_destroy_n", utc_zb_read_report_config_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_dir_p", utc_zb_read_report_config_record_set_dir_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_dir_n", utc_zb_read_report_config_record_set_dir_n, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_id_p", utc_zb_read_report_config_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_id_n", utc_zb_read_report_config_record_set_id_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD
+ /* Zigbee ZCL - Report Configuration Response Getter/Setter */
+ {"utc_zb_report_config_response_record_clone_n", utc_zb_report_config_response_record_clone_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_destroy_n", utc_zb_report_config_response_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_get_status_n", utc_zb_report_config_response_record_get_status_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_get_dir_n", utc_zb_report_config_response_record_get_dir_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_get_id_n", utc_zb_report_config_response_record_get_id_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD */
+
+ {NULL, NULL}
+};
+
+#endif // __TCT_ZIGBEE_NATIVE_H__
--- /dev/null
+//
+// Copyright (c) 2014 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef __TCT_ZIGBEE_NATIVE_H__
+#define __TCT_ZIGBEE_NATIVE_H__
+
+#include "testcase.h"
+#include "tct_common.h"
+#include "utc-zigbee.h"
+
+extern void utc_startup(void);
+extern void utc_cleanup(void);
+extern void utc_zdo_simple_desc_startup(void);
+extern void utc_zdo_simple_desc_cleanup(void);
+extern void utc_zdo_power_desc_startup(void);
+extern void utc_zdo_power_desc_cleanup(void);
+extern void utc_zdo_node_desc_startup(void);
+extern void utc_zdo_node_desc_cleanup(void);
+extern void utc_zdo_getter_startup(void);
+extern void utc_zdo_getter_cleanup(void);
+
+/* Zigbee APIs */
+extern int utc_zb_create_p(void);
+extern int utc_zb_create_n(void);
+extern int utc_zb_destroy_p(void);
+extern int utc_zb_destroy_n(void);
+extern int utc_zb_ev_get_enable_status_n(void);
+extern int utc_zb_ev_get_form_network_panid_n(void);
+extern int utc_zb_ev_get_join_count_n(void);
+extern int utc_zb_ev_get_join_ep_n(void);
+extern int utc_zb_ev_get_child_left_status_n(void);
+extern int utc_zb_ev_get_global_default_rsp_ep_n(void);
+extern int utc_zb_ev_get_global_default_rsp_cluster_id_n(void);
+extern int utc_zb_ev_get_global_default_rsp_command_id_n(void);
+extern int utc_zb_ev_get_global_default_rsp_status_n(void);
+extern int utc_zb_ev_get_enroll_request_src_ep_n(void);
+extern int utc_zb_ev_get_enroll_request_zone_type_n(void);
+extern int utc_zb_ev_get_enroll_request_mfg_code_n(void);
+extern int utc_zb_ev_get_ias_noti_src_ep_n(void);
+extern int utc_zb_ev_get_ias_noti_zone_status_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_src_ep_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_status_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_zone_status_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_delay_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_zone_id_n(void);
+extern int utc_zb_set_event_cb_p(void);
+extern int utc_zb_set_event_cb_n(void);
+extern int utc_zb_form_network_p(void);
+extern int utc_zb_form_network_n(void);
+extern int utc_zb_disable_network_p(void);
+extern int utc_zb_disable_network_n(void);
+extern int utc_zb_leave_device_p(void);
+extern int utc_zb_leave_device_n(void);
+extern int utc_zb_permit_join_p(void);
+extern int utc_zb_permit_join_n(void);
+extern int utc_zb_get_controller_mac_address_p(void);
+extern int utc_zb_get_controller_mac_address_n(void);
+extern int utc_zb_get_network_info_p(void);
+extern int utc_zb_get_network_info_n(void);
+
+extern int utc_zb_end_dev_get_ep_list_p(void);
+extern int utc_zb_end_dev_get_ep_list_n(void);
+extern int utc_zb_end_dev_get_cluster_list_p(void);
+extern int utc_zb_end_dev_get_cluster_list_n(void);
+extern int utc_zb_end_dev_get_end_dev_info_list_p(void);
+extern int utc_zb_end_dev_get_end_dev_info_list_n1(void);
+extern int utc_zb_end_dev_get_end_dev_info_list_n2(void);
+extern int utc_zb_end_dev_info_create_p(void);
+extern int utc_zb_end_dev_info_create_n(void);
+extern int utc_zb_end_dev_info_clone_p(void);
+extern int utc_zb_end_dev_info_clone_n(void);
+extern int utc_zb_end_dev_info_destroy_p(void);
+extern int utc_zb_end_dev_info_destroy_n(void);
+extern int utc_zb_end_dev_info_list_free_p(void);
+extern int utc_zb_end_dev_info_list_free_n(void);
+extern int utc_zb_end_dev_info_get_network_address_n(void);
+extern int utc_zb_end_dev_info_get_ieee_address_n(void);
+extern int utc_zb_end_dev_info_get_num_of_ep_n(void);
+extern int utc_zb_end_dev_info_get_ep_list_n(void);
+extern int utc_zb_end_dev_info_get_mac_capability_n(void);
+extern int utc_zb_end_dev_info_get_alternative_pan_coordinator_n(void);
+extern int utc_zb_end_dev_info_get_device_id_n(void);
+extern int utc_zb_end_dev_info_get_profile_id_n(void);
+extern int utc_zb_end_dev_info_get_power_source_n(void);
+extern int utc_zb_end_dev_info_get_security_capabilty_n(void);
+
+/* Zigbee ZDO */
+
+#ifdef SUPPORT_SIMPLE_DESCRIPTION
+extern int utc_zb_simple_desc_create_p(void);
+extern int utc_zb_simple_desc_create_n(void);
+extern int utc_zb_simple_desc_destroy_p(void);
+extern int utc_zb_simple_desc_destroy_n(void);
+extern int utc_zb_simple_desc_clone_p(void);
+extern int utc_zb_simple_desc_clone_n(void);
+extern int utc_zb_simple_desc_get_ep_p(void);
+extern int utc_zb_simple_desc_get_ep_n(void);
+extern int utc_zb_simple_desc_set_ep_p(void);
+extern int utc_zb_simple_desc_set_ep_n(void);
+extern int utc_zb_simple_desc_get_profile_id_p(void);
+extern int utc_zb_simple_desc_get_profile_id_n(void);
+extern int utc_zb_simple_desc_set_profile_id_p(void);
+extern int utc_zb_simple_desc_set_profile_id_n(void);
+extern int utc_zb_simple_desc_get_device_id_p(void);
+extern int utc_zb_simple_desc_get_device_id_n(void);
+extern int utc_zb_simple_desc_set_device_id_p(void);
+extern int utc_zb_simple_desc_set_device_id_n(void);
+extern int utc_zb_simple_desc_get_device_ver_p(void);
+extern int utc_zb_simple_desc_get_device_ver_n(void);
+extern int utc_zb_simple_desc_set_device_ver_p(void);
+extern int utc_zb_simple_desc_set_device_ver_n(void);
+extern int utc_zb_simple_desc_get_num_of_in_clusters_p(void);
+extern int utc_zb_simple_desc_get_num_of_in_clusters_n(void);
+extern int utc_zb_simple_desc_set_num_of_in_clusters_p(void);
+extern int utc_zb_simple_desc_set_num_of_in_clusters_n(void);
+extern int utc_zb_simple_desc_get_num_of_out_clusters_p(void);
+extern int utc_zb_simple_desc_get_num_of_out_clusters_n(void);
+extern int utc_zb_simple_desc_set_num_of_out_clusters_p(void);
+extern int utc_zb_simple_desc_set_num_of_out_clusters_n(void);
+extern int utc_zb_simple_desc_get_in_clusters_p(void);
+extern int utc_zb_simple_desc_get_in_clusters_n(void);
+extern int utc_zb_simple_desc_set_in_clusters_p(void);
+extern int utc_zb_simple_desc_set_in_clusters_n(void);
+extern int utc_zb_simple_desc_get_out_clusters_p(void);
+extern int utc_zb_simple_desc_get_out_clusters_n(void);
+extern int utc_zb_simple_desc_set_out_clusters_p(void);
+extern int utc_zb_simple_desc_set_out_clusters_n(void);
+#endif /* SUPPORT_SIMPLE_DESCRIPTION */
+
+#ifdef SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER
+/* Zigbee ZDO Device Discovery */
+extern int utc_zb_zdo_nwk_addr_req_p(void);
+extern int utc_zb_zdo_nwk_addr_req_n(void);
+extern int utc_zb_zdo_ieee_addr_req_p(void);
+extern int utc_zb_zdo_ieee_addr_req_n(void);
+extern int utc_zb_zdo_active_ep_p(void);
+extern int utc_zb_zdo_active_ep_n(void);
+extern int utc_zb_zdo_simple_desc_req_p(void);
+extern int utc_zb_zdo_simple_desc_req_n(void);
+#endif /* SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER */
+
+#ifdef SUPPORT_ZCL_GLOBAL_COMMNAD_CLUSTER
+/* Global Command */
+extern int utc_zb_zcl_global_attr_read_p(void);
+extern int utc_zb_zcl_global_attr_read_n(void);
+extern int utc_zb_zcl_global_attr_write_p(void);
+extern int utc_zb_zcl_global_attr_write_n(void);
+extern int utc_zb_zcl_global_attr_write_undivided_p(void);
+extern int utc_zb_zcl_global_attr_write_undivided_n(void);
+extern int utc_zb_zcl_global_attr_write_no_rsp_p(void);
+extern int utc_zb_zcl_global_attr_write_no_rsp_n(void);
+extern int utc_zb_zcl_global_config_report_write_p(void);
+extern int utc_zb_zcl_global_config_report_write_n(void);
+extern int utc_zb_zcl_global_config_report_read_p(void);
+extern int utc_zb_zcl_global_config_report_read_n(void);
+extern int utc_zb_zcl_global_config_report_read_n(void);
+#endif /* SUPPORT_ZCL_GLOBAL_COMMNAD_CLUSTER */
+
+#ifdef SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD
+extern int utc_zb_read_attr_status_record_create_p(void);
+extern int utc_zb_read_attr_status_record_create_n(void);
+extern int utc_zb_read_attr_status_record_clone_p(void);
+extern int utc_zb_read_attr_status_record_clone_n(void);
+extern int utc_zb_read_attr_status_record_destroy_p(void);
+extern int utc_zb_read_attr_status_record_destroy_n(void);
+extern int utc_zb_read_attr_status_record_set_id_p(void);
+extern int utc_zb_read_attr_status_record_set_id_n(void);
+extern int utc_zb_read_attr_status_record_get_id_p(void);
+extern int utc_zb_read_attr_status_record_get_id_n(void);
+extern int utc_zb_read_attr_status_record_set_status_p(void);
+extern int utc_zb_read_attr_status_record_set_status_n(void);
+extern int utc_zb_read_attr_status_record_get_status_p(void);
+extern int utc_zb_read_attr_status_record_get_status_n(void);
+extern int utc_zb_read_attr_status_record_set_type_p(void);
+extern int utc_zb_read_attr_status_record_set_type_n(void);
+extern int utc_zb_read_attr_status_record_get_type_p(void);
+extern int utc_zb_read_attr_status_record_get_type_n(void);
+extern int utc_zb_read_attr_status_record_set_value_p(void);
+extern int utc_zb_read_attr_status_record_set_value_n(void);
+extern int utc_zb_read_attr_status_record_get_value_p(void);
+extern int utc_zb_read_attr_status_record_get_value_n(void);
+#endif /* SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD */
+
+#ifdef SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS
+extern int utc_zb_write_attr_record_create_p(void);
+extern int utc_zb_write_attr_record_create_n(void);
+extern int utc_zb_write_attr_record_destroy_p(void);
+extern int utc_zb_write_attr_record_destroy_n(void);
+extern int utc_zb_write_attr_record_set_id_p(void);
+extern int utc_zb_write_attr_record_set_id_n(void);
+extern int utc_zb_write_attr_record_set_value_p(void);
+extern int utc_zb_write_attr_record_set_value_n(void);
+extern int utc_zb_write_attr_status_create_p(void);
+extern int utc_zb_write_attr_status_create_n(void);
+extern int utc_zb_write_attr_status_destroy_p(void);
+extern int utc_zb_write_attr_status_destroy_n(void);
+extern int utc_zb_write_attr_status_set_status_p(void);
+extern int utc_zb_write_attr_status_set_status_n(void);
+extern int utc_zb_write_attr_status_get_status_p(void);
+extern int utc_zb_write_attr_status_get_status_n(void);
+extern int utc_zb_write_attr_status_set_id_p(void);
+extern int utc_zb_write_attr_status_set_id_n(void);
+extern int utc_zb_write_attr_status_get_id_p(void);
+extern int utc_zb_write_attr_status_get_id_n(void);
+#endif /* SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_REPORT
+extern int utc_zb_report_config_record_create_p(void);
+extern int utc_zb_report_config_record_create_n(void);
+extern int utc_zb_report_config_record_clone_p(void);
+extern int utc_zb_report_config_record_clone_n(void);
+extern int utc_zb_report_config_record_destroy_p(void);
+extern int utc_zb_report_config_record_destroy_n(void);
+extern int utc_zb_report_config_record_set_dir_p(void);
+extern int utc_zb_report_config_record_set_dir_n(void);
+extern int utc_zb_report_config_record_get_dir_p(void);
+extern int utc_zb_report_config_record_get_dir_n(void);
+extern int utc_zb_report_config_record_set_id_p(void);
+extern int utc_zb_report_config_record_set_id_n(void);
+extern int utc_zb_report_config_record_get_id_p(void);
+extern int utc_zb_report_config_record_get_id_n(void);
+extern int utc_zb_report_config_record_set_min_interval_p(void);
+extern int utc_zb_report_config_record_set_min_interval_n(void);
+extern int utc_zb_report_config_record_get_min_interval_p(void);
+extern int utc_zb_report_config_record_get_min_interval_n(void);
+extern int utc_zb_report_config_record_set_max_interval_p(void);
+extern int utc_zb_report_config_record_set_max_interval_n(void);
+extern int utc_zb_report_config_record_get_max_interval_p(void);
+extern int utc_zb_report_config_record_get_max_interval_n(void);
+extern int utc_zb_report_config_record_set_timeout_p(void);
+extern int utc_zb_report_config_record_set_timeout_n(void);
+extern int utc_zb_report_config_record_get_timeout_p(void);
+extern int utc_zb_report_config_record_get_timeout_n(void);
+extern int utc_zb_report_config_record_set_change_p(void);
+extern int utc_zb_report_config_record_set_change_n(void);
+extern int utc_zb_report_config_record_get_change_p(void);
+extern int utc_zb_report_config_record_get_change_n(void);
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_REPORT */
+
+#ifdef SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD
+extern int utc_zb_read_report_config_record_create_p(void);
+extern int utc_zb_read_report_config_record_create_n(void);
+extern int utc_zb_read_report_config_record_destroy_p(void);
+extern int utc_zb_read_report_config_record_destroy_n(void);
+extern int utc_zb_read_report_config_record_set_dir_p(void);
+extern int utc_zb_read_report_config_record_set_dir_n(void);
+extern int utc_zb_read_report_config_record_set_id_p(void);
+extern int utc_zb_read_report_config_record_set_id_n(void);
+#endif /* SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD
+extern int utc_zb_report_config_response_record_clone_n(void);
+extern int utc_zb_report_config_response_record_destroy_n(void);
+extern int utc_zb_report_config_response_record_get_status_n(void);
+extern int utc_zb_report_config_response_record_get_dir_n(void);
+extern int utc_zb_report_config_response_record_get_id_n(void);
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD */
+
+#ifdef SUPPORT_ZCL_IAS_ZONE_CLUSTER
+/* IAS Zone Cluster */
+extern int utc_zb_zcl_zone_enroll_response_p(void);
+extern int utc_zb_zcl_zone_enroll_response_n(void);
+#endif /* SUPPORT_ZCL_IAS_ZONE_CLUSTER */
+
+#ifdef SUPPORT_ZCL_ON_OFF_CLUSTER
+/* On/Off Cluster */
+extern int utc_zb_zcl_on_off_control_p(void);
+extern int utc_zb_zcl_on_off_control_n(void);
+#endif /* SUPPORT_ZCL_ON_OFF_CLUSTER */
+
+testcase tc_array[] = {
+ /* Zigbee APIs */
+ {"utc_zb_create_p", utc_zb_create_p, utc_startup, utc_cleanup},
+ {"utc_zb_create_n", utc_zb_create_n, utc_startup, utc_cleanup},
+ {"utc_zb_destroy_p", utc_zb_destroy_p, utc_startup, utc_cleanup},
+ {"utc_zb_destroy_n", utc_zb_destroy_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_enable_status_n", utc_zb_ev_get_enable_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_form_network_panid_n", utc_zb_ev_get_form_network_panid_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_join_count_n", utc_zb_ev_get_join_count_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_join_ep_n", utc_zb_ev_get_join_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_child_left_status_n", utc_zb_ev_get_child_left_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_ep_n", utc_zb_ev_get_global_default_rsp_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_cluster_id_n", utc_zb_ev_get_global_default_rsp_cluster_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_command_id_n", utc_zb_ev_get_global_default_rsp_command_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_status_n", utc_zb_ev_get_global_default_rsp_status_n, utc_startup, utc_cleanup},
+
+ {"utc_zb_ev_get_enroll_request_src_ep_n", utc_zb_ev_get_enroll_request_src_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_enroll_request_zone_type_n", utc_zb_ev_get_enroll_request_zone_type_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_enroll_request_mfg_code_n", utc_zb_ev_get_enroll_request_mfg_code_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_noti_src_ep_n", utc_zb_ev_get_ias_noti_src_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_noti_zone_status_n", utc_zb_ev_get_ias_noti_zone_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_src_ep_n", utc_zb_ev_get_ias_ext_noti_src_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_status_n", utc_zb_ev_get_ias_ext_noti_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_zone_status_n", utc_zb_ev_get_ias_ext_noti_zone_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_delay_n", utc_zb_ev_get_ias_ext_noti_delay_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_zone_id_n", utc_zb_ev_get_ias_ext_noti_zone_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_set_event_cb_p", utc_zb_set_event_cb_p, utc_startup, utc_cleanup},
+ {"utc_zb_set_event_cb_n", utc_zb_set_event_cb_n, utc_startup, utc_cleanup},
+ {"utc_zb_form_network_p", utc_zb_form_network_p, utc_startup, utc_cleanup},
+ {"utc_zb_form_network_n", utc_zb_form_network_n, utc_startup, utc_cleanup},
+ {"utc_zb_disable_network_p", utc_zb_disable_network_p, utc_startup, utc_cleanup},
+ {"utc_zb_disable_network_n", utc_zb_disable_network_n, utc_startup, utc_cleanup},
+ {"utc_zb_leave_device_p", utc_zb_leave_device_p, utc_startup, utc_cleanup},
+ {"utc_zb_leave_device_n", utc_zb_leave_device_n, utc_startup, utc_cleanup},
+ {"utc_zb_permit_join_p", utc_zb_permit_join_p, utc_startup, utc_cleanup},
+ {"utc_zb_permit_join_n", utc_zb_permit_join_n, utc_startup, utc_cleanup},
+ {"utc_zb_get_controller_mac_address_p", utc_zb_get_controller_mac_address_p, utc_startup, utc_cleanup},
+ {"utc_zb_get_controller_mac_address_n", utc_zb_get_controller_mac_address_n, utc_startup, utc_cleanup},
+ {"utc_zb_get_network_info_p", utc_zb_get_network_info_p, utc_startup, utc_cleanup},
+ {"utc_zb_get_network_info_n", utc_zb_get_network_info_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_ep_list_p", utc_zb_end_dev_get_ep_list_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_ep_list_n", utc_zb_end_dev_get_ep_list_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_cluster_list_p", utc_zb_end_dev_get_cluster_list_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_cluster_list_n", utc_zb_end_dev_get_cluster_list_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_end_dev_info_list_p", utc_zb_end_dev_get_end_dev_info_list_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_end_dev_info_list_n1", utc_zb_end_dev_get_end_dev_info_list_n1, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_end_dev_info_list_n2", utc_zb_end_dev_get_end_dev_info_list_n2, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_list_free_p", utc_zb_end_dev_info_list_free_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_list_free_n", utc_zb_end_dev_info_list_free_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_create_p", utc_zb_end_dev_info_create_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_create_n", utc_zb_end_dev_info_create_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_clone_p", utc_zb_end_dev_info_clone_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_clone_n", utc_zb_end_dev_info_clone_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_destroy_p", utc_zb_end_dev_info_destroy_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_destroy_n", utc_zb_end_dev_info_destroy_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_network_address_n", utc_zb_end_dev_info_get_network_address_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_ieee_address_n", utc_zb_end_dev_info_get_ieee_address_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_num_of_ep_n", utc_zb_end_dev_info_get_num_of_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_ep_list_n", utc_zb_end_dev_info_get_ep_list_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_mac_capability_n", utc_zb_end_dev_info_get_mac_capability_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_alternative_pan_coordinator_n", utc_zb_end_dev_info_get_alternative_pan_coordinator_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_device_id_n", utc_zb_end_dev_info_get_device_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_profile_id_n", utc_zb_end_dev_info_get_profile_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_power_source_n", utc_zb_end_dev_info_get_power_source_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_security_capabilty_n", utc_zb_end_dev_info_get_security_capabilty_n, utc_startup, utc_cleanup},
+
+#ifdef SUPPORT_SIMPLE_DESCRIPTION
+ /* Zigbee ZDO - Simple Descripter Getter/Setter */
+ {"utc_zb_simple_desc_create_p", utc_zb_simple_desc_create_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_create_n", utc_zb_simple_desc_create_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_destroy_p", utc_zb_simple_desc_destroy_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_destroy_n", utc_zb_simple_desc_destroy_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_clone_p", utc_zb_simple_desc_clone_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_clone_n", utc_zb_simple_desc_clone_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_ep_p", utc_zb_simple_desc_get_ep_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_ep_n", utc_zb_simple_desc_get_ep_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_ep_p", utc_zb_simple_desc_set_ep_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_ep_n", utc_zb_simple_desc_set_ep_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_profile_id_p", utc_zb_simple_desc_get_profile_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_profile_id_n", utc_zb_simple_desc_get_profile_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_profile_id_p", utc_zb_simple_desc_set_profile_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_profile_id_n", utc_zb_simple_desc_set_profile_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_id_p", utc_zb_simple_desc_get_device_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_id_n", utc_zb_simple_desc_get_device_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_id_p", utc_zb_simple_desc_set_device_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_id_n", utc_zb_simple_desc_set_device_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_ver_p", utc_zb_simple_desc_get_device_ver_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_ver_n", utc_zb_simple_desc_get_device_ver_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_ver_p", utc_zb_simple_desc_set_device_ver_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_ver_n", utc_zb_simple_desc_set_device_ver_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_in_clusters_p", utc_zb_simple_desc_get_num_of_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_in_clusters_n", utc_zb_simple_desc_get_num_of_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_in_clusters_p", utc_zb_simple_desc_set_num_of_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_in_clusters_n", utc_zb_simple_desc_set_num_of_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_out_clusters_p", utc_zb_simple_desc_get_num_of_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_out_clusters_n", utc_zb_simple_desc_get_num_of_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_out_clusters_p", utc_zb_simple_desc_set_num_of_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_out_clusters_n", utc_zb_simple_desc_set_num_of_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_in_clusters_p", utc_zb_simple_desc_get_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_in_clusters_n", utc_zb_simple_desc_get_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_in_clusters_p", utc_zb_simple_desc_set_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_in_clusters_n", utc_zb_simple_desc_set_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_out_clusters_p", utc_zb_simple_desc_get_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_out_clusters_n", utc_zb_simple_desc_get_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_out_clusters_p", utc_zb_simple_desc_set_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_out_clusters_n", utc_zb_simple_desc_set_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+#endif /* SUPPORT_SIMPLE_DESCRIPTION*/
+
+#ifdef SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER
+ /* Zigbee ZDO - Device Discovery */
+ {"utc_zb_zdo_nwk_addr_req_p", utc_zb_zdo_nwk_addr_req_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_nwk_addr_req_n", utc_zb_zdo_nwk_addr_req_n, utc_startup, utc_startup},
+ {"utc_zb_zdo_ieee_addr_req_p", utc_zb_zdo_ieee_addr_req_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_ieee_addr_req_n", utc_zb_zdo_ieee_addr_req_n, utc_startup, utc_startup},
+ {"utc_zb_zdo_active_ep_p", utc_zb_zdo_active_ep_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_active_ep_n", utc_zb_zdo_active_ep_n, utc_startup, utc_startup},
+ {"utc_zb_zdo_simple_desc_req_p", utc_zb_zdo_simple_desc_req_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_simple_desc_req_n", utc_zb_zdo_simple_desc_req_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER */
+
+#if defined(SUPPORT_ZCL_GLOBAL_COMMNAD_CLUSTER)
+ /* Zigbee ZCL - Global Cluster */
+ {"utc_zb_zcl_global_attr_read_p", utc_zb_zcl_global_attr_read_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_read_n", utc_zb_zcl_global_attr_read_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_p", utc_zb_zcl_global_attr_write_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_n", utc_zb_zcl_global_attr_write_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_undivided_p", utc_zb_zcl_global_attr_write_undivided_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_undivided_n", utc_zb_zcl_global_attr_write_undivided_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_no_rsp_p", utc_zb_zcl_global_attr_write_no_rsp_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_no_rsp_n", utc_zb_zcl_global_attr_write_no_rsp_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_write_p", utc_zb_zcl_global_config_report_write_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_write_n", utc_zb_zcl_global_config_report_write_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_read_p", utc_zb_zcl_global_config_report_write_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_read_n", utc_zb_zcl_global_config_report_read_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_GLOBAL_COMMAND_CLUSTER */
+
+#ifdef SUPPORT_ZCL_IAS_ZONE_CLUSTER
+ /* Zigbee ZCL - IAS Zone Cluster */
+ {"utc_zb_zcl_zone_enroll_response_p", utc_zb_zcl_zone_enroll_response_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_zone_enroll_response_n", utc_zb_zcl_zone_enroll_response_p, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_IAS_ZONE_CLUSTER */
+
+#ifdef SUPPORT_ZCL_ON_OFF_CLUSTER
+ /* Zigbee ZCL - On/Off Cluster */
+ {"utc_zb_zcl_on_off_control_p", utc_zb_zcl_on_off_control_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_on_off_control_n", utc_zb_zcl_on_off_control_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_ON_OFF_CLUSTER */
+
+#ifdef SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD
+ /* Zigbee ZCL - Read Attribute Status Record Getter/Setter */
+ {"utc_zb_read_attr_status_record_create_p", utc_zb_read_attr_status_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_create_n", utc_zb_read_attr_status_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_clone_p", utc_zb_read_attr_status_record_clone_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_clone_n", utc_zb_read_attr_status_record_clone_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_destroy_p", utc_zb_read_attr_status_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_destroy_n", utc_zb_read_attr_status_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_id_p", utc_zb_read_attr_status_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_id_n", utc_zb_read_attr_status_record_set_id_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_id_p", utc_zb_read_attr_status_record_get_id_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_id_n", utc_zb_read_attr_status_record_get_id_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_status_p", utc_zb_read_attr_status_record_set_status_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_status_n", utc_zb_read_attr_status_record_set_status_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_status_p", utc_zb_read_attr_status_record_get_status_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_status_n", utc_zb_read_attr_status_record_get_status_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_type_p", utc_zb_read_attr_status_record_get_status_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_type_n", utc_zb_read_attr_status_record_set_type_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_type_p", utc_zb_read_attr_status_record_get_type_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_type_n", utc_zb_read_attr_status_record_get_type_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_value_p", utc_zb_read_attr_status_record_set_value_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_value_n", utc_zb_read_attr_status_record_set_value_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_value_p", utc_zb_read_attr_status_record_get_value_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_value_n", utc_zb_read_attr_status_record_get_value_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD */
+
+#ifdef SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS
+ /* Zigbee ZCL - Write Attribute Status Record Getter/Setter */
+ {"utc_zb_write_attr_record_create_p", utc_zb_write_attr_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_create_n", utc_zb_write_attr_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_destroy_p", utc_zb_write_attr_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_destroy_n", utc_zb_write_attr_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_id_p", utc_zb_write_attr_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_id_n", utc_zb_write_attr_record_set_id_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_value_p", utc_zb_write_attr_record_set_value_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_value_n", utc_zb_write_attr_record_set_value_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_create_p", utc_zb_write_attr_status_create_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_create_n", utc_zb_write_attr_status_create_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_destroy_p", utc_zb_write_attr_status_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_destroy_n", utc_zb_write_attr_status_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_status_p", utc_zb_write_attr_status_set_status_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_status_n", utc_zb_write_attr_status_set_status_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_status_p", utc_zb_write_attr_status_get_status_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_status_n", utc_zb_write_attr_status_get_status_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_id_p", utc_zb_write_attr_status_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_id_n", utc_zb_write_attr_status_set_id_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_id_p", utc_zb_write_attr_status_get_id_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_id_n", utc_zb_write_attr_status_get_id_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_REPORT
+ /* Zigbee ZCL - Report Configuration Record Getter/Setter */
+ {"utc_zb_report_config_record_create_p", utc_zb_report_config_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_create_n", utc_zb_report_config_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_clone_p", utc_zb_report_config_record_clone_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_clone_n", utc_zb_report_config_record_clone_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_destroy_p", utc_zb_report_config_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_destroy_n", utc_zb_report_config_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_dir_p", utc_zb_report_config_record_set_dir_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_dir_n", utc_zb_report_config_record_set_dir_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_dir_p", utc_zb_report_config_record_get_dir_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_dir_n", utc_zb_report_config_record_get_dir_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_id_p", utc_zb_report_config_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_id_n", utc_zb_report_config_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_id_p", utc_zb_report_config_record_get_id_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_id_n", utc_zb_report_config_record_get_id_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_min_interval_p", utc_zb_report_config_record_set_min_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_min_interval_n", utc_zb_report_config_record_set_min_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_min_interval_p", utc_zb_report_config_record_get_min_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_min_interval_n", utc_zb_report_config_record_get_min_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_max_interval_p", utc_zb_report_config_record_set_max_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_max_interval_n", utc_zb_report_config_record_set_max_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_max_interval_p", utc_zb_report_config_record_get_max_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_max_interval_n", utc_zb_report_config_record_get_max_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_timeout_p", utc_zb_report_config_record_set_timeout_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_timeout_n", utc_zb_report_config_record_set_timeout_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_timeout_p", utc_zb_report_config_record_get_timeout_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_timeout_n", utc_zb_report_config_record_get_timeout_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_change_p", utc_zb_report_config_record_set_change_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_change_n", utc_zb_report_config_record_set_change_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_change_p", utc_zb_report_config_record_get_change_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_change_n", utc_zb_report_config_record_get_change_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_REPORT */
+
+#ifdef SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD
+ /* Zigbee ZCL - Read Report Configuration Record Getter/Setter */
+ {"utc_zb_read_report_config_record_create_p", utc_zb_read_report_config_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_create_n", utc_zb_read_report_config_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_destroy_p", utc_zb_read_report_config_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_destroy_n", utc_zb_read_report_config_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_dir_p", utc_zb_read_report_config_record_set_dir_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_dir_n", utc_zb_read_report_config_record_set_dir_n, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_id_p", utc_zb_read_report_config_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_id_n", utc_zb_read_report_config_record_set_id_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD
+ /* Zigbee ZCL - Report Configuration Response Getter/Setter */
+ {"utc_zb_report_config_response_record_clone_n", utc_zb_report_config_response_record_clone_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_destroy_n", utc_zb_report_config_response_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_get_status_n", utc_zb_report_config_response_record_get_status_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_get_dir_n", utc_zb_report_config_response_record_get_dir_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_get_id_n", utc_zb_report_config_response_record_get_id_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD */
+
+ {NULL, NULL}
+};
+
+#endif // __TCT_ZIGBEE_NATIVE_H__
--- /dev/null
+//
+// Copyright (c) 2014 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef __TCT_ZIGBEE_NATIVE_H__
+#define __TCT_ZIGBEE_NATIVE_H__
+
+#include "testcase.h"
+#include "tct_common.h"
+#include "utc-zigbee.h"
+
+extern void utc_startup(void);
+extern void utc_cleanup(void);
+extern void utc_zdo_simple_desc_startup(void);
+extern void utc_zdo_simple_desc_cleanup(void);
+extern void utc_zdo_power_desc_startup(void);
+extern void utc_zdo_power_desc_cleanup(void);
+extern void utc_zdo_node_desc_startup(void);
+extern void utc_zdo_node_desc_cleanup(void);
+extern void utc_zdo_getter_startup(void);
+extern void utc_zdo_getter_cleanup(void);
+
+/* Zigbee APIs */
+extern int utc_zb_create_p(void);
+extern int utc_zb_create_n(void);
+extern int utc_zb_destroy_p(void);
+extern int utc_zb_destroy_n(void);
+extern int utc_zb_ev_get_enable_status_n(void);
+extern int utc_zb_ev_get_form_network_panid_n(void);
+extern int utc_zb_ev_get_join_count_n(void);
+extern int utc_zb_ev_get_join_ep_n(void);
+extern int utc_zb_ev_get_child_left_status_n(void);
+extern int utc_zb_ev_get_global_default_rsp_ep_n(void);
+extern int utc_zb_ev_get_global_default_rsp_cluster_id_n(void);
+extern int utc_zb_ev_get_global_default_rsp_command_id_n(void);
+extern int utc_zb_ev_get_global_default_rsp_status_n(void);
+extern int utc_zb_ev_get_enroll_request_src_ep_n(void);
+extern int utc_zb_ev_get_enroll_request_zone_type_n(void);
+extern int utc_zb_ev_get_enroll_request_mfg_code_n(void);
+extern int utc_zb_ev_get_ias_noti_src_ep_n(void);
+extern int utc_zb_ev_get_ias_noti_zone_status_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_src_ep_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_status_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_zone_status_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_delay_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_zone_id_n(void);
+extern int utc_zb_set_event_cb_p(void);
+extern int utc_zb_set_event_cb_n(void);
+extern int utc_zb_form_network_p(void);
+extern int utc_zb_form_network_n(void);
+extern int utc_zb_disable_network_p(void);
+extern int utc_zb_disable_network_n(void);
+extern int utc_zb_leave_device_p(void);
+extern int utc_zb_leave_device_n(void);
+extern int utc_zb_permit_join_p(void);
+extern int utc_zb_permit_join_n(void);
+extern int utc_zb_get_controller_mac_address_p(void);
+extern int utc_zb_get_controller_mac_address_n(void);
+extern int utc_zb_get_network_info_p(void);
+extern int utc_zb_get_network_info_n(void);
+
+extern int utc_zb_end_dev_get_ep_list_p(void);
+extern int utc_zb_end_dev_get_ep_list_n(void);
+extern int utc_zb_end_dev_get_cluster_list_p(void);
+extern int utc_zb_end_dev_get_cluster_list_n(void);
+extern int utc_zb_end_dev_get_end_dev_info_list_p(void);
+extern int utc_zb_end_dev_get_end_dev_info_list_n1(void);
+extern int utc_zb_end_dev_get_end_dev_info_list_n2(void);
+extern int utc_zb_end_dev_info_create_p(void);
+extern int utc_zb_end_dev_info_create_n(void);
+extern int utc_zb_end_dev_info_clone_p(void);
+extern int utc_zb_end_dev_info_clone_n(void);
+extern int utc_zb_end_dev_info_destroy_p(void);
+extern int utc_zb_end_dev_info_destroy_n(void);
+extern int utc_zb_end_dev_info_list_free_p(void);
+extern int utc_zb_end_dev_info_list_free_n(void);
+extern int utc_zb_end_dev_info_get_network_address_n(void);
+extern int utc_zb_end_dev_info_get_ieee_address_n(void);
+extern int utc_zb_end_dev_info_get_num_of_ep_n(void);
+extern int utc_zb_end_dev_info_get_ep_list_n(void);
+extern int utc_zb_end_dev_info_get_mac_capability_n(void);
+extern int utc_zb_end_dev_info_get_alternative_pan_coordinator_n(void);
+extern int utc_zb_end_dev_info_get_device_id_n(void);
+extern int utc_zb_end_dev_info_get_profile_id_n(void);
+extern int utc_zb_end_dev_info_get_power_source_n(void);
+extern int utc_zb_end_dev_info_get_security_capabilty_n(void);
+
+/* Zigbee ZDO */
+
+#ifdef SUPPORT_SIMPLE_DESCRIPTION
+extern int utc_zb_simple_desc_create_p(void);
+extern int utc_zb_simple_desc_create_n(void);
+extern int utc_zb_simple_desc_destroy_p(void);
+extern int utc_zb_simple_desc_destroy_n(void);
+extern int utc_zb_simple_desc_clone_p(void);
+extern int utc_zb_simple_desc_clone_n(void);
+extern int utc_zb_simple_desc_get_ep_p(void);
+extern int utc_zb_simple_desc_get_ep_n(void);
+extern int utc_zb_simple_desc_set_ep_p(void);
+extern int utc_zb_simple_desc_set_ep_n(void);
+extern int utc_zb_simple_desc_get_profile_id_p(void);
+extern int utc_zb_simple_desc_get_profile_id_n(void);
+extern int utc_zb_simple_desc_set_profile_id_p(void);
+extern int utc_zb_simple_desc_set_profile_id_n(void);
+extern int utc_zb_simple_desc_get_device_id_p(void);
+extern int utc_zb_simple_desc_get_device_id_n(void);
+extern int utc_zb_simple_desc_set_device_id_p(void);
+extern int utc_zb_simple_desc_set_device_id_n(void);
+extern int utc_zb_simple_desc_get_device_ver_p(void);
+extern int utc_zb_simple_desc_get_device_ver_n(void);
+extern int utc_zb_simple_desc_set_device_ver_p(void);
+extern int utc_zb_simple_desc_set_device_ver_n(void);
+extern int utc_zb_simple_desc_get_num_of_in_clusters_p(void);
+extern int utc_zb_simple_desc_get_num_of_in_clusters_n(void);
+extern int utc_zb_simple_desc_set_num_of_in_clusters_p(void);
+extern int utc_zb_simple_desc_set_num_of_in_clusters_n(void);
+extern int utc_zb_simple_desc_get_num_of_out_clusters_p(void);
+extern int utc_zb_simple_desc_get_num_of_out_clusters_n(void);
+extern int utc_zb_simple_desc_set_num_of_out_clusters_p(void);
+extern int utc_zb_simple_desc_set_num_of_out_clusters_n(void);
+extern int utc_zb_simple_desc_get_in_clusters_p(void);
+extern int utc_zb_simple_desc_get_in_clusters_n(void);
+extern int utc_zb_simple_desc_set_in_clusters_p(void);
+extern int utc_zb_simple_desc_set_in_clusters_n(void);
+extern int utc_zb_simple_desc_get_out_clusters_p(void);
+extern int utc_zb_simple_desc_get_out_clusters_n(void);
+extern int utc_zb_simple_desc_set_out_clusters_p(void);
+extern int utc_zb_simple_desc_set_out_clusters_n(void);
+#endif /* SUPPORT_SIMPLE_DESCRIPTION */
+
+#ifdef SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER
+/* Zigbee ZDO Device Discovery */
+extern int utc_zb_zdo_nwk_addr_req_p(void);
+extern int utc_zb_zdo_nwk_addr_req_n(void);
+extern int utc_zb_zdo_ieee_addr_req_p(void);
+extern int utc_zb_zdo_ieee_addr_req_n(void);
+extern int utc_zb_zdo_active_ep_p(void);
+extern int utc_zb_zdo_active_ep_n(void);
+extern int utc_zb_zdo_simple_desc_req_p(void);
+extern int utc_zb_zdo_simple_desc_req_n(void);
+#endif /* SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER */
+
+#ifdef SUPPORT_ZCL_GLOBAL_COMMNAD_CLUSTER
+/* Global Command */
+extern int utc_zb_zcl_global_attr_read_p(void);
+extern int utc_zb_zcl_global_attr_read_n(void);
+extern int utc_zb_zcl_global_attr_write_p(void);
+extern int utc_zb_zcl_global_attr_write_n(void);
+extern int utc_zb_zcl_global_attr_write_undivided_p(void);
+extern int utc_zb_zcl_global_attr_write_undivided_n(void);
+extern int utc_zb_zcl_global_attr_write_no_rsp_p(void);
+extern int utc_zb_zcl_global_attr_write_no_rsp_n(void);
+extern int utc_zb_zcl_global_config_report_write_p(void);
+extern int utc_zb_zcl_global_config_report_write_n(void);
+extern int utc_zb_zcl_global_config_report_read_p(void);
+extern int utc_zb_zcl_global_config_report_read_n(void);
+extern int utc_zb_zcl_global_config_report_read_n(void);
+#endif /* SUPPORT_ZCL_GLOBAL_COMMNAD_CLUSTER */
+
+#ifdef SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD
+extern int utc_zb_read_attr_status_record_create_p(void);
+extern int utc_zb_read_attr_status_record_create_n(void);
+extern int utc_zb_read_attr_status_record_clone_p(void);
+extern int utc_zb_read_attr_status_record_clone_n(void);
+extern int utc_zb_read_attr_status_record_destroy_p(void);
+extern int utc_zb_read_attr_status_record_destroy_n(void);
+extern int utc_zb_read_attr_status_record_set_id_p(void);
+extern int utc_zb_read_attr_status_record_set_id_n(void);
+extern int utc_zb_read_attr_status_record_get_id_p(void);
+extern int utc_zb_read_attr_status_record_get_id_n(void);
+extern int utc_zb_read_attr_status_record_set_status_p(void);
+extern int utc_zb_read_attr_status_record_set_status_n(void);
+extern int utc_zb_read_attr_status_record_get_status_p(void);
+extern int utc_zb_read_attr_status_record_get_status_n(void);
+extern int utc_zb_read_attr_status_record_set_type_p(void);
+extern int utc_zb_read_attr_status_record_set_type_n(void);
+extern int utc_zb_read_attr_status_record_get_type_p(void);
+extern int utc_zb_read_attr_status_record_get_type_n(void);
+extern int utc_zb_read_attr_status_record_set_value_p(void);
+extern int utc_zb_read_attr_status_record_set_value_n(void);
+extern int utc_zb_read_attr_status_record_get_value_p(void);
+extern int utc_zb_read_attr_status_record_get_value_n(void);
+#endif /* SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD */
+
+#ifdef SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS
+extern int utc_zb_write_attr_record_create_p(void);
+extern int utc_zb_write_attr_record_create_n(void);
+extern int utc_zb_write_attr_record_destroy_p(void);
+extern int utc_zb_write_attr_record_destroy_n(void);
+extern int utc_zb_write_attr_record_set_id_p(void);
+extern int utc_zb_write_attr_record_set_id_n(void);
+extern int utc_zb_write_attr_record_set_value_p(void);
+extern int utc_zb_write_attr_record_set_value_n(void);
+extern int utc_zb_write_attr_status_create_p(void);
+extern int utc_zb_write_attr_status_create_n(void);
+extern int utc_zb_write_attr_status_destroy_p(void);
+extern int utc_zb_write_attr_status_destroy_n(void);
+extern int utc_zb_write_attr_status_set_status_p(void);
+extern int utc_zb_write_attr_status_set_status_n(void);
+extern int utc_zb_write_attr_status_get_status_p(void);
+extern int utc_zb_write_attr_status_get_status_n(void);
+extern int utc_zb_write_attr_status_set_id_p(void);
+extern int utc_zb_write_attr_status_set_id_n(void);
+extern int utc_zb_write_attr_status_get_id_p(void);
+extern int utc_zb_write_attr_status_get_id_n(void);
+#endif /* SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_REPORT
+extern int utc_zb_report_config_record_create_p(void);
+extern int utc_zb_report_config_record_create_n(void);
+extern int utc_zb_report_config_record_clone_p(void);
+extern int utc_zb_report_config_record_clone_n(void);
+extern int utc_zb_report_config_record_destroy_p(void);
+extern int utc_zb_report_config_record_destroy_n(void);
+extern int utc_zb_report_config_record_set_dir_p(void);
+extern int utc_zb_report_config_record_set_dir_n(void);
+extern int utc_zb_report_config_record_get_dir_p(void);
+extern int utc_zb_report_config_record_get_dir_n(void);
+extern int utc_zb_report_config_record_set_id_p(void);
+extern int utc_zb_report_config_record_set_id_n(void);
+extern int utc_zb_report_config_record_get_id_p(void);
+extern int utc_zb_report_config_record_get_id_n(void);
+extern int utc_zb_report_config_record_set_min_interval_p(void);
+extern int utc_zb_report_config_record_set_min_interval_n(void);
+extern int utc_zb_report_config_record_get_min_interval_p(void);
+extern int utc_zb_report_config_record_get_min_interval_n(void);
+extern int utc_zb_report_config_record_set_max_interval_p(void);
+extern int utc_zb_report_config_record_set_max_interval_n(void);
+extern int utc_zb_report_config_record_get_max_interval_p(void);
+extern int utc_zb_report_config_record_get_max_interval_n(void);
+extern int utc_zb_report_config_record_set_timeout_p(void);
+extern int utc_zb_report_config_record_set_timeout_n(void);
+extern int utc_zb_report_config_record_get_timeout_p(void);
+extern int utc_zb_report_config_record_get_timeout_n(void);
+extern int utc_zb_report_config_record_set_change_p(void);
+extern int utc_zb_report_config_record_set_change_n(void);
+extern int utc_zb_report_config_record_get_change_p(void);
+extern int utc_zb_report_config_record_get_change_n(void);
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_REPORT */
+
+#ifdef SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD
+extern int utc_zb_read_report_config_record_create_p(void);
+extern int utc_zb_read_report_config_record_create_n(void);
+extern int utc_zb_read_report_config_record_destroy_p(void);
+extern int utc_zb_read_report_config_record_destroy_n(void);
+extern int utc_zb_read_report_config_record_set_dir_p(void);
+extern int utc_zb_read_report_config_record_set_dir_n(void);
+extern int utc_zb_read_report_config_record_set_id_p(void);
+extern int utc_zb_read_report_config_record_set_id_n(void);
+#endif /* SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD
+extern int utc_zb_report_config_response_record_clone_n(void);
+extern int utc_zb_report_config_response_record_destroy_n(void);
+extern int utc_zb_report_config_response_record_get_status_n(void);
+extern int utc_zb_report_config_response_record_get_dir_n(void);
+extern int utc_zb_report_config_response_record_get_id_n(void);
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD */
+
+#ifdef SUPPORT_ZCL_IAS_ZONE_CLUSTER
+/* IAS Zone Cluster */
+extern int utc_zb_zcl_zone_enroll_response_p(void);
+extern int utc_zb_zcl_zone_enroll_response_n(void);
+#endif /* SUPPORT_ZCL_IAS_ZONE_CLUSTER */
+
+#ifdef SUPPORT_ZCL_ON_OFF_CLUSTER
+/* On/Off Cluster */
+extern int utc_zb_zcl_on_off_control_p(void);
+extern int utc_zb_zcl_on_off_control_n(void);
+#endif /* SUPPORT_ZCL_ON_OFF_CLUSTER */
+
+testcase tc_array[] = {
+ /* Zigbee APIs */
+ {"utc_zb_create_p", utc_zb_create_p, utc_startup, utc_cleanup},
+ {"utc_zb_create_n", utc_zb_create_n, utc_startup, utc_cleanup},
+ {"utc_zb_destroy_p", utc_zb_destroy_p, utc_startup, utc_cleanup},
+ {"utc_zb_destroy_n", utc_zb_destroy_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_enable_status_n", utc_zb_ev_get_enable_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_form_network_panid_n", utc_zb_ev_get_form_network_panid_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_join_count_n", utc_zb_ev_get_join_count_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_join_ep_n", utc_zb_ev_get_join_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_child_left_status_n", utc_zb_ev_get_child_left_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_ep_n", utc_zb_ev_get_global_default_rsp_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_cluster_id_n", utc_zb_ev_get_global_default_rsp_cluster_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_command_id_n", utc_zb_ev_get_global_default_rsp_command_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_status_n", utc_zb_ev_get_global_default_rsp_status_n, utc_startup, utc_cleanup},
+
+ {"utc_zb_ev_get_enroll_request_src_ep_n", utc_zb_ev_get_enroll_request_src_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_enroll_request_zone_type_n", utc_zb_ev_get_enroll_request_zone_type_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_enroll_request_mfg_code_n", utc_zb_ev_get_enroll_request_mfg_code_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_noti_src_ep_n", utc_zb_ev_get_ias_noti_src_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_noti_zone_status_n", utc_zb_ev_get_ias_noti_zone_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_src_ep_n", utc_zb_ev_get_ias_ext_noti_src_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_status_n", utc_zb_ev_get_ias_ext_noti_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_zone_status_n", utc_zb_ev_get_ias_ext_noti_zone_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_delay_n", utc_zb_ev_get_ias_ext_noti_delay_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_zone_id_n", utc_zb_ev_get_ias_ext_noti_zone_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_set_event_cb_p", utc_zb_set_event_cb_p, utc_startup, utc_cleanup},
+ {"utc_zb_set_event_cb_n", utc_zb_set_event_cb_n, utc_startup, utc_cleanup},
+ {"utc_zb_form_network_p", utc_zb_form_network_p, utc_startup, utc_cleanup},
+ {"utc_zb_form_network_n", utc_zb_form_network_n, utc_startup, utc_cleanup},
+ {"utc_zb_disable_network_p", utc_zb_disable_network_p, utc_startup, utc_cleanup},
+ {"utc_zb_disable_network_n", utc_zb_disable_network_n, utc_startup, utc_cleanup},
+ {"utc_zb_leave_device_p", utc_zb_leave_device_p, utc_startup, utc_cleanup},
+ {"utc_zb_leave_device_n", utc_zb_leave_device_n, utc_startup, utc_cleanup},
+ {"utc_zb_permit_join_p", utc_zb_permit_join_p, utc_startup, utc_cleanup},
+ {"utc_zb_permit_join_n", utc_zb_permit_join_n, utc_startup, utc_cleanup},
+ {"utc_zb_get_controller_mac_address_p", utc_zb_get_controller_mac_address_p, utc_startup, utc_cleanup},
+ {"utc_zb_get_controller_mac_address_n", utc_zb_get_controller_mac_address_n, utc_startup, utc_cleanup},
+ {"utc_zb_get_network_info_p", utc_zb_get_network_info_p, utc_startup, utc_cleanup},
+ {"utc_zb_get_network_info_n", utc_zb_get_network_info_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_ep_list_p", utc_zb_end_dev_get_ep_list_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_ep_list_n", utc_zb_end_dev_get_ep_list_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_cluster_list_p", utc_zb_end_dev_get_cluster_list_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_cluster_list_n", utc_zb_end_dev_get_cluster_list_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_end_dev_info_list_p", utc_zb_end_dev_get_end_dev_info_list_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_end_dev_info_list_n1", utc_zb_end_dev_get_end_dev_info_list_n1, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_end_dev_info_list_n2", utc_zb_end_dev_get_end_dev_info_list_n2, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_list_free_p", utc_zb_end_dev_info_list_free_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_list_free_n", utc_zb_end_dev_info_list_free_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_create_p", utc_zb_end_dev_info_create_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_create_n", utc_zb_end_dev_info_create_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_clone_p", utc_zb_end_dev_info_clone_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_clone_n", utc_zb_end_dev_info_clone_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_destroy_p", utc_zb_end_dev_info_destroy_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_destroy_n", utc_zb_end_dev_info_destroy_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_network_address_n", utc_zb_end_dev_info_get_network_address_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_ieee_address_n", utc_zb_end_dev_info_get_ieee_address_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_num_of_ep_n", utc_zb_end_dev_info_get_num_of_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_ep_list_n", utc_zb_end_dev_info_get_ep_list_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_mac_capability_n", utc_zb_end_dev_info_get_mac_capability_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_alternative_pan_coordinator_n", utc_zb_end_dev_info_get_alternative_pan_coordinator_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_device_id_n", utc_zb_end_dev_info_get_device_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_profile_id_n", utc_zb_end_dev_info_get_profile_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_power_source_n", utc_zb_end_dev_info_get_power_source_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_security_capabilty_n", utc_zb_end_dev_info_get_security_capabilty_n, utc_startup, utc_cleanup},
+
+#ifdef SUPPORT_SIMPLE_DESCRIPTION
+ /* Zigbee ZDO - Simple Descripter Getter/Setter */
+ {"utc_zb_simple_desc_create_p", utc_zb_simple_desc_create_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_create_n", utc_zb_simple_desc_create_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_destroy_p", utc_zb_simple_desc_destroy_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_destroy_n", utc_zb_simple_desc_destroy_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_clone_p", utc_zb_simple_desc_clone_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_clone_n", utc_zb_simple_desc_clone_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_ep_p", utc_zb_simple_desc_get_ep_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_ep_n", utc_zb_simple_desc_get_ep_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_ep_p", utc_zb_simple_desc_set_ep_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_ep_n", utc_zb_simple_desc_set_ep_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_profile_id_p", utc_zb_simple_desc_get_profile_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_profile_id_n", utc_zb_simple_desc_get_profile_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_profile_id_p", utc_zb_simple_desc_set_profile_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_profile_id_n", utc_zb_simple_desc_set_profile_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_id_p", utc_zb_simple_desc_get_device_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_id_n", utc_zb_simple_desc_get_device_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_id_p", utc_zb_simple_desc_set_device_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_id_n", utc_zb_simple_desc_set_device_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_ver_p", utc_zb_simple_desc_get_device_ver_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_ver_n", utc_zb_simple_desc_get_device_ver_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_ver_p", utc_zb_simple_desc_set_device_ver_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_ver_n", utc_zb_simple_desc_set_device_ver_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_in_clusters_p", utc_zb_simple_desc_get_num_of_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_in_clusters_n", utc_zb_simple_desc_get_num_of_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_in_clusters_p", utc_zb_simple_desc_set_num_of_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_in_clusters_n", utc_zb_simple_desc_set_num_of_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_out_clusters_p", utc_zb_simple_desc_get_num_of_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_out_clusters_n", utc_zb_simple_desc_get_num_of_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_out_clusters_p", utc_zb_simple_desc_set_num_of_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_out_clusters_n", utc_zb_simple_desc_set_num_of_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_in_clusters_p", utc_zb_simple_desc_get_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_in_clusters_n", utc_zb_simple_desc_get_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_in_clusters_p", utc_zb_simple_desc_set_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_in_clusters_n", utc_zb_simple_desc_set_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_out_clusters_p", utc_zb_simple_desc_get_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_out_clusters_n", utc_zb_simple_desc_get_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_out_clusters_p", utc_zb_simple_desc_set_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_out_clusters_n", utc_zb_simple_desc_set_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+#endif /* SUPPORT_SIMPLE_DESCRIPTION*/
+
+#ifdef SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER
+ /* Zigbee ZDO - Device Discovery */
+ {"utc_zb_zdo_nwk_addr_req_p", utc_zb_zdo_nwk_addr_req_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_nwk_addr_req_n", utc_zb_zdo_nwk_addr_req_n, utc_startup, utc_startup},
+ {"utc_zb_zdo_ieee_addr_req_p", utc_zb_zdo_ieee_addr_req_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_ieee_addr_req_n", utc_zb_zdo_ieee_addr_req_n, utc_startup, utc_startup},
+ {"utc_zb_zdo_active_ep_p", utc_zb_zdo_active_ep_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_active_ep_n", utc_zb_zdo_active_ep_n, utc_startup, utc_startup},
+ {"utc_zb_zdo_simple_desc_req_p", utc_zb_zdo_simple_desc_req_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_simple_desc_req_n", utc_zb_zdo_simple_desc_req_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER */
+
+#if defined(SUPPORT_ZCL_GLOBAL_COMMNAD_CLUSTER)
+ /* Zigbee ZCL - Global Cluster */
+ {"utc_zb_zcl_global_attr_read_p", utc_zb_zcl_global_attr_read_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_read_n", utc_zb_zcl_global_attr_read_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_p", utc_zb_zcl_global_attr_write_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_n", utc_zb_zcl_global_attr_write_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_undivided_p", utc_zb_zcl_global_attr_write_undivided_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_undivided_n", utc_zb_zcl_global_attr_write_undivided_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_no_rsp_p", utc_zb_zcl_global_attr_write_no_rsp_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_no_rsp_n", utc_zb_zcl_global_attr_write_no_rsp_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_write_p", utc_zb_zcl_global_config_report_write_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_write_n", utc_zb_zcl_global_config_report_write_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_read_p", utc_zb_zcl_global_config_report_write_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_read_n", utc_zb_zcl_global_config_report_read_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_GLOBAL_COMMAND_CLUSTER */
+
+#ifdef SUPPORT_ZCL_IAS_ZONE_CLUSTER
+ /* Zigbee ZCL - IAS Zone Cluster */
+ {"utc_zb_zcl_zone_enroll_response_p", utc_zb_zcl_zone_enroll_response_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_zone_enroll_response_n", utc_zb_zcl_zone_enroll_response_p, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_IAS_ZONE_CLUSTER */
+
+#ifdef SUPPORT_ZCL_ON_OFF_CLUSTER
+ /* Zigbee ZCL - On/Off Cluster */
+ {"utc_zb_zcl_on_off_control_p", utc_zb_zcl_on_off_control_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_on_off_control_n", utc_zb_zcl_on_off_control_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_ON_OFF_CLUSTER */
+
+#ifdef SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD
+ /* Zigbee ZCL - Read Attribute Status Record Getter/Setter */
+ {"utc_zb_read_attr_status_record_create_p", utc_zb_read_attr_status_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_create_n", utc_zb_read_attr_status_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_clone_p", utc_zb_read_attr_status_record_clone_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_clone_n", utc_zb_read_attr_status_record_clone_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_destroy_p", utc_zb_read_attr_status_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_destroy_n", utc_zb_read_attr_status_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_id_p", utc_zb_read_attr_status_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_id_n", utc_zb_read_attr_status_record_set_id_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_id_p", utc_zb_read_attr_status_record_get_id_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_id_n", utc_zb_read_attr_status_record_get_id_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_status_p", utc_zb_read_attr_status_record_set_status_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_status_n", utc_zb_read_attr_status_record_set_status_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_status_p", utc_zb_read_attr_status_record_get_status_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_status_n", utc_zb_read_attr_status_record_get_status_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_type_p", utc_zb_read_attr_status_record_get_status_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_type_n", utc_zb_read_attr_status_record_set_type_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_type_p", utc_zb_read_attr_status_record_get_type_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_type_n", utc_zb_read_attr_status_record_get_type_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_value_p", utc_zb_read_attr_status_record_set_value_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_value_n", utc_zb_read_attr_status_record_set_value_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_value_p", utc_zb_read_attr_status_record_get_value_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_value_n", utc_zb_read_attr_status_record_get_value_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD */
+
+#ifdef SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS
+ /* Zigbee ZCL - Write Attribute Status Record Getter/Setter */
+ {"utc_zb_write_attr_record_create_p", utc_zb_write_attr_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_create_n", utc_zb_write_attr_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_destroy_p", utc_zb_write_attr_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_destroy_n", utc_zb_write_attr_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_id_p", utc_zb_write_attr_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_id_n", utc_zb_write_attr_record_set_id_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_value_p", utc_zb_write_attr_record_set_value_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_value_n", utc_zb_write_attr_record_set_value_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_create_p", utc_zb_write_attr_status_create_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_create_n", utc_zb_write_attr_status_create_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_destroy_p", utc_zb_write_attr_status_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_destroy_n", utc_zb_write_attr_status_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_status_p", utc_zb_write_attr_status_set_status_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_status_n", utc_zb_write_attr_status_set_status_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_status_p", utc_zb_write_attr_status_get_status_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_status_n", utc_zb_write_attr_status_get_status_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_id_p", utc_zb_write_attr_status_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_id_n", utc_zb_write_attr_status_set_id_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_id_p", utc_zb_write_attr_status_get_id_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_id_n", utc_zb_write_attr_status_get_id_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_REPORT
+ /* Zigbee ZCL - Report Configuration Record Getter/Setter */
+ {"utc_zb_report_config_record_create_p", utc_zb_report_config_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_create_n", utc_zb_report_config_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_clone_p", utc_zb_report_config_record_clone_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_clone_n", utc_zb_report_config_record_clone_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_destroy_p", utc_zb_report_config_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_destroy_n", utc_zb_report_config_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_dir_p", utc_zb_report_config_record_set_dir_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_dir_n", utc_zb_report_config_record_set_dir_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_dir_p", utc_zb_report_config_record_get_dir_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_dir_n", utc_zb_report_config_record_get_dir_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_id_p", utc_zb_report_config_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_id_n", utc_zb_report_config_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_id_p", utc_zb_report_config_record_get_id_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_id_n", utc_zb_report_config_record_get_id_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_min_interval_p", utc_zb_report_config_record_set_min_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_min_interval_n", utc_zb_report_config_record_set_min_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_min_interval_p", utc_zb_report_config_record_get_min_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_min_interval_n", utc_zb_report_config_record_get_min_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_max_interval_p", utc_zb_report_config_record_set_max_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_max_interval_n", utc_zb_report_config_record_set_max_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_max_interval_p", utc_zb_report_config_record_get_max_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_max_interval_n", utc_zb_report_config_record_get_max_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_timeout_p", utc_zb_report_config_record_set_timeout_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_timeout_n", utc_zb_report_config_record_set_timeout_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_timeout_p", utc_zb_report_config_record_get_timeout_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_timeout_n", utc_zb_report_config_record_get_timeout_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_change_p", utc_zb_report_config_record_set_change_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_change_n", utc_zb_report_config_record_set_change_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_change_p", utc_zb_report_config_record_get_change_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_change_n", utc_zb_report_config_record_get_change_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_REPORT */
+
+#ifdef SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD
+ /* Zigbee ZCL - Read Report Configuration Record Getter/Setter */
+ {"utc_zb_read_report_config_record_create_p", utc_zb_read_report_config_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_create_n", utc_zb_read_report_config_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_destroy_p", utc_zb_read_report_config_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_destroy_n", utc_zb_read_report_config_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_dir_p", utc_zb_read_report_config_record_set_dir_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_dir_n", utc_zb_read_report_config_record_set_dir_n, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_id_p", utc_zb_read_report_config_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_id_n", utc_zb_read_report_config_record_set_id_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD
+ /* Zigbee ZCL - Report Configuration Response Getter/Setter */
+ {"utc_zb_report_config_response_record_clone_n", utc_zb_report_config_response_record_clone_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_destroy_n", utc_zb_report_config_response_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_get_status_n", utc_zb_report_config_response_record_get_status_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_get_dir_n", utc_zb_report_config_response_record_get_dir_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_get_id_n", utc_zb_report_config_response_record_get_id_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD */
+
+ {NULL, NULL}
+};
+
+#endif // __TCT_ZIGBEE_NATIVE_H__
--- /dev/null
+//
+// Copyright (c) 2014 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef __TCT_ZIGBEE_NATIVE_H__
+#define __TCT_ZIGBEE_NATIVE_H__
+
+#include "testcase.h"
+#include "tct_common.h"
+#include "utc-zigbee.h"
+
+extern void utc_startup(void);
+extern void utc_cleanup(void);
+extern void utc_zdo_simple_desc_startup(void);
+extern void utc_zdo_simple_desc_cleanup(void);
+extern void utc_zdo_power_desc_startup(void);
+extern void utc_zdo_power_desc_cleanup(void);
+extern void utc_zdo_node_desc_startup(void);
+extern void utc_zdo_node_desc_cleanup(void);
+extern void utc_zdo_getter_startup(void);
+extern void utc_zdo_getter_cleanup(void);
+
+/* Zigbee APIs */
+extern int utc_zb_create_p(void);
+extern int utc_zb_create_n(void);
+extern int utc_zb_destroy_p(void);
+extern int utc_zb_destroy_n(void);
+extern int utc_zb_ev_get_enable_status_n(void);
+extern int utc_zb_ev_get_form_network_panid_n(void);
+extern int utc_zb_ev_get_join_count_n(void);
+extern int utc_zb_ev_get_join_ep_n(void);
+extern int utc_zb_ev_get_child_left_status_n(void);
+extern int utc_zb_ev_get_global_default_rsp_ep_n(void);
+extern int utc_zb_ev_get_global_default_rsp_cluster_id_n(void);
+extern int utc_zb_ev_get_global_default_rsp_command_id_n(void);
+extern int utc_zb_ev_get_global_default_rsp_status_n(void);
+extern int utc_zb_ev_get_enroll_request_src_ep_n(void);
+extern int utc_zb_ev_get_enroll_request_zone_type_n(void);
+extern int utc_zb_ev_get_enroll_request_mfg_code_n(void);
+extern int utc_zb_ev_get_ias_noti_src_ep_n(void);
+extern int utc_zb_ev_get_ias_noti_zone_status_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_src_ep_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_status_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_zone_status_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_delay_n(void);
+extern int utc_zb_ev_get_ias_ext_noti_zone_id_n(void);
+extern int utc_zb_set_event_cb_p(void);
+extern int utc_zb_set_event_cb_n(void);
+extern int utc_zb_form_network_p(void);
+extern int utc_zb_form_network_n(void);
+extern int utc_zb_disable_network_p(void);
+extern int utc_zb_disable_network_n(void);
+extern int utc_zb_leave_device_p(void);
+extern int utc_zb_leave_device_n(void);
+extern int utc_zb_permit_join_p(void);
+extern int utc_zb_permit_join_n(void);
+extern int utc_zb_get_controller_mac_address_p(void);
+extern int utc_zb_get_controller_mac_address_n(void);
+extern int utc_zb_get_network_info_p(void);
+extern int utc_zb_get_network_info_n(void);
+
+extern int utc_zb_end_dev_get_ep_list_p(void);
+extern int utc_zb_end_dev_get_ep_list_n(void);
+extern int utc_zb_end_dev_get_cluster_list_p(void);
+extern int utc_zb_end_dev_get_cluster_list_n(void);
+extern int utc_zb_end_dev_get_end_dev_info_list_p(void);
+extern int utc_zb_end_dev_get_end_dev_info_list_n1(void);
+extern int utc_zb_end_dev_get_end_dev_info_list_n2(void);
+extern int utc_zb_end_dev_info_create_p(void);
+extern int utc_zb_end_dev_info_create_n(void);
+extern int utc_zb_end_dev_info_clone_p(void);
+extern int utc_zb_end_dev_info_clone_n(void);
+extern int utc_zb_end_dev_info_destroy_p(void);
+extern int utc_zb_end_dev_info_destroy_n(void);
+extern int utc_zb_end_dev_info_list_free_p(void);
+extern int utc_zb_end_dev_info_list_free_n(void);
+extern int utc_zb_end_dev_info_get_network_address_n(void);
+extern int utc_zb_end_dev_info_get_ieee_address_n(void);
+extern int utc_zb_end_dev_info_get_num_of_ep_n(void);
+extern int utc_zb_end_dev_info_get_ep_list_n(void);
+extern int utc_zb_end_dev_info_get_mac_capability_n(void);
+extern int utc_zb_end_dev_info_get_alternative_pan_coordinator_n(void);
+extern int utc_zb_end_dev_info_get_device_id_n(void);
+extern int utc_zb_end_dev_info_get_profile_id_n(void);
+extern int utc_zb_end_dev_info_get_power_source_n(void);
+extern int utc_zb_end_dev_info_get_security_capabilty_n(void);
+
+/* Zigbee ZDO */
+
+#ifdef SUPPORT_SIMPLE_DESCRIPTION
+extern int utc_zb_simple_desc_create_p(void);
+extern int utc_zb_simple_desc_create_n(void);
+extern int utc_zb_simple_desc_destroy_p(void);
+extern int utc_zb_simple_desc_destroy_n(void);
+extern int utc_zb_simple_desc_clone_p(void);
+extern int utc_zb_simple_desc_clone_n(void);
+extern int utc_zb_simple_desc_get_ep_p(void);
+extern int utc_zb_simple_desc_get_ep_n(void);
+extern int utc_zb_simple_desc_set_ep_p(void);
+extern int utc_zb_simple_desc_set_ep_n(void);
+extern int utc_zb_simple_desc_get_profile_id_p(void);
+extern int utc_zb_simple_desc_get_profile_id_n(void);
+extern int utc_zb_simple_desc_set_profile_id_p(void);
+extern int utc_zb_simple_desc_set_profile_id_n(void);
+extern int utc_zb_simple_desc_get_device_id_p(void);
+extern int utc_zb_simple_desc_get_device_id_n(void);
+extern int utc_zb_simple_desc_set_device_id_p(void);
+extern int utc_zb_simple_desc_set_device_id_n(void);
+extern int utc_zb_simple_desc_get_device_ver_p(void);
+extern int utc_zb_simple_desc_get_device_ver_n(void);
+extern int utc_zb_simple_desc_set_device_ver_p(void);
+extern int utc_zb_simple_desc_set_device_ver_n(void);
+extern int utc_zb_simple_desc_get_num_of_in_clusters_p(void);
+extern int utc_zb_simple_desc_get_num_of_in_clusters_n(void);
+extern int utc_zb_simple_desc_set_num_of_in_clusters_p(void);
+extern int utc_zb_simple_desc_set_num_of_in_clusters_n(void);
+extern int utc_zb_simple_desc_get_num_of_out_clusters_p(void);
+extern int utc_zb_simple_desc_get_num_of_out_clusters_n(void);
+extern int utc_zb_simple_desc_set_num_of_out_clusters_p(void);
+extern int utc_zb_simple_desc_set_num_of_out_clusters_n(void);
+extern int utc_zb_simple_desc_get_in_clusters_p(void);
+extern int utc_zb_simple_desc_get_in_clusters_n(void);
+extern int utc_zb_simple_desc_set_in_clusters_p(void);
+extern int utc_zb_simple_desc_set_in_clusters_n(void);
+extern int utc_zb_simple_desc_get_out_clusters_p(void);
+extern int utc_zb_simple_desc_get_out_clusters_n(void);
+extern int utc_zb_simple_desc_set_out_clusters_p(void);
+extern int utc_zb_simple_desc_set_out_clusters_n(void);
+#endif /* SUPPORT_SIMPLE_DESCRIPTION */
+
+#ifdef SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER
+/* Zigbee ZDO Device Discovery */
+extern int utc_zb_zdo_nwk_addr_req_p(void);
+extern int utc_zb_zdo_nwk_addr_req_n(void);
+extern int utc_zb_zdo_ieee_addr_req_p(void);
+extern int utc_zb_zdo_ieee_addr_req_n(void);
+extern int utc_zb_zdo_active_ep_p(void);
+extern int utc_zb_zdo_active_ep_n(void);
+extern int utc_zb_zdo_simple_desc_req_p(void);
+extern int utc_zb_zdo_simple_desc_req_n(void);
+#endif /* SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER */
+
+#ifdef SUPPORT_ZCL_GLOBAL_COMMNAD_CLUSTER
+/* Global Command */
+extern int utc_zb_zcl_global_attr_read_p(void);
+extern int utc_zb_zcl_global_attr_read_n(void);
+extern int utc_zb_zcl_global_attr_write_p(void);
+extern int utc_zb_zcl_global_attr_write_n(void);
+extern int utc_zb_zcl_global_attr_write_undivided_p(void);
+extern int utc_zb_zcl_global_attr_write_undivided_n(void);
+extern int utc_zb_zcl_global_attr_write_no_rsp_p(void);
+extern int utc_zb_zcl_global_attr_write_no_rsp_n(void);
+extern int utc_zb_zcl_global_config_report_write_p(void);
+extern int utc_zb_zcl_global_config_report_write_n(void);
+extern int utc_zb_zcl_global_config_report_read_p(void);
+extern int utc_zb_zcl_global_config_report_read_n(void);
+extern int utc_zb_zcl_global_config_report_read_n(void);
+#endif /* SUPPORT_ZCL_GLOBAL_COMMNAD_CLUSTER */
+
+#ifdef SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD
+extern int utc_zb_read_attr_status_record_create_p(void);
+extern int utc_zb_read_attr_status_record_create_n(void);
+extern int utc_zb_read_attr_status_record_clone_p(void);
+extern int utc_zb_read_attr_status_record_clone_n(void);
+extern int utc_zb_read_attr_status_record_destroy_p(void);
+extern int utc_zb_read_attr_status_record_destroy_n(void);
+extern int utc_zb_read_attr_status_record_set_id_p(void);
+extern int utc_zb_read_attr_status_record_set_id_n(void);
+extern int utc_zb_read_attr_status_record_get_id_p(void);
+extern int utc_zb_read_attr_status_record_get_id_n(void);
+extern int utc_zb_read_attr_status_record_set_status_p(void);
+extern int utc_zb_read_attr_status_record_set_status_n(void);
+extern int utc_zb_read_attr_status_record_get_status_p(void);
+extern int utc_zb_read_attr_status_record_get_status_n(void);
+extern int utc_zb_read_attr_status_record_set_type_p(void);
+extern int utc_zb_read_attr_status_record_set_type_n(void);
+extern int utc_zb_read_attr_status_record_get_type_p(void);
+extern int utc_zb_read_attr_status_record_get_type_n(void);
+extern int utc_zb_read_attr_status_record_set_value_p(void);
+extern int utc_zb_read_attr_status_record_set_value_n(void);
+extern int utc_zb_read_attr_status_record_get_value_p(void);
+extern int utc_zb_read_attr_status_record_get_value_n(void);
+#endif /* SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD */
+
+#ifdef SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS
+extern int utc_zb_write_attr_record_create_p(void);
+extern int utc_zb_write_attr_record_create_n(void);
+extern int utc_zb_write_attr_record_destroy_p(void);
+extern int utc_zb_write_attr_record_destroy_n(void);
+extern int utc_zb_write_attr_record_set_id_p(void);
+extern int utc_zb_write_attr_record_set_id_n(void);
+extern int utc_zb_write_attr_record_set_value_p(void);
+extern int utc_zb_write_attr_record_set_value_n(void);
+extern int utc_zb_write_attr_status_create_p(void);
+extern int utc_zb_write_attr_status_create_n(void);
+extern int utc_zb_write_attr_status_destroy_p(void);
+extern int utc_zb_write_attr_status_destroy_n(void);
+extern int utc_zb_write_attr_status_set_status_p(void);
+extern int utc_zb_write_attr_status_set_status_n(void);
+extern int utc_zb_write_attr_status_get_status_p(void);
+extern int utc_zb_write_attr_status_get_status_n(void);
+extern int utc_zb_write_attr_status_set_id_p(void);
+extern int utc_zb_write_attr_status_set_id_n(void);
+extern int utc_zb_write_attr_status_get_id_p(void);
+extern int utc_zb_write_attr_status_get_id_n(void);
+#endif /* SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_REPORT
+extern int utc_zb_report_config_record_create_p(void);
+extern int utc_zb_report_config_record_create_n(void);
+extern int utc_zb_report_config_record_clone_p(void);
+extern int utc_zb_report_config_record_clone_n(void);
+extern int utc_zb_report_config_record_destroy_p(void);
+extern int utc_zb_report_config_record_destroy_n(void);
+extern int utc_zb_report_config_record_set_dir_p(void);
+extern int utc_zb_report_config_record_set_dir_n(void);
+extern int utc_zb_report_config_record_get_dir_p(void);
+extern int utc_zb_report_config_record_get_dir_n(void);
+extern int utc_zb_report_config_record_set_id_p(void);
+extern int utc_zb_report_config_record_set_id_n(void);
+extern int utc_zb_report_config_record_get_id_p(void);
+extern int utc_zb_report_config_record_get_id_n(void);
+extern int utc_zb_report_config_record_set_min_interval_p(void);
+extern int utc_zb_report_config_record_set_min_interval_n(void);
+extern int utc_zb_report_config_record_get_min_interval_p(void);
+extern int utc_zb_report_config_record_get_min_interval_n(void);
+extern int utc_zb_report_config_record_set_max_interval_p(void);
+extern int utc_zb_report_config_record_set_max_interval_n(void);
+extern int utc_zb_report_config_record_get_max_interval_p(void);
+extern int utc_zb_report_config_record_get_max_interval_n(void);
+extern int utc_zb_report_config_record_set_timeout_p(void);
+extern int utc_zb_report_config_record_set_timeout_n(void);
+extern int utc_zb_report_config_record_get_timeout_p(void);
+extern int utc_zb_report_config_record_get_timeout_n(void);
+extern int utc_zb_report_config_record_set_change_p(void);
+extern int utc_zb_report_config_record_set_change_n(void);
+extern int utc_zb_report_config_record_get_change_p(void);
+extern int utc_zb_report_config_record_get_change_n(void);
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_REPORT */
+
+#ifdef SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD
+extern int utc_zb_read_report_config_record_create_p(void);
+extern int utc_zb_read_report_config_record_create_n(void);
+extern int utc_zb_read_report_config_record_destroy_p(void);
+extern int utc_zb_read_report_config_record_destroy_n(void);
+extern int utc_zb_read_report_config_record_set_dir_p(void);
+extern int utc_zb_read_report_config_record_set_dir_n(void);
+extern int utc_zb_read_report_config_record_set_id_p(void);
+extern int utc_zb_read_report_config_record_set_id_n(void);
+#endif /* SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD
+extern int utc_zb_report_config_response_record_clone_n(void);
+extern int utc_zb_report_config_response_record_destroy_n(void);
+extern int utc_zb_report_config_response_record_get_status_n(void);
+extern int utc_zb_report_config_response_record_get_dir_n(void);
+extern int utc_zb_report_config_response_record_get_id_n(void);
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD */
+
+#ifdef SUPPORT_ZCL_IAS_ZONE_CLUSTER
+/* IAS Zone Cluster */
+extern int utc_zb_zcl_zone_enroll_response_p(void);
+extern int utc_zb_zcl_zone_enroll_response_n(void);
+#endif /* SUPPORT_ZCL_IAS_ZONE_CLUSTER */
+
+#ifdef SUPPORT_ZCL_ON_OFF_CLUSTER
+/* On/Off Cluster */
+extern int utc_zb_zcl_on_off_control_p(void);
+extern int utc_zb_zcl_on_off_control_n(void);
+#endif /* SUPPORT_ZCL_ON_OFF_CLUSTER */
+
+testcase tc_array[] = {
+ /* Zigbee APIs */
+ {"utc_zb_create_p", utc_zb_create_p, utc_startup, utc_cleanup},
+ {"utc_zb_create_n", utc_zb_create_n, utc_startup, utc_cleanup},
+ {"utc_zb_destroy_p", utc_zb_destroy_p, utc_startup, utc_cleanup},
+ {"utc_zb_destroy_n", utc_zb_destroy_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_enable_status_n", utc_zb_ev_get_enable_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_form_network_panid_n", utc_zb_ev_get_form_network_panid_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_join_count_n", utc_zb_ev_get_join_count_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_join_ep_n", utc_zb_ev_get_join_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_child_left_status_n", utc_zb_ev_get_child_left_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_ep_n", utc_zb_ev_get_global_default_rsp_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_cluster_id_n", utc_zb_ev_get_global_default_rsp_cluster_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_command_id_n", utc_zb_ev_get_global_default_rsp_command_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_global_default_rsp_status_n", utc_zb_ev_get_global_default_rsp_status_n, utc_startup, utc_cleanup},
+
+ {"utc_zb_ev_get_enroll_request_src_ep_n", utc_zb_ev_get_enroll_request_src_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_enroll_request_zone_type_n", utc_zb_ev_get_enroll_request_zone_type_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_enroll_request_mfg_code_n", utc_zb_ev_get_enroll_request_mfg_code_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_noti_src_ep_n", utc_zb_ev_get_ias_noti_src_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_noti_zone_status_n", utc_zb_ev_get_ias_noti_zone_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_src_ep_n", utc_zb_ev_get_ias_ext_noti_src_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_status_n", utc_zb_ev_get_ias_ext_noti_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_zone_status_n", utc_zb_ev_get_ias_ext_noti_zone_status_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_delay_n", utc_zb_ev_get_ias_ext_noti_delay_n, utc_startup, utc_cleanup},
+ {"utc_zb_ev_get_ias_ext_noti_zone_id_n", utc_zb_ev_get_ias_ext_noti_zone_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_set_event_cb_p", utc_zb_set_event_cb_p, utc_startup, utc_cleanup},
+ {"utc_zb_set_event_cb_n", utc_zb_set_event_cb_n, utc_startup, utc_cleanup},
+ {"utc_zb_form_network_p", utc_zb_form_network_p, utc_startup, utc_cleanup},
+ {"utc_zb_form_network_n", utc_zb_form_network_n, utc_startup, utc_cleanup},
+ {"utc_zb_disable_network_p", utc_zb_disable_network_p, utc_startup, utc_cleanup},
+ {"utc_zb_disable_network_n", utc_zb_disable_network_n, utc_startup, utc_cleanup},
+ {"utc_zb_leave_device_p", utc_zb_leave_device_p, utc_startup, utc_cleanup},
+ {"utc_zb_leave_device_n", utc_zb_leave_device_n, utc_startup, utc_cleanup},
+ {"utc_zb_permit_join_p", utc_zb_permit_join_p, utc_startup, utc_cleanup},
+ {"utc_zb_permit_join_n", utc_zb_permit_join_n, utc_startup, utc_cleanup},
+ {"utc_zb_get_controller_mac_address_p", utc_zb_get_controller_mac_address_p, utc_startup, utc_cleanup},
+ {"utc_zb_get_controller_mac_address_n", utc_zb_get_controller_mac_address_n, utc_startup, utc_cleanup},
+ {"utc_zb_get_network_info_p", utc_zb_get_network_info_p, utc_startup, utc_cleanup},
+ {"utc_zb_get_network_info_n", utc_zb_get_network_info_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_ep_list_p", utc_zb_end_dev_get_ep_list_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_ep_list_n", utc_zb_end_dev_get_ep_list_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_cluster_list_p", utc_zb_end_dev_get_cluster_list_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_cluster_list_n", utc_zb_end_dev_get_cluster_list_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_end_dev_info_list_p", utc_zb_end_dev_get_end_dev_info_list_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_end_dev_info_list_n1", utc_zb_end_dev_get_end_dev_info_list_n1, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_get_end_dev_info_list_n2", utc_zb_end_dev_get_end_dev_info_list_n2, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_list_free_p", utc_zb_end_dev_info_list_free_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_list_free_n", utc_zb_end_dev_info_list_free_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_create_p", utc_zb_end_dev_info_create_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_create_n", utc_zb_end_dev_info_create_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_clone_p", utc_zb_end_dev_info_clone_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_clone_n", utc_zb_end_dev_info_clone_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_destroy_p", utc_zb_end_dev_info_destroy_p, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_destroy_n", utc_zb_end_dev_info_destroy_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_network_address_n", utc_zb_end_dev_info_get_network_address_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_ieee_address_n", utc_zb_end_dev_info_get_ieee_address_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_num_of_ep_n", utc_zb_end_dev_info_get_num_of_ep_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_ep_list_n", utc_zb_end_dev_info_get_ep_list_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_mac_capability_n", utc_zb_end_dev_info_get_mac_capability_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_alternative_pan_coordinator_n", utc_zb_end_dev_info_get_alternative_pan_coordinator_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_device_id_n", utc_zb_end_dev_info_get_device_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_profile_id_n", utc_zb_end_dev_info_get_profile_id_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_power_source_n", utc_zb_end_dev_info_get_power_source_n, utc_startup, utc_cleanup},
+ {"utc_zb_end_dev_info_get_security_capabilty_n", utc_zb_end_dev_info_get_security_capabilty_n, utc_startup, utc_cleanup},
+
+#ifdef SUPPORT_SIMPLE_DESCRIPTION
+ /* Zigbee ZDO - Simple Descripter Getter/Setter */
+ {"utc_zb_simple_desc_create_p", utc_zb_simple_desc_create_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_create_n", utc_zb_simple_desc_create_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_destroy_p", utc_zb_simple_desc_destroy_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_destroy_n", utc_zb_simple_desc_destroy_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_clone_p", utc_zb_simple_desc_clone_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_clone_n", utc_zb_simple_desc_clone_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_ep_p", utc_zb_simple_desc_get_ep_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_ep_n", utc_zb_simple_desc_get_ep_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_ep_p", utc_zb_simple_desc_set_ep_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_ep_n", utc_zb_simple_desc_set_ep_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_profile_id_p", utc_zb_simple_desc_get_profile_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_profile_id_n", utc_zb_simple_desc_get_profile_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_profile_id_p", utc_zb_simple_desc_set_profile_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_profile_id_n", utc_zb_simple_desc_set_profile_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_id_p", utc_zb_simple_desc_get_device_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_id_n", utc_zb_simple_desc_get_device_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_id_p", utc_zb_simple_desc_set_device_id_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_id_n", utc_zb_simple_desc_set_device_id_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_ver_p", utc_zb_simple_desc_get_device_ver_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_device_ver_n", utc_zb_simple_desc_get_device_ver_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_ver_p", utc_zb_simple_desc_set_device_ver_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_device_ver_n", utc_zb_simple_desc_set_device_ver_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_in_clusters_p", utc_zb_simple_desc_get_num_of_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_in_clusters_n", utc_zb_simple_desc_get_num_of_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_in_clusters_p", utc_zb_simple_desc_set_num_of_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_in_clusters_n", utc_zb_simple_desc_set_num_of_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_out_clusters_p", utc_zb_simple_desc_get_num_of_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_num_of_out_clusters_n", utc_zb_simple_desc_get_num_of_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_out_clusters_p", utc_zb_simple_desc_set_num_of_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_num_of_out_clusters_n", utc_zb_simple_desc_set_num_of_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_in_clusters_p", utc_zb_simple_desc_get_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_in_clusters_n", utc_zb_simple_desc_get_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_in_clusters_p", utc_zb_simple_desc_set_in_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_in_clusters_n", utc_zb_simple_desc_set_in_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_out_clusters_p", utc_zb_simple_desc_get_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_get_out_clusters_n", utc_zb_simple_desc_get_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_out_clusters_p", utc_zb_simple_desc_set_out_clusters_p, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+ {"utc_zb_simple_desc_set_out_clusters_n", utc_zb_simple_desc_set_out_clusters_n, utc_zdo_simple_desc_startup, utc_zdo_simple_desc_cleanup},
+#endif /* SUPPORT_SIMPLE_DESCRIPTION*/
+
+#ifdef SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER
+ /* Zigbee ZDO - Device Discovery */
+ {"utc_zb_zdo_nwk_addr_req_p", utc_zb_zdo_nwk_addr_req_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_nwk_addr_req_n", utc_zb_zdo_nwk_addr_req_n, utc_startup, utc_startup},
+ {"utc_zb_zdo_ieee_addr_req_p", utc_zb_zdo_ieee_addr_req_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_ieee_addr_req_n", utc_zb_zdo_ieee_addr_req_n, utc_startup, utc_startup},
+ {"utc_zb_zdo_active_ep_p", utc_zb_zdo_active_ep_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_active_ep_n", utc_zb_zdo_active_ep_n, utc_startup, utc_startup},
+ {"utc_zb_zdo_simple_desc_req_p", utc_zb_zdo_simple_desc_req_p, utc_startup, utc_startup},
+ {"utc_zb_zdo_simple_desc_req_n", utc_zb_zdo_simple_desc_req_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER */
+
+#if defined(SUPPORT_ZCL_GLOBAL_COMMNAD_CLUSTER)
+ /* Zigbee ZCL - Global Cluster */
+ {"utc_zb_zcl_global_attr_read_p", utc_zb_zcl_global_attr_read_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_read_n", utc_zb_zcl_global_attr_read_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_p", utc_zb_zcl_global_attr_write_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_n", utc_zb_zcl_global_attr_write_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_undivided_p", utc_zb_zcl_global_attr_write_undivided_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_undivided_n", utc_zb_zcl_global_attr_write_undivided_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_no_rsp_p", utc_zb_zcl_global_attr_write_no_rsp_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_attr_write_no_rsp_n", utc_zb_zcl_global_attr_write_no_rsp_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_write_p", utc_zb_zcl_global_config_report_write_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_write_n", utc_zb_zcl_global_config_report_write_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_read_p", utc_zb_zcl_global_config_report_write_n, utc_startup, utc_startup},
+ {"utc_zb_zcl_global_config_report_read_n", utc_zb_zcl_global_config_report_read_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_GLOBAL_COMMAND_CLUSTER */
+
+#ifdef SUPPORT_ZCL_IAS_ZONE_CLUSTER
+ /* Zigbee ZCL - IAS Zone Cluster */
+ {"utc_zb_zcl_zone_enroll_response_p", utc_zb_zcl_zone_enroll_response_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_zone_enroll_response_n", utc_zb_zcl_zone_enroll_response_p, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_IAS_ZONE_CLUSTER */
+
+#ifdef SUPPORT_ZCL_ON_OFF_CLUSTER
+ /* Zigbee ZCL - On/Off Cluster */
+ {"utc_zb_zcl_on_off_control_p", utc_zb_zcl_on_off_control_p, utc_startup, utc_startup},
+ {"utc_zb_zcl_on_off_control_n", utc_zb_zcl_on_off_control_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_ON_OFF_CLUSTER */
+
+#ifdef SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD
+ /* Zigbee ZCL - Read Attribute Status Record Getter/Setter */
+ {"utc_zb_read_attr_status_record_create_p", utc_zb_read_attr_status_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_create_n", utc_zb_read_attr_status_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_clone_p", utc_zb_read_attr_status_record_clone_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_clone_n", utc_zb_read_attr_status_record_clone_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_destroy_p", utc_zb_read_attr_status_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_destroy_n", utc_zb_read_attr_status_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_id_p", utc_zb_read_attr_status_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_id_n", utc_zb_read_attr_status_record_set_id_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_id_p", utc_zb_read_attr_status_record_get_id_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_id_n", utc_zb_read_attr_status_record_get_id_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_status_p", utc_zb_read_attr_status_record_set_status_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_status_n", utc_zb_read_attr_status_record_set_status_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_status_p", utc_zb_read_attr_status_record_get_status_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_status_n", utc_zb_read_attr_status_record_get_status_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_type_p", utc_zb_read_attr_status_record_get_status_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_type_n", utc_zb_read_attr_status_record_set_type_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_type_p", utc_zb_read_attr_status_record_get_type_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_type_n", utc_zb_read_attr_status_record_get_type_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_value_p", utc_zb_read_attr_status_record_set_value_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_set_value_n", utc_zb_read_attr_status_record_set_value_n, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_value_p", utc_zb_read_attr_status_record_get_value_p, utc_startup, utc_startup},
+ {"utc_zb_read_attr_status_record_get_value_n", utc_zb_read_attr_status_record_get_value_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD */
+
+#ifdef SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS
+ /* Zigbee ZCL - Write Attribute Status Record Getter/Setter */
+ {"utc_zb_write_attr_record_create_p", utc_zb_write_attr_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_create_n", utc_zb_write_attr_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_destroy_p", utc_zb_write_attr_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_destroy_n", utc_zb_write_attr_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_id_p", utc_zb_write_attr_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_id_n", utc_zb_write_attr_record_set_id_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_value_p", utc_zb_write_attr_record_set_value_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_record_set_value_n", utc_zb_write_attr_record_set_value_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_create_p", utc_zb_write_attr_status_create_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_create_n", utc_zb_write_attr_status_create_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_destroy_p", utc_zb_write_attr_status_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_destroy_n", utc_zb_write_attr_status_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_status_p", utc_zb_write_attr_status_set_status_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_status_n", utc_zb_write_attr_status_set_status_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_status_p", utc_zb_write_attr_status_get_status_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_status_n", utc_zb_write_attr_status_get_status_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_id_p", utc_zb_write_attr_status_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_set_id_n", utc_zb_write_attr_status_set_id_n, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_id_p", utc_zb_write_attr_status_get_id_p, utc_startup, utc_startup},
+ {"utc_zb_write_attr_status_get_id_n", utc_zb_write_attr_status_get_id_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_REPORT
+ /* Zigbee ZCL - Report Configuration Record Getter/Setter */
+ {"utc_zb_report_config_record_create_p", utc_zb_report_config_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_create_n", utc_zb_report_config_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_clone_p", utc_zb_report_config_record_clone_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_clone_n", utc_zb_report_config_record_clone_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_destroy_p", utc_zb_report_config_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_destroy_n", utc_zb_report_config_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_dir_p", utc_zb_report_config_record_set_dir_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_dir_n", utc_zb_report_config_record_set_dir_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_dir_p", utc_zb_report_config_record_get_dir_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_dir_n", utc_zb_report_config_record_get_dir_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_id_p", utc_zb_report_config_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_id_n", utc_zb_report_config_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_id_p", utc_zb_report_config_record_get_id_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_id_n", utc_zb_report_config_record_get_id_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_min_interval_p", utc_zb_report_config_record_set_min_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_min_interval_n", utc_zb_report_config_record_set_min_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_min_interval_p", utc_zb_report_config_record_get_min_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_min_interval_n", utc_zb_report_config_record_get_min_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_max_interval_p", utc_zb_report_config_record_set_max_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_max_interval_n", utc_zb_report_config_record_set_max_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_max_interval_p", utc_zb_report_config_record_get_max_interval_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_max_interval_n", utc_zb_report_config_record_get_max_interval_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_timeout_p", utc_zb_report_config_record_set_timeout_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_timeout_n", utc_zb_report_config_record_set_timeout_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_timeout_p", utc_zb_report_config_record_get_timeout_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_timeout_n", utc_zb_report_config_record_get_timeout_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_change_p", utc_zb_report_config_record_set_change_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_set_change_n", utc_zb_report_config_record_set_change_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_change_p", utc_zb_report_config_record_get_change_p, utc_startup, utc_startup},
+ {"utc_zb_report_config_record_get_change_n", utc_zb_report_config_record_get_change_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_REPORT */
+
+#ifdef SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD
+ /* Zigbee ZCL - Read Report Configuration Record Getter/Setter */
+ {"utc_zb_read_report_config_record_create_p", utc_zb_read_report_config_record_create_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_create_n", utc_zb_read_report_config_record_create_n, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_destroy_p", utc_zb_read_report_config_record_destroy_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_destroy_n", utc_zb_read_report_config_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_dir_p", utc_zb_read_report_config_record_set_dir_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_dir_n", utc_zb_read_report_config_record_set_dir_n, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_id_p", utc_zb_read_report_config_record_set_id_p, utc_startup, utc_startup},
+ {"utc_zb_read_report_config_record_set_id_n", utc_zb_read_report_config_record_set_id_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD */
+
+#ifdef SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD
+ /* Zigbee ZCL - Report Configuration Response Getter/Setter */
+ {"utc_zb_report_config_response_record_clone_n", utc_zb_report_config_response_record_clone_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_destroy_n", utc_zb_report_config_response_record_destroy_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_get_status_n", utc_zb_report_config_response_record_get_status_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_get_dir_n", utc_zb_report_config_response_record_get_dir_n, utc_startup, utc_startup},
+ {"utc_zb_report_config_response_record_get_id_n", utc_zb_report_config_response_record_get_id_n, utc_startup, utc_startup},
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD */
+
+ {NULL, NULL}
+};
+
+#endif // __TCT_ZIGBEE_NATIVE_H__
--- /dev/null
+//
+// Copyright (c) 2014 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#ifndef _ZIGBEE_UTC_COMMON_H_
+#define _ZIGBEE_UTC_COMMON_H_
+
+#include <tct_common.h>
+#include <system_info.h>
+#include <dlog.h>
+
+#include <zigbee.h>
+
+FILE *g_fpLog;
+
+#define LOG(...) {\
+ g_fpLog = fopen(ERR_UTC_LOG, "a");\
+ fprintf(g_fpLog, __VA_ARGS__);\
+ fclose(g_fpLog);\
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] %s", __FILE__, __LINE__, __VA_ARGS__);\
+}
+
+#define PRINT_RETURN(api, ret) {\
+ FPRINTF("[%s:%d] %s ret = %s\\n",\
+ __FILE__, __LINE__, api, zigbee_error_to_string(ret));\
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] %s ret = %s",\
+ __FILE__, __LINE__, api, zigbee_error_to_string(ret));\
+}
+
+#define PRINT_RETURN1(api, file, line, ret) {\
+ FPRINTF("[%s:%d] %s ret = %s\\n",\
+ file, line, api, zigbee_error_to_string(ret));\
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] %s ret = %s",\
+ file, line, api, zigbee_error_to_string(ret));\
+}
+
+void utc_startup(void);
+void utc_cleanup(void);
+int check_result_p(const char *api_name, const char *file_name, int line, int ret);
+int check_result_n(const char *api_name, const char *file_name, int line, int ret);
+
+const char* zb_zcl_get_status_str(zb_zcl_status_e status);
+int zb_zcl_get_analog_or_discret(zb_zcl_data_type_e type);
+int zb_zcl_get_data_size(zb_zcl_data_type_e type);
+const char* zb_zcl_get_data_type_str(zb_zcl_data_type_e type);
+const char* zb_zcl_get_cluster_id_str(zb_cluster_id clusterid);
+
+
+#endif /* _ZIGBEE_UTC_COMMON_H_ */
--- /dev/null
+//
+// Copyright (c) 2014 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#include "assert.h"
+#include "utc-zigbee-common.h"
+
+extern bool g_feature;
+extern zb_zigbee_h handle;
+static zb_nwk_addr ha_addr16 = 0x1234;
+static zb_nwk_addr zll_addr16 = 0x5678;
+static zb_end_point zdo_ep = 0;
+static zb_end_point ha_ep = 1;
+static zb_end_point zll_ep = 2;
+
+static void _zb_zcl_global_attr_read_cb(
+ zb_nwk_addr addr16,
+ zb_end_point ep,
+ zb_cluster_id clusterid,
+ zb_zcl_read_attr_status_record_h* records,
+ int count,
+ void *user_data)
+{
+ int i;
+ int ret;
+ int len_of_val;
+
+ zb_attribute_id id;
+ zb_zcl_data_type_e type;
+ zb_zcl_status_e status;
+ unsigned char *buf = NULL;
+
+ LOG("_zb_zcl_global_attr_read_cb()");
+
+ if (NULL == records || 0 == count) {
+ LOG("Invalid records info");
+ LOG("records_info : [%p]", records);
+ return;
+ }
+
+ LOG(" Cluster ID : 0x%04X (%s)", clusterid,
+ zb_zcl_get_cluster_id_str(clusterid));
+ LOG(" Node ID : 0x%04X", addr16);
+ LOG(" End-Point : 0x%02X", ep);
+ LOG(" Rec. Count : %d", count);
+
+ for (i = 0; i < count; i++) {
+
+ if (records && *records) {
+ ret = zb_read_attr_status_record_get_id(records[i], &id);
+ if (ZIGBEE_ERROR_NONE == ret)
+ LOG(" Attribute ID : 0x%04X", id);
+
+ ret = zb_read_attr_status_record_get_type(records[i], &type);
+ if (ZIGBEE_ERROR_NONE == ret)
+ LOG(" Type : 0x%02X", type);
+
+ ret = zb_read_attr_status_record_get_status(records[i], &status);
+ if (ZIGBEE_ERROR_NONE == ret)
+ LOG(" Status : 0x%02X (%s)",
+ status, zb_zcl_get_status_str(status));
+
+ ret = zb_read_attr_status_record_get_value(records[i],
+ &type, &buf, &len_of_val);
+ if (ZIGBEE_ERROR_NONE == ret && buf) {
+ for (int j = 0; j < len_of_val; j++)
+ LOG(" value[%d] = 0x%02x", j, buf[j]);
+ if (buf) {
+ free(buf);
+ buf = NULL;
+ }
+ }
+ }
+ }
+}
+
+static void _zb_zcl_global_attr_write_cb(
+ zb_nwk_addr addr16,
+ zb_end_point ep,
+ zb_cluster_id clusterid,
+ zb_zcl_write_attr_status_record_h* records,
+ int count,
+ void *user_data)
+{
+ int i;
+ zb_attribute_id id = 0;
+ zb_zcl_status_e status;
+
+ LOG("_zb_zcl_global_attr_write_cb()");
+
+ if (NULL == records || 0 == count) {
+ LOG("Invalid records info");
+ return;
+ }
+
+ for (i = 0; i < count; i++) {
+
+ LOG(" Cluster ID : 0x%04X (%s)", clusterid,
+ zb_zcl_get_cluster_id_str(clusterid));
+ LOG(" Node ID : 0x%04X", addr16);
+ LOG(" End-Point : 0x%02X", ep);
+ LOG(" Rec. Count : %d", count);
+
+ if (records) {
+ if (ZIGBEE_ERROR_NONE == zb_write_attr_status_get_id(records[i], &id))
+ LOG(" AttributeId : 0x%04X", id);
+ }
+ if (records) {
+ if (ZIGBEE_ERROR_NONE == zb_write_attr_status_get_status(records[i], &status))
+ LOG(" status : 0x%02X (%s)",
+ status, zb_zcl_get_status_str(status));
+ }
+ }
+}
+
+static void _zb_zcl_global_config_report_write_write_cb(
+ zb_nwk_addr addr16,
+ zb_end_point ep,
+ zb_cluster_id clusterid,
+ zb_zcl_report_config_response_record_h* records,
+ int count,
+ void *user_data)
+{
+ int i;
+ zb_zcl_status_e status;
+
+ LOG("_zb_zcl_global_config_report_write_write_cb()");
+
+ if (NULL == records || 0 == count) {
+ LOG("Invalid records info");
+ return;
+ }
+
+ LOG(" count=%d", count);
+ for (i = 0; i < count; i++) {
+ if (ZIGBEE_ERROR_NONE == zb_report_config_response_record_get_status(
+ records[i], &status))
+ LOG(" [%d] status = 0x%02X (%s)",
+ i, status, zb_zcl_get_status_str(status));
+ }
+}
+
+static void _zb_zcl_global_config_report_write_read_cb(
+ zb_nwk_addr addr16,
+ zb_end_point ep,
+ zb_cluster_id clusterid,
+ zb_zcl_reporting_config_record_h* records,
+ int count,
+ void *user_data)
+{
+ int ret;
+ int len_of_val;
+ int i = 0, j = 0;
+ unsigned char *buf = NULL;
+ unsigned short id, max_i, min_i;
+
+ zb_zcl_data_type_e type;
+
+ LOG("_zb_zcl_global_config_report_write_read_cb()");
+
+ if (NULL == records || 0 == count) {
+ LOG("Invalid records info");
+ return;
+ }
+
+ LOG(" cluster_id 0x%04X (%s)", clusterid,
+ zb_zcl_get_cluster_id_str(clusterid));
+ LOG(" nodeId 0x%04X", addr16);
+ LOG(" endpoint 0x%02X", ep);
+ LOG(" Rec. Count : %d", count);
+
+ while (i < count) {
+ LOG(" records[%d]", i);
+ if (ZIGBEE_ERROR_NONE == zb_report_config_record_get_id(records[i], &id))
+ LOG(" AttributeId 0x%04X", id);
+ if (ZIGBEE_ERROR_NONE == zb_report_config_record_get_type(records[i], &type)) {
+ /*if ((zb_zcl_get_analog_or_discret(type) == DATA_TYPE_ANALOG)) {*/
+ LOG(" type 0x%02X", type);
+ if (ZIGBEE_ERROR_NONE == zb_report_config_record_get_max_interval(
+ records[i], &max_i))
+ LOG(" Max Interval 0x%04X", max_i);
+ if (ZIGBEE_ERROR_NONE == zb_report_config_record_get_min_interval(
+ records[i], &min_i))
+ LOG(" Min Interval 0x%04X", min_i);
+
+ ret = zb_report_config_record_get_change(
+ records[i], &type, &buf, &len_of_val);
+
+ if (ZIGBEE_ERROR_NONE == ret && buf) {
+ LOG(" type = [0x%2X][%s]", type, zb_zcl_get_data_type_str(type));
+ for (j = 0; j < len_of_val; j++)
+ LOG(" change[%d] = 0x%02x", j, buf[j]);
+ }
+
+ if (buf) {
+ free(buf);
+ buf = NULL;
+ }
+ /*
+ } else {
+ LOG("Unsuccessful Attempt\n");
+ }
+ */
+ }
+ i++;
+ }
+}
+
+//& purpose: A purpose of a first positive zb_zcl_global_attr_read.
+int utc_zb_zcl_global_attr_read_p(void)
+{
+ int ret;
+ unsigned short st_cluster_id = ZB_ZCL_CLUSTER_IAS_ZONE;
+ unsigned short st_attribute_id[] = {
+ ZB_ZCL_ATTR_ZONE_STATE,
+ ZB_ZCL_ATTR_ZONE_TYPE,
+ ZB_ZCL_ATTR_ZONE_STATUS,
+ ZB_ZCL_ATTR_IAS_CIE_ADDRESS,
+ ZB_ZCL_ATTR_ZONE_ID
+ };
+ int st_len_of_attr = sizeof(st_attribute_id) / sizeof(st_attribute_id[0]);
+ ret = zb_zcl_global_attr_read(handle, ha_addr16, ha_ep, zll_ep,
+ ZB_ZCL_DEFAULT_RESPONSE_DISABLED, st_cluster_id, st_attribute_id,
+ st_len_of_attr, _zb_zcl_global_attr_read_cb, NULL);
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_zcl_global_attr_read.
+int utc_zb_zcl_global_attr_read_n(void)
+{
+ int ret;
+ unsigned short st_cluster_id = ZB_ZCL_CLUSTER_IAS_ZONE;
+ unsigned short st_attribute_id[] = {
+ ZB_ZCL_ATTR_ZONE_STATE,
+ ZB_ZCL_ATTR_ZONE_TYPE,
+ ZB_ZCL_ATTR_ZONE_STATUS,
+ ZB_ZCL_ATTR_IAS_CIE_ADDRESS,
+ ZB_ZCL_ATTR_ZONE_ID
+ };
+ int st_len_of_attr = sizeof(st_attribute_id) / sizeof(st_attribute_id[0]);
+ /* Error case -> handle = NULL */
+ ret = zb_zcl_global_attr_read(NULL, zll_addr16, ha_ep, zll_ep,
+ ZB_ZCL_DEFAULT_RESPONSE_DISABLED, st_cluster_id, st_attribute_id,
+ st_len_of_attr, _zb_zcl_global_attr_read_cb, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_zcl_global_attr_write.
+int utc_zb_zcl_global_attr_write_p(void)
+{
+ int ret;
+ unsigned char value[] = { 0x02, 0x01};
+ zb_zcl_write_attr_record_h attr = NULL;
+
+ ret = zb_write_attr_record_create(&attr);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_id(attr, ZB_ZCL_ATTR_IDENTIFY_TIME);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_type(attr, ZB_ZCL_UNSIGNED_16_BIT_INTEGER);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_value(attr, ZB_ZCL_UNSIGNED_16_BIT_INTEGER, value,
+ zb_zcl_get_data_size(ZB_ZCL_UNSIGNED_16_BIT_INTEGER));
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_zcl_global_attr_write(handle, ha_addr16, ha_ep, zll_ep,
+ ZB_ZCL_FC_DEFAULT, ZB_ZCL_CLUSTER_IDENTIFY, &attr, 1,
+ _zb_zcl_global_attr_write_cb, NULL);
+ zb_write_attr_record_destroy(attr);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);}
+
+//& purpose: A purpose of a first negative zb_zcl_global_attr_write.
+int utc_zb_zcl_global_attr_write_n(void)
+{
+ int ret;
+ unsigned char value[] = { 0x02, 0x01};
+ zb_zcl_write_attr_record_h attr = NULL;
+ ret = zb_write_attr_record_create(&attr);
+ if (ZIGBEE_ERROR_NONE != ret)
+ return ret;
+ ret = zb_write_attr_record_set_id(attr, ZB_ZCL_ATTR_IDENTIFY_TIME);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_type(attr, ZB_ZCL_UNSIGNED_16_BIT_INTEGER);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_value(attr, ZB_ZCL_UNSIGNED_16_BIT_INTEGER, value,
+ zb_zcl_get_data_size(ZB_ZCL_UNSIGNED_16_BIT_INTEGER));
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ /* Error case -> handle = NULL */
+ ret = zb_zcl_global_attr_write(NULL, zll_addr16, ha_ep, zll_ep,
+ ZB_ZCL_FC_DEFAULT, ZB_ZCL_CLUSTER_IDENTIFY, &attr, 1,
+ _zb_zcl_global_attr_write_cb, NULL);
+ zb_write_attr_record_destroy(attr);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_zcl_global_attr_write_undivided.
+int utc_zb_zcl_global_attr_write_undivided_p(void)
+{
+ int ret;
+ unsigned char value[] = { 0x02, 0x01};
+ zb_zcl_write_attr_record_h attr = NULL;
+ zb_write_attr_record_create(&attr);
+ ret = zb_write_attr_record_set_id(attr, ZB_ZCL_ATTR_IDENTIFY_TIME);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_type(attr, ZB_ZCL_UNSIGNED_16_BIT_INTEGER);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_value(attr, ZB_ZCL_UNSIGNED_16_BIT_INTEGER, value,
+ zb_zcl_get_data_size(ZB_ZCL_UNSIGNED_16_BIT_INTEGER));
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_zcl_global_attr_write_undivided(handle, ha_addr16, ha_ep, zll_ep,
+ ZB_ZCL_FC_DEFAULT, ZB_ZCL_CLUSTER_IDENTIFY, &attr, 1,
+ _zb_zcl_global_attr_write_cb, NULL);
+ zb_write_attr_record_destroy(attr);
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_zcl_global_attr_write_undivided.
+int utc_zb_zcl_global_attr_write_undivided_n(void)
+{
+ int ret;
+ unsigned char value[] = { 0x02, 0x01};
+ zb_zcl_write_attr_record_h attr = NULL;
+ ret = zb_write_attr_record_create(&attr);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_id(attr, ZB_ZCL_ATTR_IDENTIFY_TIME);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_type(attr, ZB_ZCL_UNSIGNED_16_BIT_INTEGER);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_value(attr, ZB_ZCL_UNSIGNED_16_BIT_INTEGER, value,
+ zb_zcl_get_data_size(ZB_ZCL_UNSIGNED_16_BIT_INTEGER));
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ /* Error case -> handle = NULL */
+ ret = zb_zcl_global_attr_write_undivided(NULL, zll_addr16, ha_ep, zll_ep,
+ ZB_ZCL_FC_DEFAULT, ZB_ZCL_CLUSTER_IDENTIFY, &attr, 1,
+ _zb_zcl_global_attr_write_cb, NULL);
+ zb_write_attr_record_destroy(attr);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_zcl_global_attr_write_no_rsp.
+int utc_zb_zcl_global_attr_write_no_rsp_p(void)
+{
+ int ret;
+ unsigned char value[] = { 0x02, 0x01};
+ zb_zcl_write_attr_record_h attr = NULL;
+ ret = zb_write_attr_record_create(&attr);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_id(attr, ZB_ZCL_ATTR_IDENTIFY_TIME);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_type(attr, ZB_ZCL_UNSIGNED_16_BIT_INTEGER);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_value(attr, ZB_ZCL_UNSIGNED_16_BIT_INTEGER, value,
+ zb_zcl_get_data_size(ZB_ZCL_UNSIGNED_16_BIT_INTEGER));
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_zcl_global_attr_write_no_rsp(handle, ha_addr16, ha_ep, zll_ep,
+ ZB_ZCL_FC_DEFAULT, ZB_ZCL_CLUSTER_IDENTIFY, &attr, 1);
+ zb_write_attr_record_destroy(attr);
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_zcl_global_attr_write_no_rsp.
+int utc_zb_zcl_global_attr_write_no_rsp_n(void)
+{
+ int ret;
+ unsigned char value[] = { 0x02, 0x01};
+ zb_zcl_write_attr_record_h attr = NULL;
+ ret = zb_write_attr_record_create(&attr);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_id(attr, ZB_ZCL_ATTR_IDENTIFY_TIME);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_type(attr, ZB_ZCL_UNSIGNED_16_BIT_INTEGER);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_write_attr_record_set_value(attr, ZB_ZCL_UNSIGNED_16_BIT_INTEGER, value,
+ zb_zcl_get_data_size(ZB_ZCL_UNSIGNED_16_BIT_INTEGER));
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ /* Error case -> handle = NULL */
+ ret = zb_zcl_global_attr_write_no_rsp(NULL, zll_addr16, ha_ep, zll_ep,
+ ZB_ZCL_FC_DEFAULT, ZB_ZCL_CLUSTER_IDENTIFY, &attr, 1);
+ zb_write_attr_record_destroy(attr);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_zcl_global_config_report_write.
+int utc_zb_zcl_global_config_report_write_p(void)
+{
+ int ret;
+ unsigned char value[6] = {1, 2, 3, 4, 5, 6};
+ zb_zcl_read_report_config_record_h config = NULL;
+ ret = zb_report_config_record_create(&config);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_report_config_record_set_dir(config, ZB_ZCL_CLIENT_TO_SERVER);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_report_config_record_set_id(config, ZB_ZCL_ATTR_ON_OFF);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_report_config_record_set_change(config, ZB_ZCL_48_BIT_BITMAP, value);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_report_config_record_set_min_interval(config, 0x01);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_report_config_record_set_max_interval(config, 0x1000);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_zcl_global_config_report_write(handle, ha_addr16, ha_ep, zll_ep,
+ ZB_ZCL_FC_DEFAULT, ZB_ZCL_CLUSTER_ON_OFF, &config, 1,
+ _zb_zcl_global_config_report_write_write_cb, NULL);
+ zb_report_config_record_destroy(config);
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_zcl_global_config_report_write.
+int utc_zb_zcl_global_config_report_write_n(void)
+{
+ int ret;
+ unsigned char value[6] = {1, 2, 3, 4, 5, 6};
+ zb_zcl_read_report_config_record_h config = NULL;
+ ret = zb_report_config_record_create(&config);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_report_config_record_set_dir(config, ZB_ZCL_CLIENT_TO_SERVER);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_report_config_record_set_id(config, ZB_ZCL_ATTR_ON_OFF);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_report_config_record_set_change(config, ZB_ZCL_48_BIT_BITMAP, value);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_report_config_record_set_min_interval(config, 0x01);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_report_config_record_set_max_interval(config, 0x1000);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Error case -> handle = NULL and endpoint = 0 */
+ ret = zb_zcl_global_config_report_write(NULL, zll_addr16, ha_ep, zdo_ep,
+ ZB_ZCL_FC_DEFAULT, ZB_ZCL_CLUSTER_ON_OFF, &config, 1,
+ _zb_zcl_global_config_report_write_write_cb, NULL);
+ zb_report_config_record_destroy(config);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_zcl_global_config_report_read.
+int utc_zb_zcl_global_config_report_read_p(void)
+{
+ int ret;
+ zb_zcl_read_report_config_record_h read_report_conf = NULL;
+ ret = zb_read_report_config_record_create(&read_report_conf);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_read_report_config_record_set_dir(read_report_conf, ZB_ZCL_CLIENT_TO_SERVER);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_read_report_config_record_set_id(read_report_conf, ZB_ZCL_ATTR_ON_OFF);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_zcl_global_config_report_read(handle, ha_addr16, ha_ep, zll_ep,
+ ZB_ZCL_FC_DEFAULT, ZB_ZCL_CLUSTER_ON_OFF, &read_report_conf, 1,
+ _zb_zcl_global_config_report_write_read_cb, NULL);
+ zb_read_report_config_record_destroy(read_report_conf);
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_zcl_global_config_report_read.
+int utc_zb_zcl_global_config_report_read_n(void)
+{
+ int ret;
+ zb_zcl_read_report_config_record_h read_report_conf = NULL;
+ ret = zb_read_report_config_record_create(&read_report_conf);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_read_report_config_record_set_dir(read_report_conf, ZB_ZCL_CLIENT_TO_SERVER);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_read_report_config_record_set_id(read_report_conf, ZB_ZCL_ATTR_ON_OFF);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Error case -> handle = NULL and endpoint = 0 */
+ ret = zb_zcl_global_config_report_read(NULL, zll_addr16, ha_ep, zdo_ep,
+ ZB_ZCL_FC_DEFAULT, ZB_ZCL_CLUSTER_ON_OFF, &read_report_conf, 1,
+ _zb_zcl_global_config_report_write_read_cb, NULL);
+ zb_read_report_config_record_destroy(read_report_conf);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
--- /dev/null
+//
+// Copyright (c) 2014 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#include "assert.h"
+#include "utc-zigbee-common.h"
+
+extern bool g_feature;
+extern zb_zigbee_h handle;
+static zb_nwk_addr ha_addr16 = 0x1234;
+static zb_nwk_addr zll_addr16 = 0x5678;
+static zb_end_point zdo_ep = 0;
+static zb_end_point ha_ep = 1;
+
+//& purpose: A purpose of a first positive zb_zcl_zone_enroll_response.
+int utc_zb_zcl_zone_enroll_response_p(void)
+{
+ int ret;
+ unsigned char zone_id = 0x09;
+
+ ret = zb_zcl_zone_enroll_response(handle, ha_addr16, ha_ep,
+ ZB_ZCL_IAS_ZONE_ENROLL_SUCCESS, zone_id);
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_zcl_zone_enroll_response.
+int utc_zb_zcl_zone_enroll_response_n(void)
+{
+ int ret;
+
+ unsigned char zone_id = 0xC8;
+
+ /* Error case -> endpoint = 0 */
+ ret = zb_zcl_zone_enroll_response(handle, zll_addr16, zdo_ep,
+ ZB_ZCL_IAS_ZONE_ENROLL_NO_ENROLL_PERMITTED, zone_id);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
--- /dev/null
+//
+// Copyright (c) 2014 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#include "assert.h"
+#include "utc-zigbee-common.h"
+
+extern bool g_feature;
+extern zb_zigbee_h handle;
+static zb_nwk_addr ha_addr16 = 0x1234;
+static zb_nwk_addr zll_addr16 = 0x5678;
+static zb_end_point zdo_ep = 0;
+static zb_end_point ha_ep = 1;
+
+//& purpose: A purpose of a first positive zb_zcl_on_off_control.
+int utc_zb_zcl_on_off_control_p(void)
+{
+ int ret;
+ ret = zb_zcl_on_off_control(handle, ha_addr16, ha_ep, ZB_ZCL_OFF);
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_zcl_on_off_control.
+int utc_zb_zcl_on_off_control_n(void)
+{
+ int ret;
+ /* Error case -> endpoint = 0 */
+ ret = zb_zcl_on_off_control(handle, zll_addr16, zdo_ep, ZB_ZCL_OFF);
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
\ No newline at end of file
--- /dev/null
+//
+// Copyright (c) 2014 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#include <string.h>
+#include "utc-zigbee-common.h"
+
+#include "assert.h"
+
+extern bool g_feature;
+extern zb_zigbee_h handle;
+
+#define CASE_TO_STR(x) case x: return #x;
+
+const char* zb_zcl_get_status_str(zb_zcl_status_e status)
+{
+ switch (status) {
+ CASE_TO_STR(ZB_ZCL_STATUS_SUCCESS)
+ CASE_TO_STR(ZB_ZCL_STATUS_FAILURE)
+ CASE_TO_STR(ZB_ZCL_STATUS_NOT_AUTHORIZED)
+ CASE_TO_STR(ZB_ZCL_STATUS_RESERVED_FIELD_NOT_ZERO)
+ CASE_TO_STR(ZB_ZCL_STATUS_MALFORMED_COMMAND)
+ CASE_TO_STR(ZB_ZCL_STATUS_UNSUP_CLUSTER_COMMAND)
+ CASE_TO_STR(ZB_ZCL_STATUS_UNSUP_GENERAL_COMMAND)
+ CASE_TO_STR(ZB_ZCL_STATUS_UNSUP_MANUF_CLUSTER_COMMAND)
+ CASE_TO_STR(ZB_ZCL_STATUS_UNSUP_MANUF_GENERAL_COMMAND)
+ CASE_TO_STR(ZB_ZCL_STATUS_INVALID_FIELD)
+ CASE_TO_STR(ZB_ZCL_STATUS_UNSUPPORTED_ATTRIBUTE)
+ CASE_TO_STR(ZB_ZCL_STATUS_INVALID_VALUE)
+ CASE_TO_STR(ZB_ZCL_STATUS_READ_ONLY)
+ CASE_TO_STR(ZB_ZCL_STATUS_INSUFFICIENT_SPACE)
+ CASE_TO_STR(ZB_ZCL_STATUS_DUPLICATE_EXISTS)
+ CASE_TO_STR(ZB_ZCL_STATUS_NOT_FOUND)
+ CASE_TO_STR(ZB_ZCL_STATUS_UNREPORTABLE_ATTRIBUTE)
+ CASE_TO_STR(ZB_ZCL_STATUS_INVALID_DATA_TYPE)
+ CASE_TO_STR(ZB_ZCL_STATUS_INVALID_SELECTOR)
+ CASE_TO_STR(ZB_ZCL_STATUS_WRITE_ONLY)
+ CASE_TO_STR(ZB_ZCL_STATUS_INCONSISTENT_STARTUP_STATE)
+ CASE_TO_STR(ZB_ZCL_STATUS_DEFINED_OUT_OF_BAND)
+ CASE_TO_STR(ZB_ZCL_STATUS_INCONSISTENT)
+ CASE_TO_STR(ZB_ZCL_STATUS_ACTION_DENIED)
+ CASE_TO_STR(ZB_ZCL_STATUS_TIMEOUT)
+ CASE_TO_STR(ZB_ZCL_STATUS_ABORT)
+ CASE_TO_STR(ZB_ZCL_STATUS_INVALID_IMAGE)
+ CASE_TO_STR(ZB_ZCL_STATUS_WAIT_FOR_DATA)
+ CASE_TO_STR(ZB_ZCL_STATUS_NO_IMAGE_AVAILABLE)
+ CASE_TO_STR(ZB_ZCL_STATUS_REQUIRE_MORE_IMAGE)
+ default:
+ return "ZB_ZCL_STATUS_UNDEFINED";
+ }
+}
+
+typedef struct _attr_type_size {
+ unsigned char type;
+ unsigned char size;
+} AttrTypeSize;
+
+static AttrTypeSize attribute_sizes[] = {
+ {ZB_ZCL_NO_DATA_ATTRIBUTE_TYPE, 0},
+ {ZB_ZCL_8_BIT_DATA, 1},
+ {ZB_ZCL_16_BIT_DATA, 2},
+ {ZB_ZCL_24_BIT_DATA, 3},
+ {ZB_ZCL_32_BIT_DATA, 4},
+ {ZB_ZCL_40_BIT_DATA, 5},
+ {ZB_ZCL_48_BIT_DATA, 6},
+ {ZB_ZCL_56_BIT_DATA, 7},
+ {ZB_ZCL_64_BIT_DATA, 8},
+ {ZB_ZCL_BOOLEAN, 1},
+ {ZB_ZCL_8_BIT_BITMAP, 1},
+ {ZB_ZCL_16_BIT_BITMAP, 2},
+ {ZB_ZCL_24_BIT_BITMAP, 3},
+ {ZB_ZCL_32_BIT_BITMAP, 4},
+ {ZB_ZCL_40_BIT_BITMAP, 5},
+ {ZB_ZCL_48_BIT_BITMAP, 6},
+ {ZB_ZCL_56_BIT_BITMAP, 7},
+ {ZB_ZCL_64_BIT_BITMAP, 8},
+ {ZB_ZCL_UNSIGNED_8_BIT_INTEGER, 1},
+ {ZB_ZCL_UNSIGNED_16_BIT_INTEGER, 2},
+ {ZB_ZCL_UNSIGNED_24_BIT_INTEGER, 3},
+ {ZB_ZCL_UNSIGNED_32_BIT_INTEGER, 4},
+ {ZB_ZCL_UNSIGNED_40_BIT_INTEGER, 5},
+ {ZB_ZCL_UNSIGNED_48_BIT_INTEGER, 6},
+ {ZB_ZCL_UNSIGNED_56_BIT_INTEGER, 7},
+ {ZB_ZCL_UNSIGNED_64_BIT_INTEGER, 8},
+ {ZB_ZCL_SIGNED_8_BIT_INTEGER, 1},
+ {ZB_ZCL_SIGNED_16_BIT_INTEGER, 2},
+ {ZB_ZCL_SIGNED_24_BIT_INTEGER, 3},
+ {ZB_ZCL_SIGNED_32_BIT_INTEGER, 4},
+ {ZB_ZCL_SIGNED_40_BIT_INTEGER, 5},
+ {ZB_ZCL_SIGNED_48_BIT_INTEGER, 6},
+ {ZB_ZCL_SIGNED_56_BIT_INTEGER, 7},
+ {ZB_ZCL_SIGNED_64_BIT_INTEGER, 8},
+ {ZB_ZCL_8_BIT_ENUMERATION, 1},
+ {ZB_ZCL_16_BIT_ENUMERATION, 2},
+ {ZB_ZCL_SEMI_PRECISION, 2},
+ {ZB_ZCL_SINGLE_PRECISION, 4},
+ {ZB_ZCL_DOUBLE_PRECISION, 8},
+ {ZB_ZCL_TIME_OF_DAY, 4},
+ {ZB_ZCL_DATE, 4},
+ {ZB_ZCL_UTC_TIME, 4},
+ {ZB_ZCL_CLUSTER_ID, 2},
+ {ZB_ZCL_ATTRIBUTE_ID, 2},
+ {ZB_ZCL_BACNET_OID, 4},
+ {ZB_ZCL_IEEE_ADDRESS, 8},
+ {ZB_ZCL_128_BIT_SECURITY_KEY, 16},
+};
+
+static unsigned char analog_discrete_thresholds[] = {
+ 0x07, ZB_ZCL_DATA_TYPE_NONE,
+ 0x1F, ZB_ZCL_DATA_TYPE_DISCRETE,
+ 0x2F, ZB_ZCL_DATA_TYPE_ANALOG,
+ 0x37, ZB_ZCL_DATA_TYPE_DISCRETE,
+ 0x3F, ZB_ZCL_DATA_TYPE_ANALOG,
+ 0x57, ZB_ZCL_DATA_TYPE_DISCRETE,
+ 0xDF, ZB_ZCL_DATA_TYPE_NONE,
+ 0xE7, ZB_ZCL_DATA_TYPE_ANALOG,
+ 0xFF, ZB_ZCL_DATA_TYPE_NONE
+};
+
+int zb_zcl_get_analog_or_discret(zb_zcl_data_type_e type)
+{
+ int index = 0;
+
+ unsigned char var = analog_discrete_thresholds[index];
+
+ while (var < type && var < 0xFF) {
+ index += 2;
+ var = analog_discrete_thresholds[index];
+ }
+
+ return analog_discrete_thresholds[index+1];
+}
+
+int zb_zcl_get_data_size(zb_zcl_data_type_e type)
+{
+ int i;
+ int count;
+
+ count = (int)(sizeof(attribute_sizes) / 2);
+ for (i = 0; i < count; i++) {
+ if (attribute_sizes[i].type == type)
+ return attribute_sizes[i].size;
+ }
+ return -1;
+}
+
+const char* zb_zcl_get_data_type_str(zb_zcl_data_type_e type)
+{
+ switch (type) {
+ CASE_TO_STR(ZB_ZCL_NO_DATA_ATTRIBUTE_TYPE)
+ CASE_TO_STR(ZB_ZCL_8_BIT_DATA)
+ CASE_TO_STR(ZB_ZCL_16_BIT_DATA)
+ CASE_TO_STR(ZB_ZCL_24_BIT_DATA)
+ CASE_TO_STR(ZB_ZCL_32_BIT_DATA)
+ CASE_TO_STR(ZB_ZCL_40_BIT_DATA)
+ CASE_TO_STR(ZB_ZCL_48_BIT_DATA)
+ CASE_TO_STR(ZB_ZCL_56_BIT_DATA)
+ CASE_TO_STR(ZB_ZCL_64_BIT_DATA)
+ CASE_TO_STR(ZB_ZCL_BOOLEAN)
+ CASE_TO_STR(ZB_ZCL_8_BIT_BITMAP)
+ CASE_TO_STR(ZB_ZCL_16_BIT_BITMAP)
+ CASE_TO_STR(ZB_ZCL_24_BIT_BITMAP)
+ CASE_TO_STR(ZB_ZCL_32_BIT_BITMAP)
+ CASE_TO_STR(ZB_ZCL_40_BIT_BITMAP)
+ CASE_TO_STR(ZB_ZCL_48_BIT_BITMAP)
+ CASE_TO_STR(ZB_ZCL_56_BIT_BITMAP)
+ CASE_TO_STR(ZB_ZCL_64_BIT_BITMAP)
+ CASE_TO_STR(ZB_ZCL_UNSIGNED_8_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_UNSIGNED_16_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_UNSIGNED_24_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_UNSIGNED_32_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_UNSIGNED_40_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_UNSIGNED_48_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_UNSIGNED_56_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_UNSIGNED_64_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_SIGNED_8_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_SIGNED_16_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_SIGNED_24_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_SIGNED_32_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_SIGNED_40_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_SIGNED_48_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_SIGNED_56_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_SIGNED_64_BIT_INTEGER)
+ CASE_TO_STR(ZB_ZCL_8_BIT_ENUMERATION)
+ CASE_TO_STR(ZB_ZCL_16_BIT_ENUMERATION)
+ CASE_TO_STR(ZB_ZCL_SEMI_PRECISION)
+ CASE_TO_STR(ZB_ZCL_SINGLE_PRECISION)
+ CASE_TO_STR(ZB_ZCL_DOUBLE_PRECISION)
+ CASE_TO_STR(ZB_ZCL_OCTET_STRING)
+ CASE_TO_STR(ZB_ZCL_CHARACTER_STRING)
+ CASE_TO_STR(ZB_ZCL_LONG_OCTET_STRING)
+ CASE_TO_STR(ZB_ZCL_LONG_CHARACTER_STRING)
+ CASE_TO_STR(ZB_ZCL_ARRAY)
+ CASE_TO_STR(ZB_ZCL_STRUCTURE)
+ CASE_TO_STR(ZB_ZCL_SET)
+ CASE_TO_STR(ZB_ZCL_BAG)
+ CASE_TO_STR(ZB_ZCL_TIME_OF_DAY)
+ CASE_TO_STR(ZB_ZCL_DATE)
+ CASE_TO_STR(ZB_ZCL_UTC_TIME)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ID)
+ CASE_TO_STR(ZB_ZCL_ATTRIBUTE_ID)
+ CASE_TO_STR(ZB_ZCL_BACNET_OID)
+ CASE_TO_STR(ZB_ZCL_IEEE_ADDRESS)
+ CASE_TO_STR(ZB_ZCL_128_BIT_SECURITY_KEY)
+ default:
+ return "UNKNOWN_DATA_TYPE";
+ }
+}
+
+const char* zb_zcl_get_cluster_id_str(zb_cluster_id clusterid)
+{
+ switch (clusterid) {
+ CASE_TO_STR(ZB_ZCL_CLUSTER_BASIC)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_POWER_CONFIG)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DEVICE_TEMP)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_IDENTIFY)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_GROUPS)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_SCENES)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ON_OFF)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ON_OFF_SWITCH_CONFIG)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_LEVEL_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ALARM)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_TIME)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_RSSI_LOCATION)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_BINARY_INPUT_BASIC)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_COMMISSIONING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_PARTITION)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_OTA_BOOTLOAD)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_POWER_PROFILE)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_APPLIANCE_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_POLL_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_SHADE_CONFIG)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DOOR_LOCK)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_WINDOW_COVERING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_PUMP_CONFIG_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_THERMOSTAT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_FAN_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DEHUMID_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_THERMOSTAT_UI_CONFIG)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_COLOR_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_BALLAST_CONFIGURATION)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ILLUM_MEASUREMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ILLUM_LEVEL_SENSING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_TEMP_MEASUREMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_PRESSURE_MEASUREMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_FLOW_MEASUREMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_RELATIVE_HUMIDITY_MEASUREMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_OCCUPANCY_SENSING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_IAS_ZONE)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_IAS_ACE)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_IAS_WD)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_GENERIC_TUNNEL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_BACNET_PROTOCOL_TUNNEL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_11073_PROTOCOL_TUNNEL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ISO7816_PROTOCOL_TUNNEL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_PRICE)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DEMAND_RESPONSE_LOAD_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_SIMPLE_METERING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_MESSAGING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_TUNNELING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_PREPAYMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ENERGY_MANAGEMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_TOU_CALENDAR)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DEVICE_MANAGEMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_EVENTS)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_MDU_PAIRING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_KEY_ESTABLISHMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_INFORMATION)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DATA_SHARING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_GAMING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DATA_RATE_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_VOICE_OVER_ZIGBEE)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_CHATTING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_PAYMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_BILLING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_APPLIANCE_IDENTIFICATION)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_METER_IDENTIFICATION)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_APPLIANCE_EVENTS_AND_ALERT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_APPLIANCE_STATISTICS)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ELECTRICAL_MEASUREMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DIAGNOSTICS)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ZLL_COMMISSIONING)
+ default:
+ return "UNDEFINED_CLUSTER";
+ }
+}
+
+#if 1//def SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD
+//& purpose: A purpose of a first positive utc_zb_read_attr_status_record_create_p.
+int utc_zb_read_attr_status_record_create_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ zb_read_attr_status_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative utc_zb_read_attr_status_record_create_n.
+int utc_zb_read_attr_status_record_create_n(void)
+{
+ int ret = -1;
+
+ ret = zb_read_attr_status_record_create(NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive utc_zb_read_attr_status_record_clone_p.
+int utc_zb_read_attr_status_record_clone_p(void)
+{
+ int ret = -1;
+ unsigned char value[] = {1, 2};
+ zb_zcl_read_attr_status_record_h src = NULL;
+ zb_zcl_read_attr_status_record_h dst = NULL;
+
+ zb_read_attr_status_record_create(&src);
+ zb_read_attr_status_record_set_value(src, ZB_ZCL_UNSIGNED_16_BIT_INTEGER,
+ value, zb_zcl_get_data_size(ZB_ZCL_UNSIGNED_16_BIT_INTEGER));
+ ret = zb_read_attr_status_record_clone(src, &dst);
+ zb_read_attr_status_record_destroy(src);
+ zb_read_attr_status_record_destroy(dst);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative utc_zb_read_attr_status_record_clone_n.
+int utc_zb_read_attr_status_record_clone_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_attr_status_record_h src = NULL;
+ zb_zcl_read_attr_status_record_h dst = NULL;
+
+ zb_read_attr_status_record_create(&src);
+ ret = zb_read_attr_status_record_clone(NULL, &dst);
+ zb_read_attr_status_record_destroy(src);
+ zb_read_attr_status_record_destroy(dst);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive utc_zb_read_attr_status_record_destroy_p.
+int utc_zb_read_attr_status_record_destroy_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ zb_read_attr_status_record_create(&handle);
+ ret = zb_read_attr_status_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative utc_zb_read_attr_status_record_destroy_n.
+int utc_zb_read_attr_status_record_destroy_n(void)
+{
+ int ret = -1;
+
+ ret = zb_read_attr_status_record_destroy(NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_read_attr_status_record_set_id.
+int utc_zb_read_attr_status_record_set_id_p(void)
+{
+ int ret = -1;
+ zb_attribute_id pid = 1;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ zb_read_attr_status_record_create(&handle);
+ ret = zb_read_attr_status_record_set_id(handle, pid);
+ zb_read_attr_status_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_read_attr_status_record_set_id.
+int utc_zb_read_attr_status_record_set_id_n(void)
+{
+ int ret = -1;
+ zb_attribute_id pid = 1;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ /* Negative case : handle is null */
+ ret = zb_read_attr_status_record_set_id(NULL, pid);
+ zb_read_attr_status_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_read_attr_status_record_get_id.
+int utc_zb_read_attr_status_record_get_id_p(void)
+{
+ int ret = -1;
+ zb_attribute_id pid = 1;
+ zb_attribute_id lid = 2;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_read_attr_status_record_set_id(handle, pid);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = ret = zb_read_attr_status_record_get_id(handle, &lid);
+ zb_read_attr_status_record_destroy(handle);
+
+ if (false == g_feature)
+ assert_eq(ret, ZIGBEE_ERROR_NOT_SUPPORTED);
+ else {
+ assert_eq(ret, ZIGBEE_ERROR_NONE);
+ assert_eq(pid, lid);
+ }
+ return 0;
+}
+
+//& purpose: A purpose of a first negative zb_read_attr_status_record_get_id.
+int utc_zb_read_attr_status_record_get_id_n(void)
+{
+ int ret = -1;
+ zb_attribute_id id = 0xffff;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_read_attr_status_record_get_id(NULL, &id);
+ zb_read_attr_status_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_read_attr_status_record_set_status.
+int utc_zb_read_attr_status_record_set_status_p(void)
+{
+ int ret = -1;
+ zb_zcl_status_e status = 1;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_read_attr_status_record_set_status(handle, status);
+ zb_read_attr_status_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_read_attr_status_record_set_status.
+int utc_zb_read_attr_status_record_set_status_n(void)
+{
+ int ret = -1;
+ zb_zcl_status_e status = 1;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_read_attr_status_record_set_status(NULL, status);
+ zb_read_attr_status_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_read_attr_status_record_get_status.
+int utc_zb_read_attr_status_record_get_status_p(void)
+{
+ int ret = -1;
+ zb_zcl_status_e status = 0xff;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ zb_read_attr_status_record_create(&handle);
+ ret = zb_read_attr_status_record_get_status(handle, &status);
+ zb_read_attr_status_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_read_attr_status_record_get_status.
+int utc_zb_read_attr_status_record_get_status_n(void)
+{
+ int ret = -1;
+ zb_zcl_status_e status = 0xff;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_read_attr_status_record_get_status(NULL, &status);
+ zb_read_attr_status_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_read_attr_status_record_set_type.
+int utc_zb_read_attr_status_record_set_type_p(void)
+{
+ int ret = -1;
+ zb_zcl_data_type_e type = ZB_ZCL_ATTRIBUTE_ID;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_read_attr_status_record_set_type(handle, type);
+ zb_read_attr_status_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_read_attr_status_record_set_type.
+int utc_zb_read_attr_status_record_set_type_n(void)
+{
+ int ret = -1;
+ zb_zcl_data_type_e type = ZB_ZCL_ATTRIBUTE_ID;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_read_attr_status_record_set_type(NULL, type);
+ zb_read_attr_status_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_read_attr_status_record_get_type.
+int utc_zb_read_attr_status_record_get_type_p(void)
+{
+ int ret = -1;
+ zb_zcl_data_type_e type = ZB_ZCL_ATTRIBUTE_ID;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_read_attr_status_record_get_type(handle, &type);
+ zb_read_attr_status_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_read_attr_status_record_get_type.
+int utc_zb_read_attr_status_record_get_type_n(void)
+{
+ int ret = -1;
+ zb_zcl_data_type_e type = ZB_ZCL_ATTRIBUTE_ID;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_read_attr_status_record_get_type(NULL, &type);
+ zb_read_attr_status_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_read_attr_status_record_set_value.
+int utc_zb_read_attr_status_record_set_value_p(void)
+{
+ int ret = -1;
+ unsigned char pvalue = 1;
+
+ zb_zcl_data_type_e type = ZB_ZCL_8_BIT_DATA;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_read_attr_status_record_set_value(handle, type, &pvalue,
+ zb_zcl_get_data_size(type));
+ zb_read_attr_status_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_read_attr_status_record_set_value.
+int utc_zb_read_attr_status_record_set_value_n(void)
+{
+ int ret = -1;
+ unsigned char pvalue = 1;
+
+ zb_zcl_data_type_e type = ZB_ZCL_8_BIT_DATA;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_read_attr_status_record_set_value(NULL, type, &pvalue,
+ zb_zcl_get_data_size(type));
+ zb_read_attr_status_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_read_attr_status_record_get_type.
+int utc_zb_read_attr_status_record_get_value_p(void)
+{
+ int ret = -1;
+ int count = 0;
+ unsigned char pvalue = 1;
+ unsigned char *lvalue = NULL;
+
+ zb_zcl_data_type_e type = ZB_ZCL_8_BIT_DATA;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ zb_read_attr_status_record_set_value(handle, type, &pvalue,
+ zb_zcl_get_data_size(type));
+ ret = zb_read_attr_status_record_get_value(handle, &type, &lvalue, &count);
+ if (lvalue) {
+ free(lvalue);
+ lvalue = NULL;
+ }
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_read_attr_status_record_get_type.
+int utc_zb_read_attr_status_record_get_value_n(void)
+{
+ int ret = -1;
+ int count = 0;
+ unsigned char pvalue = 1;
+ unsigned char *lvalue = NULL;
+
+ zb_zcl_data_type_e type = ZB_ZCL_8_BIT_DATA;
+ zb_zcl_read_attr_status_record_h handle = NULL;
+
+ ret = zb_read_attr_status_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_read_attr_status_record_set_value(handle, type, &pvalue,
+ zb_zcl_get_data_size(type));
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_read_attr_status_record_get_value(NULL, &type, &lvalue, &count);
+ if (lvalue) {
+ free(lvalue);
+ lvalue = NULL;
+ }
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+#endif /* SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD */
+
+#if 1 //def SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS
+//& purpose: A purpose of a first positive zb_write_attr_record_create.
+int utc_zb_write_attr_record_create_p(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_record_h handle = NULL;
+
+ ret = zb_write_attr_record_create(&handle);
+ zb_write_attr_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_write_attr_record_create.
+int utc_zb_write_attr_record_create_n(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_record_h handle = NULL;
+
+ /* Negative case : handle is null */
+ ret = zb_write_attr_record_create(NULL);
+ zb_write_attr_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_write_attr_record_destroy.
+int utc_zb_write_attr_record_destroy_p(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_record_h handle = NULL;
+
+ zb_write_attr_record_create(&handle);
+ ret = zb_write_attr_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_write_attr_record_destroy.
+int utc_zb_write_attr_record_destroy_n(void)
+{
+ int ret = -1;
+
+ /* Negative case : handle is null */
+ ret = zb_write_attr_record_destroy(NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_write_attr_record_set_id.
+int utc_zb_write_attr_record_set_id_p(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_record_h handle = NULL;
+ zb_attribute_id id = ZB_ZCL_ATTR_IDENTIFY_TIME;
+
+ ret = zb_write_attr_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_write_attr_record_set_id(handle, id);
+ zb_write_attr_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_write_attr_record_set_id.
+int utc_zb_write_attr_record_set_id_n(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_record_h handle = NULL;
+ zb_attribute_id id = ZB_ZCL_ATTR_IDENTIFY_TIME;
+
+ ret = zb_write_attr_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_write_attr_record_set_id(NULL, id);
+ zb_write_attr_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_write_attr_record_set_value.
+int utc_zb_write_attr_record_set_value_p(void)
+{
+ int ret = -1;
+ zb_aes128_key pvalue = {
+ 0x5A, 0x69, 0x67, 0x42, 0x65, 0x65, 0x41, 0x6C,
+ 0x6C, 0x69, 0x61, 0x6E, 0x63, 0x65, 0x30, 0x39
+ };
+
+ zb_zcl_write_attr_record_h handle = NULL;
+
+ ret = zb_write_attr_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_write_attr_record_set_value(handle, ZB_ZCL_128_BIT_SECURITY_KEY,
+ pvalue, zb_zcl_get_data_size(ZB_ZCL_128_BIT_SECURITY_KEY));
+ zb_write_attr_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negvalueative zb_write_attr_record_set_value.
+int utc_zb_write_attr_record_set_value_n(void)
+{
+ int ret = -1;
+ zb_aes128_key pvalue = {
+ 0x5A, 0x69, 0x67, 0x42, 0x65, 0x65, 0x41, 0x6C,
+ 0x6C, 0x69, 0x61, 0x6E, 0x63, 0x65, 0x30, 0x39
+ };
+
+ zb_zcl_write_attr_record_h handle = NULL;
+
+ ret = zb_write_attr_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_write_attr_record_set_value(NULL, ZB_ZCL_128_BIT_SECURITY_KEY,
+ pvalue, zb_zcl_get_data_size(ZB_ZCL_128_BIT_SECURITY_KEY));
+ zb_write_attr_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_write_attr_status_create.
+int utc_zb_write_attr_status_create_p(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_status_record_h handle = NULL;
+
+ ret = zb_write_attr_status_create(&handle);
+ zb_write_attr_status_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_write_attr_status_create.
+int utc_zb_write_attr_status_create_n(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_status_record_h handle = NULL;
+
+ /* Negative case : handle is null */
+ ret = zb_write_attr_status_create(NULL);
+ zb_write_attr_status_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_write_attr_status_destroy.
+int utc_zb_write_attr_status_destroy_p(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_status_record_h handle = NULL;
+
+ ret = zb_write_attr_status_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_write_attr_status_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_write_attr_status_destroy.
+int utc_zb_write_attr_status_destroy_n(void)
+{
+ int ret = -1;
+
+ /* Negative case : handle is null */
+ ret = zb_write_attr_status_destroy(NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_write_attr_status_set_status.
+int utc_zb_write_attr_status_set_status_p(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_status_record_h handle = NULL;
+ zb_zcl_status_e status = ZB_ZCL_STATUS_NO_IMAGE_AVAILABLE;
+
+ ret = zb_write_attr_status_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_write_attr_status_set_status(handle, status);
+ zb_write_attr_status_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_write_attr_status_set_status.
+int utc_zb_write_attr_status_set_status_n(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_status_record_h handle = NULL;
+ zb_zcl_status_e status = ZB_ZCL_STATUS_REQUIRE_MORE_IMAGE;
+
+ ret = zb_write_attr_status_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_write_attr_status_set_status(NULL, status);
+ zb_write_attr_status_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_write_attr_status_get_status.
+int utc_zb_write_attr_status_get_status_p(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_status_record_h handle = NULL;
+ zb_zcl_status_e status = ZB_ZCL_STATUS_NO_IMAGE_AVAILABLE;
+
+ ret = zb_write_attr_status_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_write_attr_status_get_status(handle, &status);
+ zb_write_attr_status_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_write_attr_status_get_status.
+int utc_zb_write_attr_status_get_status_n(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_status_record_h handle = NULL;
+ zb_zcl_status_e status = ZB_ZCL_STATUS_REQUIRE_MORE_IMAGE;
+
+ ret = zb_write_attr_status_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_write_attr_status_get_status(NULL, &status);
+ zb_write_attr_status_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_write_attr_status_set_id.
+int utc_zb_write_attr_status_set_id_p(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_status_record_h handle = NULL;
+ zb_attribute_id id = ZB_ZCL_ATTR_CURRENT_LEVEL;
+
+ ret = zb_write_attr_status_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_write_attr_status_set_id(handle, id);
+ zb_write_attr_status_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_write_attr_status_set_id.
+int utc_zb_write_attr_status_set_id_n(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_status_record_h handle = NULL;
+ zb_attribute_id id = ZB_ZCL_ATTR_LEVEL_CONTROL_REMAINING_TIME;
+
+ ret = zb_write_attr_status_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_write_attr_status_set_id(NULL, id);
+ zb_write_attr_status_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_write_attr_status_get_id.
+int utc_zb_write_attr_status_get_id_p(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_status_record_h handle = NULL;
+ zb_attribute_id id = ZB_ZCL_ATTR_ON_OFF_TRANSITION_TIME;
+
+ ret = zb_write_attr_status_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_write_attr_status_get_id(handle, &id);
+ zb_write_attr_status_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_write_attr_status_get_id.
+int utc_zb_write_attr_status_get_id_n(void)
+{
+ int ret = -1;
+ zb_zcl_write_attr_status_record_h handle = NULL;
+ zb_attribute_id id = ZB_ZCL_ATTR_ON_LEVEL;
+
+ ret = zb_write_attr_status_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_write_attr_status_get_id(NULL, &id);
+ zb_write_attr_status_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+#endif /* SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS */
+
+#if 1 //def SUPPORT_ZCL_REPORT_CONFIG_REPORT
+//& purpose: A purpose of a first positive zb_report_config_record_create.
+int utc_zb_report_config_record_create_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+
+ ret = zb_report_config_record_create(&handle);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_record_create.
+int utc_zb_report_config_record_create_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_record_create(NULL);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_clone
+int utc_zb_report_config_record_clone_p(void)
+{
+ int ret = -1;
+ unsigned char change[] = {0, 1, 2, 3, 4, 5};
+ zb_zcl_read_report_config_record_h src = NULL;
+ zb_zcl_read_report_config_record_h dst = NULL;
+
+ ret = zb_report_config_record_create(&src);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_report_config_record_set_change(src, ZB_ZCL_48_BIT_BITMAP, change);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_report_config_record_clone(src, &dst);
+ zb_report_config_record_destroy(src);
+ zb_report_config_record_destroy(dst);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_record_clone.
+int utc_zb_report_config_record_clone_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h src = NULL;
+ zb_zcl_read_report_config_record_h dst = NULL;
+
+ ret = zb_report_config_record_create(&src);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_report_config_record_clone(NULL, &dst);
+ zb_report_config_record_destroy(src);
+ zb_report_config_record_destroy(dst);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_destroy.
+int utc_zb_report_config_record_destroy_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+
+ zb_report_config_record_create(&handle);
+ ret = zb_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_record_destroy.
+int utc_zb_report_config_record_destroy_n(void)
+{
+ int ret = -1;
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_record_destroy(NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_set_dir.
+int utc_zb_report_config_record_set_dir_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ zb_zcl_fc_direction_e dir = ZB_ZCL_SERVER_TO_CLIENT;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_report_config_record_set_dir(handle, dir);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_record_set_dir.
+int utc_zb_report_config_record_set_dir_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ zb_zcl_fc_direction_e dir = ZB_ZCL_CLIENT_TO_SERVER;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_record_set_dir(NULL, dir);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_get_dir.
+int utc_zb_report_config_record_get_dir_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ zb_zcl_fc_direction_e dir = ZB_ZCL_SERVER_TO_CLIENT;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_report_config_record_get_dir(handle, &dir);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_record_get_dir.
+int utc_zb_report_config_record_get_dir_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ zb_zcl_fc_direction_e dir = ZB_ZCL_CLIENT_TO_SERVER;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_record_get_dir(NULL, &dir);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_set_id.
+int utc_zb_report_config_record_set_id_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ zb_attribute_id id = ZB_ZCL_ATTR_SHORT_ADDRESS;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_report_config_record_set_id(handle, id);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_record_set_id.
+int utc_zb_report_config_record_set_id_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ zb_attribute_id id = ZB_ZCL_ATTR_EXTENDED_PAN_ID;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_record_set_id(NULL, id);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_get_id.
+int utc_zb_report_config_record_get_id_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ zb_attribute_id id = ZB_ZCL_ATTR_PAN_ID;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_report_config_record_get_id(handle, &id);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_record_get_id.
+int utc_zb_report_config_record_get_id_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ zb_attribute_id id = ZB_ZCL_ATTR_CHANNEL_MASK;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_record_get_id(NULL, &id);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_set_min_interval.
+int utc_zb_report_config_record_set_min_interval_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ unsigned short min_i = 1;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_report_config_record_set_min_interval(handle, min_i);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_record_set_min_interval.
+int utc_zb_report_config_record_set_min_interval_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ unsigned short min_i = 2;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_record_set_min_interval(NULL, min_i);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_get_min_interval.
+int utc_zb_report_config_record_get_min_interval_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ unsigned short min_i = 3;
+
+ zb_report_config_record_create(&handle);
+ ret = zb_report_config_record_get_min_interval(handle, &min_i);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_record_get_min_interval.
+int utc_zb_report_config_record_get_min_interval_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ unsigned short min_i = 4;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_record_get_min_interval(NULL, &min_i);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_set_max_interval.
+int utc_zb_report_config_record_set_max_interval_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ unsigned short max_i = 1000;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_report_config_record_set_max_interval(handle, max_i);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_record_set_max_interval.
+int utc_zb_report_config_record_set_max_interval_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ unsigned short max_i = 2000;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_record_set_max_interval(NULL, max_i);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_get_max_interval.
+int utc_zb_report_config_record_get_max_interval_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ unsigned short max_i = 3000;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_report_config_record_get_max_interval(handle, &max_i);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_record_get_max_interval.
+int utc_zb_report_config_record_get_max_interval_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ unsigned short max_i = 4000;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_record_get_max_interval(NULL, &max_i);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_set_timeout.
+int utc_zb_report_config_record_set_timeout_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ unsigned short to = 10;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_report_config_record_set_timeout(handle, to);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_record_set_timeout.
+int utc_zb_report_config_record_set_timeout_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ unsigned short to = 60;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_record_set_timeout(NULL, to);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_get_timeout.
+int utc_zb_report_config_record_get_timeout_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ unsigned short to = 3000;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_report_config_record_get_timeout(handle, &to);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_record_get_timeout.
+int utc_zb_report_config_record_get_timeout_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ unsigned short to = 4000;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_record_get_timeout(NULL, &to);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_set_change.
+int utc_zb_report_config_record_set_change_p(void)
+{
+ int ret = -1;
+ zb_zcl_data_type_e type = ZB_ZCL_8_BIT_DATA;
+ unsigned char pval[] = {1};
+ zb_zcl_read_report_config_record_h handle = NULL;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_report_config_record_set_change(handle, type, pval);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_record_set_change.
+int utc_zb_report_config_record_set_change_n(void)
+{
+ int ret = -1;
+ zb_zcl_data_type_e type = ZB_ZCL_32_BIT_DATA;
+ unsigned char pval[] = {1, 0, 0, 0};
+ zb_zcl_read_report_config_record_h handle = NULL;
+
+ ret = zb_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_record_set_change(NULL, type, pval);
+ zb_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_get_change.
+int utc_zb_report_config_record_get_change_p(void)
+{
+ int ret1;
+ int ret2 = -1;
+ int size = -1;
+ zb_zcl_data_type_e type = ZB_ZCL_24_BIT_DATA;
+ unsigned char pval[] = {0xab, 0xcd, 0xef};
+ unsigned char *lval = NULL;
+ zb_zcl_read_report_config_record_h handle = NULL;
+
+ ret1 = zb_report_config_record_create(&handle);
+ if (false == g_feature) {
+ zb_report_config_record_destroy(handle);
+ assert_eq(ret1, ZIGBEE_ERROR_NOT_SUPPORTED);
+ } else {
+
+ zb_report_config_record_set_change(handle, type, pval);
+ lval = calloc(sizeof(pval), sizeof(char));
+
+ ret1 = zb_report_config_record_get_change(handle, &type, &lval, &size);
+ ret2 = memcmp(pval, lval, sizeof(pval));
+
+ zb_report_config_record_destroy(handle);
+ if (lval) {
+ free(lval);
+ lval = NULL;
+ }
+
+ assert_eq(ret1, ZIGBEE_ERROR_NONE);
+ assert_eq(ret2, 0);
+ }
+ return 0;
+}
+
+//& purpose: A purpose of a first positive zb_report_config_record_get_change.
+int utc_zb_report_config_record_get_change_n(void)
+{
+ int ret = -1;
+ int size = -1;
+ zb_zcl_data_type_e type = ZB_ZCL_24_BIT_DATA;
+ unsigned char pval[] = {1, 0, 0};
+ unsigned char *lval = NULL;
+ zb_zcl_read_report_config_record_h handle = NULL;
+
+ ret = zb_report_config_record_create(&handle);
+ if (false == g_feature)
+ assert_eq(ret, ZIGBEE_ERROR_NOT_SUPPORTED);
+ else {
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+ ret = zb_report_config_record_set_change(handle, type, pval);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_record_get_change(NULL, &type, &lval, &size);
+ zb_report_config_record_destroy(handle);
+ assert_neq(ret, ZIGBEE_ERROR_NONE);
+ }
+ return 0;
+}
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_REPORT */
+
+#if 1 //def SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD
+//& purpose: A purpose of a first positive zb_read_report_config_record_create.
+int utc_zb_read_report_config_record_create_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+
+ ret = zb_read_report_config_record_create(&handle);
+ zb_read_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_read_report_config_record_create.
+int utc_zb_read_report_config_record_create_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+
+ /* Negative case : handle is null */
+ ret = zb_read_report_config_record_create(NULL);
+ zb_read_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);;
+}
+
+//& purpose: A purpose of a first positive zb_read_report_config_record_destroy.
+int utc_zb_read_report_config_record_destroy_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+
+ zb_read_report_config_record_create(&handle);
+ ret = zb_read_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_read_report_config_record_destroy.
+int utc_zb_read_report_config_record_destroy_n(void)
+{
+ int ret = -1;
+
+ /* Negative case : handle is null */
+ ret = zb_read_report_config_record_destroy(NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_read_report_config_record_set_dir.
+int utc_zb_read_report_config_record_set_dir_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ zb_zcl_fc_direction_e dir = ZB_ZCL_CLIENT_TO_SERVER;
+
+ ret = zb_read_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_read_report_config_record_set_dir(handle, dir);
+ zb_read_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_read_report_config_record_set_id.
+int utc_zb_read_report_config_record_set_dir_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ zb_zcl_fc_direction_e dir = ZB_ZCL_CLIENT_TO_SERVER;
+
+ ret = zb_read_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_read_report_config_record_set_dir(NULL, dir);
+ zb_read_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_read_report_config_record_set_id.
+int utc_zb_read_report_config_record_set_id_p(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ zb_attribute_id id = ZB_ZCL_ATTR_UPGRADE_SERVER_ID;
+
+ ret = zb_read_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ ret = zb_read_report_config_record_set_id(handle, id);
+ zb_read_report_config_record_destroy(handle);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_read_report_config_record_set_id.
+int utc_zb_read_report_config_record_set_id_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h handle = NULL;
+ zb_attribute_id id = ZB_ZCL_ATTR_UPGRADE_SERVER_ID;
+
+ ret = zb_read_report_config_record_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("pre-condition error: %d", ret);
+ return ret;
+ }
+
+ /* Negative case : handle is null */
+ ret = zb_read_report_config_record_set_id(NULL, id);
+ zb_read_report_config_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+#endif /* SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD */
+
+#if 1 //def SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD
+
+//& purpose: A purpose of a first negative zb_report_config_response_record_clone.
+int utc_zb_report_config_response_record_clone_n(void)
+{
+ int ret = -1;
+ zb_zcl_read_report_config_record_h src = NULL;
+ zb_zcl_read_report_config_record_h dst = NULL;
+
+ ret = zb_report_config_response_record_clone(src, &dst);
+ zb_report_config_response_record_destroy(src);
+ zb_report_config_response_record_destroy(dst);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_response_record_destroy.
+int utc_zb_report_config_response_record_destroy_n(void)
+{
+ int ret = -1;
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_response_record_destroy(NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_response_record_get_status.
+int utc_zb_report_config_response_record_get_status_n(void)
+{
+ int ret = -1;
+ zb_zcl_report_config_response_record_h handle = NULL;
+ zb_zcl_status_e lstatus = ZB_ZCL_STATUS_READ_ONLY;
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_response_record_get_status(NULL, &lstatus);
+ zb_report_config_response_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_response_record_get_dir.
+int utc_zb_report_config_response_record_get_dir_n(void)
+{
+ int ret = -1;
+ zb_zcl_report_config_response_record_h handle = NULL;
+ zb_zcl_fc_direction_e ldir = ZB_ZCL_CLIENT_TO_SERVER;
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_response_record_get_dir(NULL, &ldir);
+ zb_report_config_response_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_report_config_response_record_get_id.
+int utc_zb_report_config_response_record_get_id_n(void)
+{
+ int ret = -1;
+ zb_zcl_report_config_response_record_h handle = NULL;
+ zb_attribute_id lid = ZB_ZCL_ATTR_LAST_CONFIGURED_BY;
+
+ /* Negative case : handle is null */
+ ret = zb_report_config_response_record_get_id(NULL, &lid);
+ zb_report_config_response_record_destroy(handle);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+#endif /* SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD */
--- /dev/null
+//
+// Copyright (c) 2016 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#include <glib.h>
+
+#include "assert.h"
+#include "utc-zigbee-common.h"
+
+extern bool g_feature;
+extern zb_zigbee_h handle;
+
+/**
+ * @brief Devices specified the HA profile.
+ *
+ * @since_tizen 5.0
+ */
+typedef enum {
+ /* General devices */
+ ZB_HA_ON_OFF_SWITCH = 0x0000, /**< On/off switch device */
+ ZB_HA_LEVEL_CONTROL_SWITCH = 0x0001, /**< Level control device */
+ ZB_HA_ON_OFF_OUTPUT = 0x0002, /**< On/off output device */
+ ZB_HA_LEVEL_CONTROLLABLE_OUTPUT = 0x0003, /**< Controllable output device */
+ ZB_HA_SCENE_SELECOTOR = 0x0004, /**< Scene selector device */
+ ZB_HA_CONFIGURATION_TOOL = 0x0005, /**< Configuration tool device */
+ ZB_HA_REMOTE_CONTROL = 0x0006, /**< Remote control device */
+ ZB_HA_COMBINED_INTERFACE = 0x0007, /**< Combined interface device */
+ ZB_HA_RANGE_EXTENDER = 0x0008, /**< Range extender device */
+ ZB_HA_MAINS_POWER_OUTLET = 0x0009, /**< Main power outlet device */
+ ZB_HA_DOOR_LOCK = 0x000A, /**< Door lock device */
+ ZB_HA_DOOR_LOCK_CONTROLLER = 0x000B, /**< Door lock controller device */
+ ZB_HA_SIMPLE_SENSOR = 0x000C, /**< Simple sensor device */
+ ZB_HA_CONSUMPTION_AWARENESS_DEVICE = 0x000D, /**< Consumption awareness device */
+ ZB_HA_HOME_GATEWAY = 0x0050, /**< Home gateway device */
+ ZB_HA_SMART_PLUG = 0x0051, /**< Smart plug device */
+ ZB_HA_WHITE_GOODS = 0x0052, /**< White goods device */
+ ZB_HA_METER_INTERFACE = 0x0053, /**< Meter interface device */
+ /* Lighting devices */
+ ZB_HA_ON_OFF_LIGHT = 0x0100, /**< On/off light device */
+ ZB_HA_DIMMABLE_LIGHT = 0x0101, /**< Dimmable light device */
+ ZB_HA_COLOR_DIMMABLE_LIGHT = 0x0102, /**< Color dimmable light device */
+ ZB_HA_ON_OFF_LIGHT_SWITCH = 0x0103, /**< On/off light device */
+ ZB_HA_DIMMER_SWITCH = 0x0104, /**< Dimmer switch device */
+ ZB_HA_COLOR_DIMMER_SWITCH = 0x0105, /**< Color dimmer switch device */
+ ZB_HA_LIGHT_SENSOR = 0x0106, /**< Light sensor device */
+ ZB_HA_OCUPANCY_SENSOR = 0x0107, /**< Ocupancy sensor device */
+ /* Closures devices */
+ ZB_HA_SHADE = 0x0200, /**< Shade device */
+ ZB_HA_SHADE_CONTROLLER = 0x0201, /**< Shade controller device */
+ ZB_HA_WINDOW_COVERING_DEVICE = 0x0202, /**< Window covering device */
+ ZB_HA_WINDOW_COVERING_CONTROLLER = 0x0203, /**< Window covering controller device */
+ /* HVAC devices */
+ ZB_HA_HEATING_COOLLING_UNIT = 0x0300, /**< Heating coolling device */
+ ZB_HA_THERMOSTAT = 0x0301, /**< Thermostat device */
+ ZB_HA_TEMPERATURE_SENSOR = 0x0302, /**< Temperature sensor device */
+ ZB_HA_PUMP = 0x0303, /**< Pump device */
+ ZB_HA_PUMP_CONTROLLER = 0x0304, /**< Pump controller device */
+ ZB_HA_PRESSURE_SENSOR = 0x0305, /**< Pressure sensor device */
+ ZB_HA_FLOW_SENSOR = 0x0306, /**< Flow sensor device */
+ ZB_HA_MINI_SPLIT_AC = 0x0307, /**< Mini split device */
+ /* Intruder Alarms system */
+ ZB_HA_IAS_CONTROL_AND_INDICATING_EQUIPMENT = 0x0400, /**< IAS control and indicating equipment device */
+ ZB_HA_IAS_ANCILLARY_CONTROL_EQUIPMENT = 0x0401, /**< IAS ancillary control device */
+ ZB_HA_IAS_ZONE = 0x0402, /**< IAS zone device */
+ ZB_HA_IAS_WARNIGN_DEVICE = 0x0403, /**< IAS warning device */
+} ha_device_id_e;
+
+
+#define CASE_TO_STR(x) case x: return #x;
+
+static const char* zb_zdo_get_error_message(int id)
+{
+ switch (id) {
+ CASE_TO_STR(ZB_ZDP_STATUS_SUCCESS)
+ CASE_TO_STR(ZB_ZDP_STATUS_INVALID_REQUEST_TYPE)
+ CASE_TO_STR(ZB_ZDP_STATUS_DEVICE_NOT_FOUND)
+ CASE_TO_STR(ZB_ZDP_STATUS_INVALID_EP)
+ CASE_TO_STR(ZB_ZDP_STATUS_NOT_ACTIVE)
+ CASE_TO_STR(ZB_ZDP_STATUS_NOT_SUPPORTED)
+ CASE_TO_STR(ZB_ZDP_STATUS_TIMEOUT)
+ CASE_TO_STR(ZB_ZDP_STATUS_NO_MATCH)
+ CASE_TO_STR(ZB_ZDP_STATUS_NO_ENTRY)
+ CASE_TO_STR(ZB_ZDP_STATUS_NO_DESCRIPTOR)
+ CASE_TO_STR(ZB_ZDP_STATUS_INSUFFICIENT_SPACE)
+ CASE_TO_STR(ZB_ZDP_STATUS_NOT_PERMITTED)
+ CASE_TO_STR(ZB_ZDP_STATUS_TABLE_FULL)
+ CASE_TO_STR(ZB_ZDP_STATUS_NOT_AUTHORIZED)
+ CASE_TO_STR(ZB_ZDP_STATUS_DEVICE_BINDING_TABLE_FULL)
+ default :
+ return "ZB_ZDP_UNKNOWN";
+ }
+}
+
+static const char* zb_get_profile_id_string(int profile_id)
+{
+ switch (profile_id) {
+ CASE_TO_STR(ZB_PROFILE_HOME_AUTOMATION)
+ default :
+ return "ZB_UNKNOWN_PROFILE";
+ }
+}
+
+static const char* zb_get_device_id_string(int device_id)
+{
+ switch (device_id) {
+ /* General devices */
+ CASE_TO_STR(ZB_HA_ON_OFF_SWITCH)
+ CASE_TO_STR(ZB_HA_LEVEL_CONTROL_SWITCH)
+ CASE_TO_STR(ZB_HA_ON_OFF_OUTPUT)
+ CASE_TO_STR(ZB_HA_LEVEL_CONTROLLABLE_OUTPUT)
+ CASE_TO_STR(ZB_HA_SCENE_SELECOTOR)
+ CASE_TO_STR(ZB_HA_CONFIGURATION_TOOL)
+ CASE_TO_STR(ZB_HA_REMOTE_CONTROL)
+ CASE_TO_STR(ZB_HA_COMBINED_INTERFACE)
+ CASE_TO_STR(ZB_HA_RANGE_EXTENDER)
+ CASE_TO_STR(ZB_HA_MAINS_POWER_OUTLET)
+ CASE_TO_STR(ZB_HA_DOOR_LOCK)
+ CASE_TO_STR(ZB_HA_DOOR_LOCK_CONTROLLER)
+ CASE_TO_STR(ZB_HA_SIMPLE_SENSOR)
+ CASE_TO_STR(ZB_HA_CONSUMPTION_AWARENESS_DEVICE)
+ CASE_TO_STR(ZB_HA_HOME_GATEWAY)
+ CASE_TO_STR(ZB_HA_SMART_PLUG)
+ CASE_TO_STR(ZB_HA_WHITE_GOODS)
+ CASE_TO_STR(ZB_HA_METER_INTERFACE)
+ /* Lighting devices */
+ CASE_TO_STR(ZB_HA_ON_OFF_LIGHT)
+ CASE_TO_STR(ZB_HA_DIMMABLE_LIGHT)
+ CASE_TO_STR(ZB_HA_COLOR_DIMMABLE_LIGHT)
+ CASE_TO_STR(ZB_HA_ON_OFF_LIGHT_SWITCH)
+ CASE_TO_STR(ZB_HA_DIMMER_SWITCH)
+ CASE_TO_STR(ZB_HA_COLOR_DIMMER_SWITCH)
+ CASE_TO_STR(ZB_HA_LIGHT_SENSOR)
+ CASE_TO_STR(ZB_HA_OCUPANCY_SENSOR)
+ /* Closures devices */
+ CASE_TO_STR(ZB_HA_SHADE)
+ CASE_TO_STR(ZB_HA_SHADE_CONTROLLER)
+ CASE_TO_STR(ZB_HA_WINDOW_COVERING_DEVICE)
+ CASE_TO_STR(ZB_HA_WINDOW_COVERING_CONTROLLER)
+ /* HVAC devices */
+ CASE_TO_STR(ZB_HA_HEATING_COOLLING_UNIT)
+ CASE_TO_STR(ZB_HA_THERMOSTAT)
+ CASE_TO_STR(ZB_HA_TEMPERATURE_SENSOR)
+ CASE_TO_STR(ZB_HA_PUMP)
+ CASE_TO_STR(ZB_HA_PUMP_CONTROLLER)
+ CASE_TO_STR(ZB_HA_PRESSURE_SENSOR)
+ CASE_TO_STR(ZB_HA_FLOW_SENSOR)
+ CASE_TO_STR(ZB_HA_MINI_SPLIT_AC)
+ /* Intruder Alarms system */
+ CASE_TO_STR(ZB_HA_IAS_CONTROL_AND_INDICATING_EQUIPMENT)
+ CASE_TO_STR(ZB_HA_IAS_ANCILLARY_CONTROL_EQUIPMENT)
+ CASE_TO_STR(ZB_HA_IAS_ZONE)
+ default :
+ return "ZB_HA_UNKNOWN_DEVICE";
+ }
+}
+
+static const char* zb_get_cluster_name(int id)
+{
+ switch (id) {
+ CASE_TO_STR(ZB_ZCL_CLUSTER_BASIC)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_POWER_CONFIG)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DEVICE_TEMP)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_IDENTIFY)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_GROUPS)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_SCENES)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ON_OFF)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ON_OFF_SWITCH_CONFIG)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_LEVEL_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ALARM)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_TIME)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_RSSI_LOCATION)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_BINARY_INPUT_BASIC)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_COMMISSIONING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_PARTITION)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_OTA_BOOTLOAD)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_POWER_PROFILE)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_APPLIANCE_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_POLL_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_SHADE_CONFIG)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DOOR_LOCK)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_WINDOW_COVERING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_PUMP_CONFIG_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_THERMOSTAT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_FAN_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DEHUMID_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_THERMOSTAT_UI_CONFIG)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_COLOR_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_BALLAST_CONFIGURATION)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ILLUM_MEASUREMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ILLUM_LEVEL_SENSING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_TEMP_MEASUREMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_PRESSURE_MEASUREMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_FLOW_MEASUREMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_RELATIVE_HUMIDITY_MEASUREMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_OCCUPANCY_SENSING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_IAS_ZONE)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_IAS_ACE)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_IAS_WD)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_GENERIC_TUNNEL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_BACNET_PROTOCOL_TUNNEL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_11073_PROTOCOL_TUNNEL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ISO7816_PROTOCOL_TUNNEL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_PRICE)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DEMAND_RESPONSE_LOAD_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_SIMPLE_METERING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_MESSAGING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_TUNNELING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_PREPAYMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ENERGY_MANAGEMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_TOU_CALENDAR)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DEVICE_MANAGEMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_EVENTS)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_MDU_PAIRING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_KEY_ESTABLISHMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_INFORMATION)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DATA_SHARING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_GAMING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DATA_RATE_CONTROL)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_VOICE_OVER_ZIGBEE)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_CHATTING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_PAYMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_BILLING)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_APPLIANCE_IDENTIFICATION)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_METER_IDENTIFICATION)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_APPLIANCE_EVENTS_AND_ALERT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_APPLIANCE_STATISTICS)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ELECTRICAL_MEASUREMENT)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_DIAGNOSTICS)
+ CASE_TO_STR(ZB_ZCL_CLUSTER_ZLL_COMMISSIONING)
+ default:
+ return "UNDEFINED_CLUSTER";
+ break;
+ }
+}
+
+
+void _zb_zdo_addr_rsp(zb_zdp_status_e status, zb_ieee_addr remote_dev_addr64,
+ zb_nwk_addr remote_dev_addr16, unsigned char assoc_dev_len,
+ unsigned char start_idx, zb_device_id *assoc_dev_addr_list, void *user_data)
+{
+ LOG("zb_zdo_addr_cb() status = 0x%02X (%s)", status, zb_zdo_get_error_message(status));
+ if (remote_dev_addr64) {
+ LOG("IEEE Address : %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:",
+ remote_dev_addr64[0], remote_dev_addr64[1], remote_dev_addr64[2],
+ remote_dev_addr64[3], remote_dev_addr64[4], remote_dev_addr64[5],
+ remote_dev_addr64[6], remote_dev_addr64[7]);
+ } else {
+ LOG("IEEE Address : 00:00:00:00:00:00:00:00:");
+ }
+
+ LOG("Network Address : 0x%04X", remote_dev_addr16);
+ LOG("Number of Associated Device : %d", assoc_dev_len);
+ LOG("Start Index : %d", start_idx);
+}
+
+void _zb_zdo_active_ep_rsp(zb_zdp_status_e status, zb_nwk_addr addr16,
+ unsigned char count, unsigned char *ep_list, void *user_data)
+{
+ int i;
+
+ LOG("count = 0x%02X", count);
+ for (i = 0; i < count; i++)
+ LOG("EP = 0x%02X", ep_list[i]);
+ LOG("zb_zdo_active_ep_cb() status = 0x%02X (%s)", status,
+ zb_zdo_get_error_message(status));
+}
+
+void _zb_zdo_simple_desc_rsp(zb_nwk_addr addr16, unsigned char len,
+ const zb_zdo_simple_desc_h handle, void *user_data)
+{
+ int i, ret;
+ unsigned char param_u8;
+ unsigned short param_u16;
+ unsigned short *in_clusters;
+ unsigned short *out_clusters;
+
+ LOG("zb_zdo_simple_desc_cb()");
+
+ ret = zb_simple_desc_get_ep(handle, ¶m_u8);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("zb_simple_desc_get_ep() Fail(0x%X)", ret);
+ } else {
+ LOG(" ep = %d", param_u8);
+ }
+
+ ret = zb_simple_desc_get_profile_id(handle, ¶m_u16);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("zb_simple_desc_get_profile_id() Fail(0x%X)", ret);
+ } else {
+ LOG(" profile_id = 0x%x (%s)", param_u16, zb_get_profile_id_string(param_u16));
+ }
+
+ ret = zb_simple_desc_get_device_id(handle, ¶m_u16);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("zb_simple_desc_get_device_id() Fail(0x%X)", ret);
+ } else {
+ LOG(" device_id = 0x%x (%s)", param_u16, zb_get_device_id_string(param_u16));
+ }
+
+ ret = zb_simple_desc_get_device_ver(handle, ¶m_u16);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("zb_simple_desc_get_device_ver() Fail(0x%X)", ret);
+ } else {
+ LOG(" device_ver = %d", param_u16);
+ }
+
+ ret = zb_simple_desc_get_num_of_in_clusters(handle, ¶m_u8);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("zb_simple_desc_get_num_of_in_clusters() Fail(0x%X)", ret);
+ } else {
+ LOG(" num_of_in_cluster = %d", param_u8);
+ }
+
+ ret = zb_simple_desc_get_in_clusters(handle, &in_clusters);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("zb_simple_desc_get_in_clusters() Fail(0x%X)", ret);
+ } else {
+ for (i = 0; i < param_u8; i++)
+ LOG(" %04X (%s)", in_clusters[i], zb_get_cluster_name(in_clusters[i]));
+ }
+
+ ret = zb_simple_desc_get_num_of_out_clusters(handle, ¶m_u8);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("zb_simple_desc_get_num_of_out_clusters() Fail(0x%X)", ret);
+ } else {
+ LOG(" num_of_out_cluster = %d", param_u8);
+ }
+
+ ret = zb_simple_desc_get_out_clusters(handle, &out_clusters);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("zb_simple_desc_get_out_clusters() Fail(0x%X)", ret);
+ } else {
+ for (i = 0; i < param_u8; i++)
+ LOG(" %04X (%s)", out_clusters[i], zb_get_cluster_name(out_clusters[i]));
+ }
+}
+
+void _zb_zdo_extended_simple_desc_rsp(zb_zdp_status_e status,
+ zb_nwk_addr addr16, zb_end_point ep, unsigned char app_input_cluster_count,
+ unsigned char app_output_cluster_count, unsigned char start_idx,
+ const unsigned char *app_cluster_list, void *user_data)
+{
+ LOG("_zb_zdo_extended_simple_desc_rsp() status = 0x%02X (%s)",
+ status, zb_zdo_get_error_message(status));
+}
+
+//& purpose: A purpose of a first positive zb_zdo_nwk_addr_req.
+int utc_zb_zdo_nwk_addr_req_p(void)
+{
+ int ret;
+ zb_ieee_addr addr64 = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 };
+ unsigned char request_type = 1;
+ unsigned char start_idx = 1;
+
+ ret = zb_zdo_nwk_addr_req(handle, addr64, request_type, start_idx,
+ _zb_zdo_addr_rsp, NULL);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_zdo_nwk_addr_req.
+int utc_zb_zdo_nwk_addr_req_n(void)
+{
+ int ret;
+ zb_ieee_addr addr64 = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 };
+ unsigned char request_type = 1;
+ unsigned char start_idx = 1;
+
+ ret = zb_zdo_nwk_addr_req(NULL, addr64, request_type, start_idx,
+ _zb_zdo_addr_rsp, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_zdo_ieee_addr_req.
+int utc_zb_zdo_ieee_addr_req_p(void)
+{
+ int ret;
+ zb_nwk_addr addr16 = 0x1111;
+
+ ret = zb_zdo_ieee_addr_req(handle, addr16, _zb_zdo_addr_rsp, NULL);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_zdo_ieee_addr_req.
+int utc_zb_zdo_ieee_addr_req_n(void)
+{
+ int ret;
+ zb_nwk_addr addr16 = 0x1111;
+
+ ret = zb_zdo_ieee_addr_req(NULL, addr16, _zb_zdo_addr_rsp, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_zdo_active_ep.
+int utc_zb_zdo_active_ep_p(void)
+{
+ int ret;
+ zb_nwk_addr addr16 = 0x1111;
+
+ ret = zb_zdo_active_ep(handle, addr16, _zb_zdo_active_ep_rsp, NULL);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_zdo_active_ep.
+int utc_zb_zdo_active_ep_n(void)
+{
+ int ret;
+ zb_nwk_addr addr16 = 0x1111;
+
+ ret = zb_zdo_active_ep(NULL, addr16, _zb_zdo_active_ep_rsp, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_zdo_simple_desc_req.
+int utc_zb_zdo_simple_desc_req_p(void)
+{
+ int ret;
+ zb_nwk_addr addr16 = 0x1111;
+ unsigned char ep = 1;
+
+ ret = zb_zdo_simple_desc_req(handle, addr16, ep, _zb_zdo_simple_desc_rsp, NULL);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_zdo_simple_desc_req.
+int utc_zb_zdo_simple_desc_req_n(void)
+{
+ int ret;
+ zb_nwk_addr addr16 = 0x1111;
+ unsigned char ep = 1;
+
+ ret = zb_zdo_simple_desc_req(NULL, addr16, ep, _zb_zdo_simple_desc_rsp, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
--- /dev/null
+//
+// Copyright (c) 2016 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#include <glib.h>
+
+#include "assert.h"
+#include "utc-zigbee-common.h"
+
+extern bool g_feature;
+extern zb_zigbee_h handle;
+
+static GMainLoop *main_loop = NULL;
+
+zb_zdo_simple_desc_h simple_desc = NULL;
+
+void utc_zdo_simple_desc_startup(void)
+{
+ /* Initialize simple descriptor handle */
+ utc_startup();
+ zb_simple_desc_create(&simple_desc);
+
+ return;
+}
+
+void utc_zdo_simple_desc_cleanup(void)
+{
+ /* De-Initialize simple descriptor handle */
+ zb_simple_desc_destroy(simple_desc);
+ simple_desc = NULL;
+ utc_cleanup();
+
+ return;
+}
+
+void utc_zdo_getter_startup(void)
+{
+ zb_create(&handle);
+ main_loop = g_main_loop_new(NULL, FALSE);
+
+ return;
+}
+
+void utc_zdo_getter_cleanup(void)
+{
+ zb_destroy(handle);
+ handle = NULL;
+
+ g_main_loop_unref(main_loop);
+ main_loop = NULL;
+
+ return;
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_create.
+int utc_zb_simple_desc_create_p(void)
+{
+ int ret;
+ zb_zdo_simple_desc_h zdo_simple_desc = NULL;
+
+ ret = zb_simple_desc_create(&zdo_simple_desc);
+ zb_simple_desc_destroy(zdo_simple_desc);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_create.
+int utc_zb_simple_desc_create_n(void)
+{
+ int ret;
+
+ ret = zb_simple_desc_create(NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_destroy.
+int utc_zb_simple_desc_destroy_p(void)
+{
+ int ret;
+ zb_zdo_simple_desc_h zdo_simple_desc = NULL;
+
+ zb_simple_desc_create(&zdo_simple_desc);
+ ret = zb_simple_desc_destroy(zdo_simple_desc);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_destroy.
+int utc_zb_simple_desc_destroy_n(void)
+{
+ int ret;
+
+ ret = zb_simple_desc_destroy(NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_clone.
+int utc_zb_simple_desc_clone_p(void)
+{
+ int ret;
+ zb_zdo_simple_desc_h new_simple_desc = NULL;
+
+ zb_simple_desc_create(&new_simple_desc);
+ ret = zb_simple_desc_clone(simple_desc, new_simple_desc);
+ zb_simple_desc_destroy(new_simple_desc);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_clone.
+int utc_zb_simple_desc_clone_n(void)
+{
+ int ret;
+
+ ret = zb_simple_desc_clone(simple_desc, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_get_ep.
+int utc_zb_simple_desc_get_ep_p(void)
+{
+ int ret;
+ zb_end_point ep;
+
+ ret = zb_simple_desc_get_ep(simple_desc, &ep);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_get_ep.
+int utc_zb_simple_desc_get_ep_n(void)
+{
+ int ret;
+
+ ret = zb_simple_desc_get_ep(NULL, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_set_ep.
+int utc_zb_simple_desc_set_ep_p(void)
+{
+ int ret;
+ unsigned char ep = 1;
+
+ ret = zb_simple_desc_set_ep(simple_desc, ep);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_set_ep.
+int utc_zb_simple_desc_set_ep_n(void)
+{
+ int ret;
+ unsigned char ep = 1;
+
+ ret = zb_simple_desc_set_ep(NULL, ep);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_get_profile_id.
+int utc_zb_simple_desc_get_profile_id_p(void)
+{
+ int ret;
+ unsigned short profile_id;
+
+ ret = zb_simple_desc_get_profile_id(simple_desc, &profile_id);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_get_profile_id.
+int utc_zb_simple_desc_get_profile_id_n(void)
+{
+ int ret;
+
+ ret = zb_simple_desc_get_profile_id(NULL, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_set_profile_id.
+int utc_zb_simple_desc_set_profile_id_p(void)
+{
+ int ret;
+ unsigned short profile_id = 1;
+
+ ret = zb_simple_desc_set_profile_id(simple_desc, profile_id);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_set_profile_id.
+int utc_zb_simple_desc_set_profile_id_n(void)
+{
+ int ret;
+ unsigned short profile_id = 1;
+
+ ret = zb_simple_desc_set_profile_id(NULL, profile_id);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_get_device_id.
+int utc_zb_simple_desc_get_device_id_p(void)
+{
+ int ret;
+ unsigned short device_id;
+
+ ret = zb_simple_desc_get_device_id(simple_desc, &device_id);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_get_device_id.
+int utc_zb_simple_desc_get_device_id_n(void)
+{
+ int ret;
+
+ ret = zb_simple_desc_get_device_id(NULL, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_set_device_id.
+int utc_zb_simple_desc_set_device_id_p(void)
+{
+ int ret;
+ unsigned short device_id = 1;
+
+ ret = zb_simple_desc_set_device_id(simple_desc, device_id);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_set_device_id.
+int utc_zb_simple_desc_set_device_id_n(void)
+{
+ int ret;
+ unsigned short device_id = 1;
+
+ ret = zb_simple_desc_set_device_id(NULL, device_id);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_get_device_ver.
+int utc_zb_simple_desc_get_device_ver_p(void)
+{
+ int ret;
+ unsigned short device_ver;
+
+ ret = zb_simple_desc_get_device_ver(simple_desc, &device_ver);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_get_device_ver.
+int utc_zb_simple_desc_get_device_ver_n(void)
+{
+ int ret;
+
+ ret = zb_simple_desc_get_device_ver(NULL, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_set_device_ver.
+int utc_zb_simple_desc_set_device_ver_p(void)
+{
+ int ret;
+ unsigned short device_ver = 1;
+
+ ret = zb_simple_desc_set_device_ver(simple_desc, device_ver);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_set_device_ver.
+int utc_zb_simple_desc_set_device_ver_n(void)
+{
+ int ret;
+ unsigned short device_ver = 1;
+
+ ret = zb_simple_desc_set_device_ver(NULL, device_ver);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_get_num_of_in_clusters.
+int utc_zb_simple_desc_get_num_of_in_clusters_p(void)
+{
+ int ret;
+ unsigned char num;
+
+ ret = zb_simple_desc_get_num_of_in_clusters(simple_desc, &num);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_get_num_of_in_clusters.
+int utc_zb_simple_desc_get_num_of_in_clusters_n(void)
+{
+ int ret;
+
+ ret = zb_simple_desc_get_num_of_in_clusters(NULL, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_set_num_of_in_clusters.
+int utc_zb_simple_desc_set_num_of_in_clusters_p(void)
+{
+ int ret;
+ unsigned char num = 1;
+
+ ret = zb_simple_desc_set_num_of_in_clusters(simple_desc, num);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_set_num_of_in_clusters.
+int utc_zb_simple_desc_set_num_of_in_clusters_n(void)
+{
+ int ret;
+ unsigned char num = 1;
+
+ ret = zb_simple_desc_set_num_of_in_clusters(NULL, num);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_get_num_of_out_clusters.
+int utc_zb_simple_desc_get_num_of_out_clusters_p(void)
+{
+ int ret;
+ unsigned char num;
+
+ ret = zb_simple_desc_get_num_of_out_clusters(simple_desc, &num);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_get_num_of_out_clusters.
+int utc_zb_simple_desc_get_num_of_out_clusters_n(void)
+{
+ int ret;
+
+ ret = zb_simple_desc_get_num_of_out_clusters(NULL, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_set_num_of_out_clusters.
+int utc_zb_simple_desc_set_num_of_out_clusters_p(void)
+{
+ int ret;
+ unsigned char num = 1;
+
+ ret = zb_simple_desc_set_num_of_out_clusters(simple_desc, num);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_set_num_of_out_clusters.
+int utc_zb_simple_desc_set_num_of_out_clusters_n(void)
+{
+ int ret;
+ unsigned char num = 1;
+
+ ret = zb_simple_desc_set_num_of_out_clusters(NULL, num);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_get_in_clusters.
+int utc_zb_simple_desc_get_in_clusters_p(void)
+{
+ int ret;
+ unsigned short *in_clusters;
+
+ ret = zb_simple_desc_get_in_clusters(simple_desc, &in_clusters);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_get_in_clusters.
+int utc_zb_simple_desc_get_in_clusters_n(void)
+{
+ int ret;
+
+ ret = zb_simple_desc_get_in_clusters(NULL, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_set_in_clusters.
+int utc_zb_simple_desc_set_in_clusters_p(void)
+{
+ int ret;
+ unsigned short clusters[3];
+ unsigned short num = 3;
+
+ clusters[0] = ZB_ZCL_CLUSTER_BASIC;
+ clusters[1] = ZB_ZCL_CLUSTER_GROUPS;
+ clusters[2] = ZB_ZCL_CLUSTER_ON_OFF;
+
+ ret = zb_simple_desc_set_in_clusters(simple_desc, clusters, num);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_set_in_clusters.
+int utc_zb_simple_desc_set_in_clusters_n(void)
+{
+ int ret;
+ unsigned short num = 0;
+
+ ret = zb_simple_desc_set_in_clusters(NULL, NULL, num);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_get_out_clusters.
+int utc_zb_simple_desc_get_out_clusters_p(void)
+{
+ int ret;
+ unsigned short *out_clusters;
+
+ ret = zb_simple_desc_get_out_clusters(simple_desc, &out_clusters);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_get_out_clusters.
+int utc_zb_simple_desc_get_out_clusters_n(void)
+{
+ int ret;
+
+ ret = zb_simple_desc_get_out_clusters(NULL, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first positive zb_simple_desc_set_out_clusters.
+int utc_zb_simple_desc_set_out_clusters_p(void)
+{
+ int ret;
+ int num = 3;
+ unsigned short clusters[3];
+
+ clusters[0] = ZB_ZCL_CLUSTER_BASIC;
+ clusters[1] = ZB_ZCL_CLUSTER_GROUPS;
+ clusters[2] = ZB_ZCL_CLUSTER_ON_OFF;
+
+ ret = zb_simple_desc_set_out_clusters(simple_desc, clusters, num);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+//& purpose: A purpose of a first negative zb_simple_desc_set_out_clusters.
+int utc_zb_simple_desc_set_out_clusters_n(void)
+{
+ int ret;
+ int num = 0;
+
+ ret = zb_simple_desc_set_out_clusters(NULL, NULL, num);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
--- /dev/null
+//
+// Copyright (c) 2014 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#include <system_info.h>
+#include <glib.h>
+#include <dlog.h>
+
+#include "assert.h"
+#include "utc-zigbee-common.h"
+
+bool g_feature = false;
+zb_zigbee_h handle = NULL;
+static GMainLoop *main_loop = NULL;
+static int callback_ret = ZIGBEE_ERROR_OPERATION_FAILED;
+
+//& set: Zigbee
+#define CASE_TO_STR(x) case x: return #x;
+
+static const char* zigbee_error_to_string(zb_error_e err)
+{
+ switch (err) {
+ /* CHECK: List all enum values here */
+ CASE_TO_STR(ZIGBEE_ERROR_NONE)
+ CASE_TO_STR(ZIGBEE_ERROR_INVALID_PARAMETER)
+ CASE_TO_STR(ZIGBEE_ERROR_PARAMETER_OUT_OF_RANGE)
+ CASE_TO_STR(ZIGBEE_ERROR_OUT_OF_MEMORY)
+ CASE_TO_STR(ZIGBEE_ERROR_IO_ERROR)
+ CASE_TO_STR(ZIGBEE_ERROR_NO_DATA)
+ CASE_TO_STR(ZIGBEE_ERROR_NOT_SUPPORTED)
+ CASE_TO_STR(ZIGBEE_ERROR_PERMISSION_DENIED)
+ CASE_TO_STR(ZIGBEE_ERROR_INVALID_ENDPOINT)
+ CASE_TO_STR(ZIGBEE_ERROR_INVALID_ADDRESS)
+ CASE_TO_STR(ZIGBEE_ERROR_OPERATION_FAILED)
+ default :
+ return "ZIGBEE_ERROR_UNKNOWN";
+ }
+}
+
+static void _on_event(zb_nwk_addr addr16, zb_ieee_addr addr64, zb_event_e e,
+ zb_event_data_h ev, void *user_data)
+{
+ LOG("Zigbee event [%0X]\n", e);
+ callback_ret = ZIGBEE_ERROR_NONE;
+
+ /* Terminate main loop */
+ if (main_loop)
+ g_main_loop_quit(main_loop);
+}
+
+/**
+ * @function utc_startup
+ * @description Called before each test
+ * @parameter NA
+ * @return NA
+ */
+void utc_startup(void)
+{
+ int ret;
+ g_feature = false;
+
+ /* Find out Zigbee feature supported on DUT */
+ system_info_get_platform_bool("http://tizen.org/feature/network.zigbee", &g_feature);
+ if (false == g_feature) {
+ LOG("Zigbee feature is not enabled.\n");
+ PRINT_RETURN("system_info_get_platform_bool", g_feature);
+ }
+
+
+ /* Check serial driver loaded for Zigbee */
+ ret = zb_create(&handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("Failed to zb_create : [%s]\n", zigbee_error_to_string(ret));
+ PRINT_RETURN("zb_create", ret);
+ return;
+ }
+
+ zb_set_event_cb(handle, _on_event);
+#if 0
+ ret = zb_enable(handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ //LOG("Failed to zb_enable : [%d]", ret);
+ return;
+ }
+#endif
+}
+
+/**
+ * @function utc_cleanup
+ * @description Called after each test
+ * @parameter NA
+ * @return NA
+ */
+void utc_cleanup(void)
+{
+ int ret;
+
+ ret = zb_destroy(handle);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("Failed to zb_destroy : [%s]", zigbee_error_to_string(ret));
+ return;
+ }
+}
+
+int check_result_p(const char *api_name, const char *file_name, int line, int ret)
+{
+ PRINT_RETURN1(api_name, file_name, line, ret);
+
+ if (false == g_feature)
+ assert_eq(ret, ZIGBEE_ERROR_NOT_SUPPORTED);
+ assert_eq(ret, ZIGBEE_ERROR_NONE);
+
+ return ZIGBEE_ERROR_NONE;
+}
+
+int check_result_n(const char *api_name, const char *file_name, int line, int ret)
+{
+ PRINT_RETURN1(api_name, file_name, line, ret);
+
+ if (false == g_feature)
+ assert_eq(ret, ZIGBEE_ERROR_NOT_SUPPORTED);
+ assert_neq(ret, ZIGBEE_ERROR_NONE);
+
+ return ZIGBEE_ERROR_NONE;
+}
+
+/**
+ * @testcase utc_zb_create_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Initializes Zigbee API handle.
+ * @scenario Initializes Zigbee API handle.
+ * If already created, removes it and creates again.
+ */
+int utc_zb_create_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ if (false == g_feature) {
+ PRINT_RETURN("zb_create", ret);
+ assert_eq(ret, ZIGBEE_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ if (NULL != handle) {
+ zb_destroy(handle);
+ }
+
+ ret = zb_create(&handle);
+ PRINT_RETURN("zb_create", ret);
+ assert_eq(ret, ZIGBEE_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_zb_create_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Initializes Zigbee.
+ * @scenario Initialize Zigbee.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_create_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ ret = zb_create(NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_destroy_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Destroys Zigbee API handle.
+ * @scenario Destroys Zigbee API handle.
+ * Ensure return value should be ZIGBEE_ERROR_NONE.
+ */
+int utc_zb_destroy_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_zigbee_h handle2 = NULL;
+
+ zb_create(&handle2);
+
+ ret = zb_destroy(handle2);
+ handle = NULL;
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_destroy_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Destroys Zigbee API handle.
+ * @scenario Destroys Zigbee API handle.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_destroy_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ ret = zb_destroy(NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_enable_status_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets enable status code of the event.
+ * @scenario Gets enable status code of the event.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_enable_status_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_error_e status;
+
+ ret = zb_ev_get_enable_status(NULL, &status);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_form_network_panid_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description zb_ev_get_form_network_panid of the event.
+ * @scenario zb_ev_get_form_network_panid of the event.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_form_network_panid_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_nwk_addr panid;
+
+ ret = zb_ev_get_form_network_panid(NULL, &panid);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_join_count_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets the end-point number at a new device joined from the event.
+ * @scenario Gets the end-point number at a new device joined from the event.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_join_count_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ unsigned char count;
+
+ ret = zb_ev_get_join_count(NULL, &count);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_join_ep_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets the end-point list at a new device joined.
+ * @scenario Gets the end-point list at a new device joined.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_join_ep_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ unsigned char *ep = NULL;
+
+ ret = zb_ev_get_join_ep(NULL, (unsigned char **)&ep);
+ if (ep) {
+ free(ep);
+ ep = NULL;
+ }
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_child_left_status_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets status code of when child device left.
+ * @scenario Gets status code of when child device left.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_child_left_status_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_error_e status;
+
+ ret = zb_ev_get_child_left_status(NULL, &status);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_global_default_rsp_ep_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets the end-point number of who sent this default response.
+ * @scenario Gets the end-point number of who sent this default response.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_global_default_rsp_ep_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_end_point ep;
+
+ ret = zb_ev_get_global_default_rsp_ep(NULL, &ep);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_global_default_rsp_cluster_id_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets the cluster id of who sent this default response.
+ * @scenario Gets the cluster id of who sent this default response.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_global_default_rsp_cluster_id_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ unsigned short cluster_id;
+
+ ret = zb_ev_get_global_default_rsp_cluster_id(NULL, &cluster_id);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_global_default_rsp_command_id_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets the command id of who sent this default response.
+ * @scenario Gets the command id of who sent this default response.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_global_default_rsp_command_id_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ unsigned char cmd_id;
+
+ ret = zb_ev_get_global_default_rsp_command_id(NULL, &cmd_id);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_global_default_rsp_status_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets status code of a default response of the global command request.
+ * @scenario Gets status code of a default response of the global command request.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ *
+ */
+int utc_zb_ev_get_global_default_rsp_status_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_zcl_status_e status;
+
+ ret = zb_ev_get_global_default_rsp_status(NULL, &status);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_enroll_request_src_ep_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets the end-point number of thet this enroll request.
+ * @scenario Gets the end-point number of who sent this enroll request.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ *
+ */
+int utc_zb_ev_get_enroll_request_src_ep_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_end_point ep;
+
+ ret = zb_ev_get_enroll_request_src_ep(NULL, &ep);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_enroll_request_zone_type_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets zone type of the enroll request.
+ * @scenario Gets zone type of the enroll request.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_enroll_request_zone_type_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_zcl_ias_zone_type_e zone_type;
+
+ ret = zb_ev_get_enroll_request_zone_type(NULL, &zone_type);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_enroll_request_mfg_code_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets manufacturer code of the enroll request.
+ * @scenario Gets manufacturer code of the enroll request.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_enroll_request_mfg_code_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ unsigned char mfg_code;
+
+ ret = zb_ev_get_enroll_request_mfg_code(NULL, &mfg_code);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_ias_noti_src_ep_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets the end-point number of the IAS notification.
+ * @scenario Gets the end-point number of the IAS notification.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_ias_noti_src_ep_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ unsigned char src_ep;
+
+ ret = zb_ev_get_ias_noti_src_ep(NULL, &src_ep);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_ias_noti_zone_status_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets zone status of the IAS notification.
+ * @scenario Gets zone status of the IAS notification.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_ias_noti_zone_status_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ unsigned short zone_status;
+
+ ret = zb_ev_get_ias_noti_zone_status(NULL, &zone_status);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_ias_ext_noti_src_ep_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets the end-point number of the IAS extended notification.
+ * @scenario Gets the end-point number of the IAS extended notification.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_ias_ext_noti_src_ep_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ unsigned char src_ep;
+
+ ret = zb_ev_get_ias_ext_noti_src_ep(NULL, &src_ep);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_ias_ext_noti_status_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets status of the IAS extended notification.
+ * @scenario Gets status of the IAS extended notification.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_ias_ext_noti_status_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ unsigned char status;
+
+ ret = zb_ev_get_ias_ext_noti_status(NULL, &status);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_ias_ext_noti_zone_status_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets zone status of the IAS extended notification.
+ * @scenario Gets zone status of the IAS extended notification.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_ias_ext_noti_zone_status_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ unsigned short zone_status;
+
+ ret = zb_ev_get_ias_ext_noti_zone_status(NULL, &zone_status);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+
+/**
+ * @testcase utc_zb_ev_get_ias_ext_noti_delay_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets delay of the IAS extended notification.
+ * @scenario Gets delay of the IAS extended notification.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_ias_ext_noti_delay_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ unsigned short delay;
+
+ ret = zb_ev_get_ias_ext_noti_delay(NULL, &delay);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_ev_get_ias_ext_noti_zone_id_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets zond id of the IAS extended notification.
+ * @scenario Gets zond id of the IAS extended notification.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_ev_get_ias_ext_noti_zone_id_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ unsigned char zone_id;
+
+ ret = zb_ev_get_ias_ext_noti_zone_id(NULL, &zone_id);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_set_event_cb_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Sets event callback function.
+ * @scenario Sets event callback function.
+ * Ensure return value should be ZIGBEE_ERROR_NONE.
+ */
+int utc_zb_set_event_cb_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ ret = zb_set_event_cb(handle, NULL);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_set_event_cb_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Destroys Zigbee API handle.
+ * @scenario Destroys Zigbee API handle.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_set_event_cb_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ ret = zb_set_event_cb(NULL, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+static void _on_form_network(zb_nwk_addr panid, void *user_data)
+{
+ callback_ret = ZIGBEE_ERROR_NONE;
+
+ /* Terminate main loop */
+ g_main_loop_quit(main_loop);
+}
+
+/**
+ * @testcase utc_zb_form_network_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Forms Zigbee network.
+ * @scenario Forms Zigbee network. When
+ * Zigbee network formation is completed the callback is triggered.
+ */
+int utc_zb_form_network_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ ret = zb_form_network(handle, _on_form_network, NULL);
+
+ /* Waits for callback */
+ if (true == g_feature) {
+ main_loop = g_main_loop_new(NULL, false);
+ g_main_loop_run(main_loop);
+ }
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_form_network_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Forms Zigbee network.
+ * @scenario Forms Zigbee network.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_form_network_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ ret = zb_form_network(NULL, NULL, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+static void _on_disable_network(unsigned char status, void *user_data)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ callback_ret = ZIGBEE_ERROR_NONE;
+
+ /* Recover network to proceed other TCs. */
+ ret = zb_form_network(handle, _on_form_network, NULL);
+ if (ZIGBEE_ERROR_NONE != ret) {
+ LOG("Failed to recover network");
+
+ /* Terminate main loop */
+ g_main_loop_quit(main_loop);
+ }
+}
+
+/**
+ * @testcase utc_zb_disable_network_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Destroys Zigbee network.
+ * @scenario Destroys Zigbee network.
+ * When Zigbee network is destroyed the callback is triggered.
+ */
+int utc_zb_disable_network_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ ret = zb_disable_network(handle, _on_disable_network, NULL);
+
+ /* Waits for callback */
+ if (true == g_feature) {
+ main_loop = g_main_loop_new(NULL, false);
+ g_main_loop_run(main_loop);
+ }
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_disable_network_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Destroys Zigbee network.
+ * @scenario Forms Zigbee network.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_disable_network_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ ret = zb_disable_network(NULL, NULL, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_leave_device_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Forces a node to leave one network and to rejoin the other.
+ * @scenario Forces a node to leave one network.
+ * Ensure return value should be ZIGBEE_ERROR_NONE.
+ */
+int utc_zb_leave_device_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_ieee_addr addr64 = { 0, };
+
+ ret = zb_leave_device(handle, addr64, true, false);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_leave_device_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Forces a node to leave one network and to rejoin the other.
+ * @scenario Forces a node to leave one network.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_leave_device_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ ret = zb_leave_device(NULL, NULL, true, false);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_permit_join_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Enables coordinator device can accept other device's association request.
+ * @scenario Enables coordinator device can accept other device's association request.
+ * Ensure return value should be ZIGBEE_ERROR_NONE.
+ */
+int utc_zb_permit_join_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ ret = zb_permit_join(handle, 10);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_permit_join_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Enables coordinator device can accept other device's association request.
+ * @scenario Enables coordinator device can accept other device's association request.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_permit_join_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ ret = zb_permit_join(NULL, 10);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_get_controller_mac_address_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Shows current coordinator's IEEE MAC address.
+ * @scenario Shows current coordinator's IEEE MAC address.
+ * Ensure return value should be ZIGBEE_ERROR_NONE.
+ */
+int utc_zb_get_controller_mac_address_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_ieee_addr addr64;
+
+ ret = zb_get_controller_mac_address(handle, addr64);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_get_controller_mac_address_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Shows current coordinator's IEEE MAC address.
+ * @scenario Shows current coordinator's IEEE MAC address.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_get_controller_mac_address_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_ieee_addr addr64;
+
+ ret = zb_get_controller_mac_address(NULL, addr64);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_get_network_info_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Gets information of the current network environment of coordinator.
+ * @scenario Gets information of the current network environment of coordinator.
+ * Ensure return value should be ZIGBEE_ERROR_NONE.
+ */
+int utc_zb_get_network_info_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_ieee_addr co_addr64 = { 0, };
+ zb_nwk_addr nodeid;
+ zb_nwk_addr panid;
+ unsigned char channel;
+ unsigned char tx_power;
+
+ ret = zb_get_controller_mac_address(handle, co_addr64);
+
+ ret = zb_get_network_info(handle, co_addr64, &nodeid, &panid, &channel, &tx_power);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_get_network_info_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets information of the current network environment of coordinator.
+ * @scenario Gets information of the current network environment of coordinator.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_get_network_info_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_ieee_addr co_addr64 = { 0, };
+ zb_nwk_addr nodeid;
+ zb_nwk_addr panid;
+ unsigned char channel;
+ unsigned char tx_power;
+
+ ret = zb_get_network_info(NULL, co_addr64, &nodeid, &panid, &channel, &tx_power);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_get_ep_list_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Gets endpoint list information.
+ * @scenario Gets endpoint list information.
+ * Ensure return value should be ZIGBEE_ERROR_NONE.
+ */
+int utc_zb_end_dev_get_ep_list_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ zb_ieee_addr addr64 = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66};
+ unsigned char count = 0;
+ zb_end_point *ep_list = NULL;
+
+ ret = zb_end_dev_get_ep_list(handle, addr64, &count, &ep_list);
+
+ if (ep_list) {
+ free(ep_list);
+ ep_list = NULL;
+ }
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_get_ep_list_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Gets endpoint list information.
+ * @scenario Gets endpoint list information.
+ * Ensure return value should be ZIGBEE_ERROR_NONE.
+ */
+int utc_zb_end_dev_get_ep_list_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ zb_ieee_addr addr64 = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66};
+ unsigned char count = 0;
+ zb_end_point *ep_list = NULL;
+
+ ret = zb_end_dev_get_ep_list(NULL, addr64, &count, &ep_list);
+
+ if (ep_list) {
+ free(ep_list);
+ ep_list = NULL;
+ }
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_get_cluster_list_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Gets endpoint list information.
+ * @scenario Gets endpoint list information.
+ * Ensure return value should be ZIGBEE_ERROR_NONE.
+ */
+int utc_zb_end_dev_get_cluster_list_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ zb_end_point ep = 1;
+ unsigned char in_count = 0;
+ unsigned char out_count = 0;
+ zb_ieee_addr dest_addr64 = { 0, };
+ zb_cluster_id *in_cluster_list = NULL;
+ zb_cluster_id *out_cluster_list = NULL;
+
+ ret = zb_end_dev_get_cluster_list(handle, dest_addr64, ep,
+ &in_count, &in_cluster_list, &out_count, &out_cluster_list);
+
+ if (in_cluster_list) {
+ free(in_cluster_list);
+ in_cluster_list = NULL;
+ }
+ if (out_cluster_list) {
+ free(out_cluster_list);
+ out_cluster_list = NULL;
+ }
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_get_cluster_list_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets endpoint list information.
+ * @scenario Gets endpoint list information.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_get_cluster_list_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_ieee_addr dest_addr64 = { 0, };
+ zb_end_point ep = 1;
+ unsigned char in_count = 0;
+ unsigned char out_count = 0;
+ zb_cluster_id *in_cluster_list = NULL;
+ zb_cluster_id *out_cluster_list = NULL;
+
+ ret = zb_end_dev_get_cluster_list(NULL, dest_addr64, ep,
+ &in_count, &in_cluster_list, &out_count, &out_cluster_list);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_get_end_dev_info_list_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Gets all children device list information.
+ * @scenario Gets all children device list information.
+ * Ensure return value should be ZIGBEE_ERROR_NONE.
+ */
+int utc_zb_end_dev_get_end_dev_info_list_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ int count;
+ zb_end_dev_info_h *list = NULL;
+
+ ret = zb_end_dev_get_end_dev_info_list(handle, &count, &list);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_get_end_dev_info_list_n1
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets all children device list information.
+ * @scenario Gets all children device list information.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_get_end_dev_info_list_n1(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ int count;
+ zb_end_dev_info_h *list = NULL;
+
+ ret = zb_end_dev_get_end_dev_info_list(NULL, &count, &list);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_get_end_dev_info_list_n2
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets all children device list information.
+ * @scenario Gets all children device list information.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_get_end_dev_info_list_n2(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ int count;
+
+ ret = zb_end_dev_get_end_dev_info_list(handle, &count, NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_list_free_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Frees all children device list information.
+ * @scenario Frees all children device list information.
+ * Ensure return value should be ZIGBEE_ERROR_NONE.
+ */
+int utc_zb_end_dev_info_list_free_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ int count;
+ zb_end_dev_info_h *list = NULL;
+
+ zb_end_dev_get_end_dev_info_list(handle, &count, &list);
+ ret = zb_end_dev_info_list_free(list);
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_list_free_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Frees all children device list information.
+ * @scenario Frees all children device list information.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_info_list_free_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ ret = zb_end_dev_info_list_free(NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_create_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Creates an end-device handle.
+ * @scenario Creates an end-device handle.
+ * Ensure return value should be ZIGBEE_ERROR_NONE.
+ */
+int utc_zb_end_dev_info_create_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_end_dev_info_h dev = NULL;
+
+ ret = zb_end_dev_info_create(&dev);
+ if (dev) {
+ zb_end_dev_info_destroy(dev);
+ dev = NULL;
+ }
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_create_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Creates an end-device handle.
+ * @scenario Creates an end-device handle.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_info_create_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+
+ ret = zb_end_dev_info_create(NULL);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_clone_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Clone an end-device handle.
+ * @scenario Clone an end-device handle.
+ * Ensure return value should be ZIGBEE_ERROR_NONE.
+ */
+int utc_zb_end_dev_info_clone_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_end_dev_info_h src = NULL;
+ zb_end_dev_info_h dst = NULL;
+
+ zb_end_dev_info_create(&src);
+ ret = zb_end_dev_info_clone(src, &dst);
+ if (src) {
+ zb_end_dev_info_destroy(src);
+ src = NULL;
+ }
+ if (dst) {
+ zb_end_dev_info_destroy(dst);
+ dst = NULL;
+ }
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_clone_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Clone an end-device handle.
+ * @scenario Clone an end-device handle.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_info_clone_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_end_dev_info_h src = NULL;
+ zb_end_dev_info_h dst = NULL;
+
+ ret = zb_end_dev_info_clone(src, &dst);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_destroy_p
+ * @since_tizen 5.0
+ * @type Positive
+ * @description Clone an end-device handle.
+ * @scenario Clone an end-device handle.
+ * Ensure return value should be ZIGBEE_ERROR_NONE.
+ */
+int utc_zb_end_dev_info_destroy_p(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_end_dev_info_h dev = NULL;
+
+ zb_end_dev_info_create(&dev);
+ if (dev) {
+ ret = zb_end_dev_info_destroy(dev);
+ dev = NULL;
+ }
+
+ return check_result_p(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_destroy_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Clone an end-device handle.
+ * @scenario Clone an end-device handle.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_info_destroy_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_end_dev_info_h dev = NULL;
+
+ ret = zb_end_dev_info_destroy(dev);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_get_network_address_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets network address of a specific end-point.
+ * @scenario Gets network address of a specific end-point.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_info_get_network_address_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_nwk_addr addr16;
+
+ ret = zb_end_dev_info_get_network_address(NULL, &addr16);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_get_ieee_address_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets IEEE address of a specific end-point.
+ * @scenario Gets IEEE address of a specific end-point.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_info_get_ieee_address_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_ieee_addr addr64;
+
+ ret = zb_end_dev_info_get_ieee_address(NULL, addr64);
+
+ if (false == g_feature)
+ assert_eq(ret, ZIGBEE_ERROR_NOT_SUPPORTED);
+ else
+ assert_eq(ret, ZIGBEE_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_get_num_of_ep_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets a number of end-points of a specific end-point.
+ * @scenario Gets a number of end-points of a specific end-point.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_info_get_num_of_ep_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ unsigned char count;
+
+ ret = zb_end_dev_info_get_num_of_ep(NULL, &count);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_get_ep_list_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets list of end-points of a specific end-point.
+ * @scenario Gets list of end-points of a specific end-point.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_info_get_ep_list_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_end_point *ep_list = NULL;
+
+ ret = zb_end_dev_info_get_ep_list(NULL, &ep_list);
+
+ if (ep_list) {
+ free(ep_list);
+ ep_list = NULL;
+ }
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_get_mac_capability_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets security capability of a specific end-point.
+ * @scenario Gets security capability of a specific end-point.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_info_get_mac_capability_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_zdp_mac_capability_field_e cap;
+
+ ret = zb_end_dev_info_get_mac_capability(NULL, &cap);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_get_alternative_pan_coordinator_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets ability of alternative PAN coordinator of a specific end-point.
+ * @scenario Gets ability of alternative PAN coordinator of a specific end-point.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_info_get_alternative_pan_coordinator_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_zdp_do_pan_coordinator_e available;
+
+ ret = zb_end_dev_info_get_alternative_pan_coordinator(NULL, &available);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_get_device_id_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets device id of a specific end-point.
+ * @scenario Gets device id of a specific end-point.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_info_get_device_id_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_end_point ep = 1;
+ zb_device_id device_id;
+
+ ret = zb_end_dev_info_get_device_id(NULL, ep, &device_id);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_get_profile_id_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets profile id of a specific end-point.
+ * @scenario Gets profile id of a specific end-point.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_info_get_profile_id_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_end_point ep = 1;
+ zb_profile_id profile_id;
+
+ ret = zb_end_dev_info_get_profile_id(NULL, ep, &profile_id);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_get_power_source_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets power source type of a specific end-point.
+ * @scenario Gets power source type of a specific end-point.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_info_get_power_source_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_zdp_power_e power_src;
+
+ ret = zb_end_dev_info_get_power_source(NULL, &power_src);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
+/**
+ * @testcase utc_zb_end_dev_info_get_security_capabilty_n
+ * @since_tizen 5.0
+ * @type Negative
+ * @description Gets power source type of a specific end-point.
+ * @scenario Gets power source type of a specific end-point.
+ * Ensure return value should be ZIGBEE_ERROR_INVALID_PARAMETER.
+ */
+int utc_zb_end_dev_info_get_security_capabilty_n(void)
+{
+ int ret = ZIGBEE_ERROR_NONE;
+ zb_zdp_security_cap_e cap;
+
+ ret = zb_end_dev_info_get_security_capability(NULL, &cap);
+
+ return check_result_n(__FUNCTION__, __FILE__, __LINE__, ret);
+}
+
--- /dev/null
+//
+// Copyright (c) 2014 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef __UTC_ZIGBEE_CONFIGURATION_H__
+#define __UTC_ZIGBEE_CONFIGURATION_H__
+
+#define SUPPORT_SIMPLE_DESCRIPTION
+#define SUPPORT_NODE_POWER_DESCRIPTION
+#define SUPPORT_NODE_DESCRIPION
+#define SUPPORT_NETWORK_LIST_RECORD
+#define SUPPORT_ROUTING_TABLE_DESCRIPTION
+#define SUPPORT_NEIGHBOR_TABLE_DESCRIPTION
+#define SUPPORT_ZDO_BINDING_TABLE
+#define SUPPORT_ZDO_NETWORK_LIST_RECORD
+
+#define SUPPORT_ZDO_NETWORK_MANAGER
+#define SUPPORT_ZDO_DEVICE_DISCOVERY_MANAGER
+#define SUPPORT_ZDO_BIND_MANAGER
+
+#define SUPPORT_ZCL_ALARM_CLUSTER
+#define SUPPORT_ZCL_BASIC_CLUSTER
+#define SUPPORT_ZCL_COLOR_CONTROL_CLUSTER
+#define SUPPORT_ZCL_GLOBAL_COMMNAD_CLUSTER
+#define SUPPORT_ZCL_GROUP_CLUSTER
+#define SUPPORT_ZCL_IAS_ZONE_CLUSTER
+#define SUPPORT_ZCL_IDENTIFY_CLUSTER
+#define SUPPORT_ZCL_LEVEL_CONTROL_CLUSTER
+#define SUPPORT_ZCL_ON_OFF_CLUSTER
+#define SUPPORT_ZCL_POLL_CONTROL_CLUSTER
+#define SUPPORT_ZCL_SCENE_CLUSTER
+#define SUPPORT_ZCL_THERMOSTAT_CLUSTER
+
+#define SUPPORT_ZCL_READ_ATTRIBUTE_STATUS_RECORD
+#define SUPPORT_ZCL_DISCOVER_ATTRIBUTE_INFO
+#define SUPPORT_ZCL_WRITE_ATTRIBUTE_STATUS
+#define SUPPORT_ZCL_REPORT_CONFIG_REPORT
+#define SUPPORT_ZCL_READ_REPORT_CONFIG_RECORD
+#define SUPPORT_ZCL_REPORT_CONFIG_RESPONSE_RECORD
+#define SUPPORT_ZCL_ATTRIHUTE_INFO
+#define SUPPORT_ZCL_EXTENDED_ATTRIHUTE_INFO
+
+#endif /* __UTC_ZIGBEE_CONFIGURATION_H__ */
mobile:aarch64:utc:watchface-complication;
mobile:x86:utc:watchface-complication;
mobile:x86_64:utc:watchface-complication;
+mobile:armv7l:utc:zigbee;
+mobile:aarch64:utc:zigbee;
+mobile:x86:utc:zigbee;
+mobile:x86_64:utc:zigbee;
## itc ##
mobile:armv7l:itc:appcore-watch;
wearable:armv7l:utc:video-util;
wearable:aarch64:utc:video-util;
wearable:x86:utc:video-util;
+
wearable:x86_64:utc:video-util;
wearable:armv7l:utc:wifi-direct;
wearable:aarch64:utc:wifi-direct;
wearable:aarch64:utc:peripheral-io;
wearable:x86:utc:peripheral-io;
wearable:x86_64:utc:peripheral-io;
+wearable:armv7l:utc:zigbee;
+wearable:aarch64:utc:zigbee;
+wearable:x86:utc:zigbee;
+wearable:x86_64:utc:zigbee;
## itc ##
wearable:armv7l:itc:asp;