diff options
Diffstat (limited to 'unittest/alarm_manager_unittest.cpp')
-rw-r--r--[-rwxr-xr-x] | unittest/alarm_manager_unittest.cpp | 493 |
1 files changed, 190 insertions, 303 deletions
diff --git a/unittest/alarm_manager_unittest.cpp b/unittest/alarm_manager_unittest.cpp index 62d3607..f12030b 100755..100644 --- a/unittest/alarm_manager_unittest.cpp +++ b/unittest/alarm_manager_unittest.cpp @@ -1,5 +1,5 @@ /* -_all * Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved + * Copyright (c) 2021 Samsung Electronics Co., Ltd All Rights Reserved * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,415 +13,302 @@ _all * Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved * See the License for the specific language governing permissions and * limitations under the License. */ + +#include <appsvc.h> +#include <bundle_cpp.h> #include <gmock/gmock.h> #include <gtest/gtest.h> -#include <unistd.h> #include <stdio.h> +#include <unistd.h> -#include <appsvc.h> - -#include "unittest.h" #include "alarm.h" #include "alarm-internal.h" -#include "mock/gio_fake.h" -#include "mock/glib_fake.h" -#include "mock/aul_fake.h" -#include "mock/notification_fake.h" -#include "mock/pkgmgr_info_fake.h" - -class AlarmServerTest : public ::testing::Test { - protected: - void SetUp() override { - } - - void TearDown() override { - } -}; - -int __aul_app_get_pkgid_bypid_for_uid_fake(int pid, char* pkgid, int size, - uid_t uid) -{ - return 0; -} - -static GDBusConnection* __g_bus_get_sync_fake(GBusType type, GCancellable *cancel, - GError **error) -{ - GDBusConnection *con = (GDBusConnection*)g_object_new(G_TYPE_OBJECT, NULL); - return con; -} - -static guint __g_dbus_connection_signal_subscribe_fake(GDBusConnection *con, const gchar* sender, - const gchar* interface, const gchar* member, const gchar* object, - const gchar* arg, GDBusSignalFlags flags, GDBusSignalCallback callback, - gpointer user_data, GDestroyNotify noti) -{ - return 1; -} - -static GDBusNodeInfo* __g_dbus_node_info_new_for_xml_fake(const gchar* xml, GError **error) -{ - GDBusNodeInfo *info = (GDBusNodeInfo*)g_object_new(G_TYPE_OBJECT, NULL); - return info; -} +#include "aul_mock.h" +#include "dbus_mock.h" +#include "pkgmgr_info_mock.h" +#include "test_fixture.h" +#include "tzplatform_config_mock.h" +#include "unittest.h" -static guint __g_bus_own_name_on_connection_fake(GDBusConnection *con, const gchar* name, - GBusNameOwnerFlags flags, GBusNameAcquiredCallback bus_name_acquired, - GBusNameLostCallback lost, gpointer user_data, GDestroyNotify noti) -{ - return 1; -} +using ::testing::_; +using ::testing::DoAll; +using ::testing::Return; +using ::testing::SetArgPointee; +using ::testing::Invoke; -gpointer __g_hash_table_lookup_fake(GHashTable *table, gconstpointer p) -{ - return NULL; -} - -int __pkgmgrinfo_pkginfo_get_usr_pkginfo_fake(const char *pkgid, uid_t uid, - pkgmgrinfo_pkginfo_h *handle) -{ - return 0; -} +namespace { -int __pkgmgrinfo_pkginfo_get_api_version_fake( - pkgmgrinfo_pkginfo_h handle, char **version) -{ - return 0; +GDBusConnection* __g_bus_get_sync_fake(GBusType type, GCancellable* cancel, + GError** error) { + GDBusConnection* con = (GDBusConnection*)g_object_new(G_TYPE_OBJECT, + nullptr); + return con; } -int __pkgmgrinfo_pkginfo_get_is_global_fake( - pkgmgrinfo_pkginfo_h handle, bool *is_global) -{ - *is_global = true; - return 0; +void __g_dbus_node_info_unref_fake(GDBusNodeInfo* info) { + if (info && info->interfaces) { + free(info->interfaces); + free(info); + } + info = nullptr; + return; } -int __pkgmgrinfo_appinfo_get_usr_appinfo_fake(const char *pkgid, uid_t uid, - pkgmgrinfo_pkginfo_h *handle) -{ - return 0; -} +GDBusNodeInfo* __g_dbus_node_info_new_for_xml_fake(const gchar* xml, + GError** error) { + GDBusNodeInfo* info = (GDBusNodeInfo*)malloc(sizeof(GDBusNodeInfo)); + if (!info) + return nullptr; -int __pkgmgrinfo_appinfo_get_component_type_fake(pkgmgrinfo_appinfo_h handle, char **type) -{ - return 0; -} + GDBusInterfaceInfo** interface = + (GDBusInterfaceInfo**)malloc(sizeof(GDBusInterfaceInfo*)); + if (!interface) { + free(info); + return nullptr; + } -int __pkgmgrinfo_pkginfo_destroy_fake(pkgmgrinfo_pkginfo_h handle) -{ - return 0; -} + info->ref_count = 10; + info->path = nullptr; + info->interfaces = interface; + info->nodes = nullptr; + info->annotations = nullptr; -int __pkgmgrinfo_appinfo_destroy_fake(pkgmgrinfo_appinfo_h handle) -{ - return 0; + return info; } -bundle *__bundle_decode_fake(const bundle_raw* raw, const int len) -{ - bundle *b; +class Mocks : virtual public ::testing::NiceMock<AulMock>, + virtual public ::testing::NiceMock<DbusMock>, + virtual public ::testing::NiceMock<PkgmgrInfoMock>, + virtual public ::testing::NiceMock<TzplatformConfigMock> {}; +} // namespace - b = bundle_create(); - bundle_add_str(b, "__APP_SVC_PKG_NAME__", "org.tizen.alarm"); +class AlarmServerTest : public TestFixture { + public: + AlarmServerTest() : TestFixture(std::make_unique<::Mocks>()) {} - return b; -} - -TEST_F(AlarmServerTest, alarm_manager_alarm_create_p) -{ - int ret; - int alarm_id; - GVariant *param = NULL; - gint64 reserved = 1; + virtual void SetUp() {} + virtual void TearDown() {} +}; - g_hash_table_lookup_fake.custom_fake = __g_hash_table_lookup_fake; - g_bus_get_sync_fake.custom_fake = __g_bus_get_sync_fake; - g_dbus_connection_signal_subscribe_fake.custom_fake = __g_dbus_connection_signal_subscribe_fake; - g_dbus_node_info_new_for_xml_fake.custom_fake = __g_dbus_node_info_new_for_xml_fake; - g_bus_own_name_on_connection_fake.custom_fake = __g_bus_own_name_on_connection_fake; +TEST_F(AlarmServerTest, alarm_manager_alarm_create_p) { + EXPECT_CALL(GetMock<TzplatformConfigMock>(), tzplatform_mkpath(_, _)) + .WillRepeatedly(Invoke([](enum tzplatform_variable id, + const char* path) { + return ".alarm_test.db"; + })); + EXPECT_CALL(GetMock<DbusMock>(), g_bus_get_sync(_, _, _)) + .WillRepeatedly(Invoke(__g_bus_get_sync_fake)); + EXPECT_CALL(GetMock<DbusMock>(), g_dbus_connection_signal_subscribe(_, _, _, + _, _, _, _, _, _, _)) + .WillRepeatedly(Return(1)); + EXPECT_CALL(GetMock<DbusMock>(), g_dbus_node_info_new_for_xml(_, _)) + .WillRepeatedly(Invoke(__g_dbus_node_info_new_for_xml_fake)); + EXPECT_CALL(GetMock<DbusMock>(), g_dbus_node_info_unref(_)) + .WillRepeatedly(Invoke(__g_dbus_node_info_unref_fake)); + EXPECT_CALL(GetMock<DbusMock>(), g_dbus_connection_register_object(_, _, _, + _, _, _, _)) + .WillRepeatedly(Return(1)); + EXPECT_CALL(GetMock<DbusMock>(), g_bus_own_name_on_connection(_, _, _, + _, _, _, _)) + .WillRepeatedly(Return(1)); _alarm_initialize(); - param = g_variant_new("(ssiiiiiiiiiiiiixss)", + int alarm_id = 0; + gint64 reserved = 1; + GVariant* param = g_variant_new("(ssiiiiiiiiiiiiixss)", "app_service_name", "app_service_name_mod", 2019, 11, 1, 12, 59, 59, 400, 2020, 12, 29, 3, 1, 1, reserved, "reserved_service_name", "reserved_service_name_mod"); - - ret = alarm_manager_alarm_create(param, 5001, 1, &alarm_id); + int ret = alarm_manager_alarm_create(param, 5001, getpid(), "sender", + &alarm_id); EXPECT_EQ(ALARMMGR_RESULT_SUCCESS, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_create_appsvc_p) -{ - int ret; - int alarm_id; - GVariant *param = NULL; - bundle *b = NULL; - bundle_raw *b_data = NULL; - int len = 0; - gint64 reserved = 1; - - aul_app_get_pkgid_bypid_for_uid_fake.custom_fake = __aul_app_get_pkgid_bypid_for_uid_fake; - g_hash_table_lookup_fake.custom_fake = __g_hash_table_lookup_fake; - - pkgmgrinfo_pkginfo_get_usr_pkginfo_fake.custom_fake = - __pkgmgrinfo_pkginfo_get_usr_pkginfo_fake; - pkgmgrinfo_pkginfo_get_api_version_fake.custom_fake = - __pkgmgrinfo_pkginfo_get_api_version_fake; - - pkgmgrinfo_appinfo_get_usr_appinfo_fake.custom_fake = - __pkgmgrinfo_appinfo_get_usr_appinfo_fake; +TEST_F(AlarmServerTest, alarm_manager_alarm_create_appsvc_p) { + EXPECT_CALL(GetMock<PkgmgrInfoMock>(), + pkgmgrinfo_pkginfo_get_api_version(_, _)) + .WillRepeatedly(Invoke([](pkgmgrinfo_pkginfo_h handle, + char** version) -> int { + static char ver[] = "2.0"; + *version = ver; + return 0; + })); + EXPECT_CALL(GetMock<PkgmgrInfoMock>(), pkgmgrinfo_appinfo_get_pkgid(_, _)) + .WillRepeatedly(Invoke([](pkgmgrinfo_appinfo_h handle, + char **pkgid) -> int { + static char sPkgid[] = "org.tizen.alarm_unitest"; + *pkgid = sPkgid; + return 0; + })); - pkgmgrinfo_appinfo_get_component_type_fake.custom_fake = - __pkgmgrinfo_appinfo_get_component_type_fake; - pkgmgrinfo_appinfo_destroy_appinfo_fake.custom_fake = - __pkgmgrinfo_appinfo_destroy_fake; - - //bundle_decode_fake.custom_fake = __bundle_decode_fake; - - b = bundle_create(); - bundle_add_str(b, "__APP_SVC_PKG_NAME__", "org.tizen.alarm"); - bundle_encode(b, &b_data, &len); - - param = g_variant_new("(iiiiiiiiiixiixs)", + gint64 reserved = 1; + tizen_base::Bundle b = { {"__APP_SVC_PKG_NAME__", "org.tizen.alarm" } }; + auto raw = b.ToRaw(); + GVariant* param = g_variant_new("(iiiiiiiiiixiixs)", 2019, 11, 1, 12, 59, 59, 2020, 12, 29, 1, reserved, 1, 0, reserved, - (char *)b_data); - ret = alarm_manager_alarm_create_appsvc(param, 5001, 1, &alarm_id); - bundle_free(b); - if (b_data) - free(b_data); + reinterpret_cast<char*>(raw.first.get())); + int alarm_id = 0; + int ret = alarm_manager_alarm_create_appsvc(param, 5001, getpid(), "sender", + &alarm_id); EXPECT_EQ(ALARMMGR_RESULT_SUCCESS, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_create_periodic_p) -{ - int ret; - int alarm_id; - GVariant *param = NULL; - - param = g_variant_new("(ssiii)", +TEST_F(AlarmServerTest, alarm_manager_alarm_create_periodic_p) { + GVariant* param = g_variant_new("(ssiii)", "app_service_name", "app_service_name_mod", 1, 0, 1); - ret = alarm_manager_alarm_create_periodic(param, 5001, 1, &alarm_id); + int alarm_id = 0; + int ret = alarm_manager_alarm_create_periodic(param, 5001, getpid(), "sender", + &alarm_id); EXPECT_EQ(ALARMMGR_RESULT_SUCCESS, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_create_noti_p) -{ - int ret; +TEST_F(AlarmServerTest, alarm_manager_alarm_create_noti_p) { int alarm_id; - GVariant *param = NULL; gint64 reserved = 1; - - param = g_variant_new("(iiiiiiiiiixiixs)", + GVariant* param = g_variant_new("(iiiiiiiiiixiixs)", 2019, 11, 1, 12, 59, 59, 2020, 12, 29, 3, - 0, reserved, 1, 0, reserved, + reserved, 1, 0, reserved, "bundle"); - - - ret = alarm_manager_alarm_create_noti(param, 5001, 1, &alarm_id); + int ret = alarm_manager_alarm_create_noti(param, 5001, getpid(), "sender", + &alarm_id); EXPECT_EQ(ALARMMGR_RESULT_SUCCESS, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_delete_p) -{ - int ret; - GVariant *param = NULL; - - param = g_variant_new("(i)", 1); - - ret = alarm_manager_alarm_delete(param, 5001, 1); +TEST_F(AlarmServerTest, alarm_manager_alarm_delete_p) { + GVariant* param = g_variant_new("(i)", 1); + int ret = alarm_manager_alarm_delete(param, 5001, getpid(), "sender"); EXPECT_EQ(ERR_ALARM_INVALID_ID, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_delete_all_p) -{ - int ret; - GVariant *param = NULL; - - ret = alarm_manager_alarm_delete_all(param, 5001, 1); +TEST_F(AlarmServerTest, alarm_manager_alarm_delete_all_p) { + GVariant* param = nullptr; + int ret = alarm_manager_alarm_delete_all(param, 5001, getpid(), "sender"); EXPECT_EQ(ALARMMGR_RESULT_SUCCESS, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_update_n) -{ - int ret; +TEST_F(AlarmServerTest, alarm_manager_alarm_update_n) { int alarm_id = 1; - GVariant *param = NULL; gint64 reserved = 1; - - param = g_variant_new("(iiiiiiiiiixiixi)", + GVariant* param = g_variant_new("(iiiiiiiiiixiixi)", alarm_id, 2019, 11, 1, 12, 59, 59, 2020, 12, 29, 0, reserved, 0, 0, reserved, 0); - - ret = alarm_manager_alarm_update(param, 5001, 1); + int ret = alarm_manager_alarm_update(param, 5001, getpid(), "sender"); EXPECT_EQ(ERR_ALARM_INVALID_ID, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_get_number_of_ids_p) -{ - int ret; - int num_of_ids; - - ret = alarm_manager_alarm_get_number_of_ids(5001, 1, &num_of_ids); +TEST_F(AlarmServerTest, alarm_manager_alarm_get_number_of_ids_p) { + int num_of_ids = 0; + int ret = alarm_manager_alarm_get_number_of_ids(5001, getpid(), "sender", + &num_of_ids); EXPECT_EQ(ALARMMGR_RESULT_SUCCESS, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_get_list_of_ids_p) -{ - int ret; - int num_of_alarm; - GVariant *alarm_array = NULL; - GVariant *param = NULL; - - param = g_variant_new("(i)", 10); - - ret = alarm_manager_alarm_get_list_of_ids(param, 5001, 1, &alarm_array, - &num_of_alarm); +TEST_F(AlarmServerTest, alarm_manager_alarm_get_list_of_ids_p) { + int num_of_alarm = 0; + GVariantBuilder *alarm_array = nullptr; + GVariant* param = g_variant_new("(i)", 10); + int ret = alarm_manager_alarm_get_list_of_ids(param, 5001, getpid(), "sender", + alarm_array, &num_of_alarm); EXPECT_EQ(ALARMMGR_RESULT_SUCCESS, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_get_appsvc_info_n) -{ - int ret; - gchar *b_data = NULL; - GVariant *param = NULL; - - param = g_variant_new("(i)", 10); - - ret = alarm_manager_alarm_get_appsvc_info(param, 5001, &b_data); +TEST_F(AlarmServerTest, alarm_manager_alarm_get_appsvc_info_n) { + gchar *b_data = nullptr; + GVariant* param = g_variant_new("(i)", 10); + int ret = alarm_manager_alarm_get_appsvc_info(param, 5001, &b_data); EXPECT_EQ(ERR_ALARM_INVALID_ID, ret); + if (b_data) + free(b_data); } -TEST_F(AlarmServerTest, alarm_manager_alarm_get_noti_info_n) -{ - int ret; - gchar *b_data = NULL; - GVariant *param = NULL; - - param = g_variant_new("(i)", 10); +TEST_F(AlarmServerTest, alarm_manager_alarm_get_noti_info_n) { + gchar *b_data = nullptr; + GVariant* param = g_variant_new("(i)", 10); - ret = alarm_manager_alarm_get_noti_info(param, 5001, &b_data); + int ret = alarm_manager_alarm_get_noti_info(param, 5001, &b_data); EXPECT_EQ(ERR_ALARM_INVALID_ID, ret); + if (b_data) + free(b_data); } -TEST_F(AlarmServerTest, alarm_manager_alarm_get_info_n) -{ - int ret; - alarm_info_t info; - GVariant *param = NULL; - - param = g_variant_new("(i)", 10); - - ret = alarm_manager_alarm_get_info(param, 5001, &info); +TEST_F(AlarmServerTest, alarm_manager_alarm_get_info_n) { + base_info_t info; + GVariant* param = g_variant_new("(i)", 10); + int ret = alarm_manager_alarm_get_info(param, 5001, &info); EXPECT_EQ(ERR_ALARM_INVALID_ID, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_get_next_duetime_n) -{ - int ret; +TEST_F(AlarmServerTest, alarm_manager_alarm_get_next_duetime_n) { time_t duetime; - GVariant *param = NULL; - - param = g_variant_new("(i)", 10); - - ret = alarm_manager_alarm_get_next_duetime(param, 5001, &duetime); + GVariant* param = g_variant_new("(i)", 10); + int ret = alarm_manager_alarm_get_next_duetime(param, 5001, &duetime); EXPECT_EQ(ERR_ALARM_INVALID_ID, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_get_all_info_p) -{ - int ret; - char *db_path; - - ret = alarm_manager_alarm_get_all_info(5001, &db_path); +TEST_F(AlarmServerTest, alarm_manager_alarm_get_all_info_p) { + char* db_path = nullptr; + int ret = alarm_manager_alarm_get_all_info(5001, &db_path); EXPECT_EQ(ALARMMGR_RESULT_SUCCESS, ret); + if (db_path) + free(db_path); } -TEST_F(AlarmServerTest, alarm_manager_alarm_set_rtc_time_n) -{ - int ret; - GVariant *param = NULL; - - param = g_variant_new("(iiiiii)", 2019, 11, 1, 12, 12, 12); - - ret = alarm_manager_alarm_set_rtc_time(param); +TEST_F(AlarmServerTest, alarm_manager_alarm_set_rtc_time_n) { + GVariant* param = g_variant_new("(iiiiii)", 2019, 11, 1, 12, 12, 12); + int ret = alarm_manager_alarm_set_rtc_time(param); EXPECT_EQ(ERR_ALARM_SYSTEM_FAIL, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_set_time_n) -{ - int ret; - GVariant *param = NULL; - - param = g_variant_new("(x)", 20190012); - - ret = alarm_manager_alarm_set_time(param, 1); +TEST_F(AlarmServerTest, alarm_manager_alarm_set_time_n) { + GVariant* param = g_variant_new("(x)", 20190012); + int ret = alarm_manager_alarm_set_time(param, getpid(), "sender"); EXPECT_EQ(ERR_ALARM_SYSTEM_FAIL, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_set_time_with_propagation_delay_n) -{ - int ret; - GVariant *param = NULL; - - param = g_variant_new("(xxxx)", 20190012, 2949294, 292929, 29299292); - - ret = alarm_manager_alarm_set_time_with_propagation_delay(param, 1); +TEST_F(AlarmServerTest, alarm_manager_alarm_set_time_with_propagation_delay_n) { + GVariant* param = g_variant_new("(xxxx)", 20190012, 2949294, 292929, + 29299292); + int ret = alarm_manager_alarm_set_time_with_propagation_delay(param, getpid(), + "sender"); EXPECT_EQ(ERR_ALARM_SYSTEM_FAIL, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_set_timezone_n) -{ - int ret; - GVariant *param = NULL; - - param = g_variant_new("(s)", "/usr/share/zoneinfo/Asia/Seoul"); - - ret = alarm_manager_alarm_set_timezone(param); +TEST_F(AlarmServerTest, alarm_manager_alarm_set_timezone_n) { + GVariant* param = g_variant_new("(s)", "/usr/share/zoneinfo/Asia/Seoul"); + int ret = alarm_manager_alarm_set_timezone(param); EXPECT_EQ(ERR_ALARM_SYSTEM_FAIL, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_set_global_n) -{ - int ret; - GVariant *param = NULL; - GVariant *param2 = NULL; +TEST_F(AlarmServerTest, alarm_manager_alarm_set_global) { + EXPECT_CALL(GetMock<PkgmgrInfoMock>(), pkgmgrinfo_pkginfo_is_global(_, _)) + .WillRepeatedly( + Invoke([](pkgmgrinfo_pkginfo_h, bool *is_global) -> int { + *is_global = true; + return 0; + })); + gint64 reserved = 1; int alarm_id; - - g_hash_table_lookup_fake.custom_fake = __g_hash_table_lookup_fake; - pkgmgrinfo_pkginfo_get_usr_pkginfo_fake.custom_fake = - __pkgmgrinfo_pkginfo_get_usr_pkginfo_fake; - pkgmgrinfo_pkginfo_is_global_fake.custom_fake = - __pkgmgrinfo_pkginfo_get_is_global_fake; - pkgmgrinfo_pkginfo_destroy_pkginfo_fake.custom_fake = - __pkgmgrinfo_pkginfo_destroy_fake; - - param = g_variant_new("(ssiiiiiiiiiiiiixss)", + GVariant* param = g_variant_new("(ssiiiiiiiiiiiiixss)", "app_service_name", "app_service_name_mod", 2019, 11, 1, 12, 59, 59, 400, 2020, 12, 29, 3, 1, 1, reserved, "reserved_service_name", "reserved_service_name_mod"); - - ret = alarm_manager_alarm_create(param, 5001, 1, &alarm_id); - param2 = g_variant_new("(ib)", alarm_id, true); - + int ret = alarm_manager_alarm_create(param, 5001, getpid(), "sender", &alarm_id); + GVariant* param2 = g_variant_new("(ib)", alarm_id, true); ret = alarm_manager_alarm_set_global(param2, 5001); - EXPECT_EQ(ERR_ALARM_SYSTEM_FAIL, ret); + EXPECT_EQ(ALARMMGR_RESULT_SUCCESS, ret); } -TEST_F(AlarmServerTest, alarm_manager_alarm_get_global_n) -{ - int ret; - GVariant *param = NULL; +TEST_F(AlarmServerTest, alarm_manager_alarm_get_global_n) { gboolean global; - - param = g_variant_new("(i)", 1); - - ret = alarm_manager_alarm_get_global(param, &global); + GVariant* param = g_variant_new("(i)", 1); + int ret = alarm_manager_alarm_get_global(param, &global); EXPECT_EQ(ERR_ALARM_INVALID_ID, ret); } + |