* cf) Process resource usage functions use return_error because
* it is only for Runtime-info (we can control this package)
*/
-#define D_BUS_REPLY_NULL(ivc) \
+#define D_BUS_REPLY_EMPTY_TUPLE(ivc, signature) \
{ \
GDBusMessage *re = g_dbus_message_new_method_reply(g_dbus_method_invocation_get_message(ivc)); \
d_bus_reply_message(re); \
g_object_unref(ivc); \
}
+#define D_BUS_REPLY_NULL(ivc, signature) \
+{ \
+ g_dbus_method_invocation_return_value(ivc, g_variant_new(signature)); \
+}
+
+#define D_BUS_REPLY_ERR(ivc) \
+{ \
+ g_dbus_method_invocation_return_error(ivc, \
+ G_DBUS_ERROR, G_DBUS_ERROR_FAILED, \
+ "%s failed", g_dbus_method_invocation_get_method_name(ivc)); \
+}
int d_bus_call_method_sync_gvariant(const char *dest, const char *path,
const char *interface, const char *method,
return;
failure:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
static const char dbus_methods_xml[] =
}
if (heart_battery_get_capacity_history_latest(arrays, charge, max_size) != RESOURCED_ERROR_NONE) {
_E("Failed to get capacity history latest");
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
return;
}
return;
failure:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
static void dbus_get_battery_capacity_history(GDBusMethodInvocation *invocation, GVariant *params)
return;
failure:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
static void dbus_get_battery_used_time(GDBusMethodInvocation *invocation, GVariant *params)
return;
failure:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
static void dbus_get_battery_charging_time(GDBusMethodInvocation *invocation, GVariant *params)
int ret = heart_battery_capacity_save_to_file(HEART_BATTERY_CAPACITY_DATA_FILE);
if (ret) {
_E("save to file failed");
- D_BUS_REPLY_NULL(invocation)
+ D_BUS_REPLY_ERR(invocation)
return;
}
failure:
if (data)
free(data);
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
static void dbus_heart_get_cpu_data_list(GDBusMethodInvocation *invocation, GVariant *params)
return;
failure:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
static void dbus_heart_reset_cpu_data(GDBusMethodInvocation *invocation, GVariant *params)
ret = heart_cpu_save_to_file(cache);
if (ret) {
_E("save to file failed");
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
return;
}
cache->last_file_commit_time = logging_get_time(CLOCK_BOOTTIME);
/* update data list from db */
logging_update(true);
- D_BUS_REPLY_NULL(invocation);
+ g_dbus_method_invocation_return_value(invocation, NULL);
}
static void dbus_flush_cache(GDBusMethodInvocation *invocation, GVariant *params)
/* flush module cache */
logging_save_to_storage(true);
- D_BUS_REPLY_NULL(invocation);
+ g_dbus_method_invocation_return_value(invocation, NULL);
}
static const char dbus_methods_xml_prefix[] =
return;
failure:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
static void dbus_get_memory_data(GDBusMethodInvocation *invocation, GVariant *params)
return;
failure:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
static void dbus_get_memory_data_list(GDBusMethodInvocation *invocation, GVariant *params)
return;
failure:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
static void dbus_get_memorydb(GDBusMethodInvocation *invocation, GVariant *params)
return;
failure:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
static void dbus_get_memoryforeach(GDBusMethodInvocation *invocation, GVariant *params)
return;
failure:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
static void dbus_memory_save_to_file(GDBusMethodInvocation *invocation, GVariant *params)
if (ret) {
_E("save to file failed");
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
return;
}
_E("Write request failed");
finish:
- D_BUS_REPLY_NULL(invocation);
+ g_dbus_method_invocation_return_value(invocation, NULL);
}
static const char dbus_methods_xml[] =
MEMINFO_MASK_SWAP_FREE);
if (r < 0) {
_E("Failed to get meminfo: %m");
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
return;
}
return;
null_reply:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
EXPORT_TEST void proc_dbus_active_signal_handler(GVariant *params)
return;
failure:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
EXPORT_TEST void dbus_get_app_memory(GDBusMethodInvocation *invocation, GVariant *params)
return;
failure:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
EXPORT_TEST void dbus_get_memory_list(GDBusMethodInvocation *invocation, GVariant *params)
ret = proc_get_uptime(&uptime);
if (ret) {
_E("Failed to get uptime");
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
return;
}
return;
failure:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
EXPORT_TEST void dbus_get_cpu_lists(GDBusMethodInvocation *invocation, GVariant *params)
return;
failure:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
static void dbus_get_get_ram_size(GDBusMethodInvocation *invocation, GVariant *params)
goto failure;
}
proc_dbus_exclude_signal_handler(params);
- D_BUS_REPLY_NULL(invocation);
+ g_dbus_method_invocation_return_value(invocation, NULL);
return;
failure:
proc_update_watchdog(wai, timeout);
finish:
- D_BUS_REPLY_NULL(invocation);
+ D_BUS_REPLY_ERR(invocation);
}
static void proc_watchdog_wakeup(GVariant *params)
endfunction()
ADD_TESTS(cmocka-core "${UNIT_TESTS_CFLAGS}" "-Wl,--wrap=malloc,--wrap=free,--wrap=g_slist_append,--wrap=g_slist_remove,--wrap=strdup,--wrap=strndup -O0" cmocka-core.c)
-ADD_TESTS(cmocka-proc-dbus-typecheck "${UNIT_TESTS_CFLAGS}" "-Wl,--wrap=fread_int,--wrap=fread_uint,--wrap=fread_ulong,--wrap=proc_set_group,--wrap=g_dbus_method_invocation_get_message,--wrap=g_dbus_message_new_method_reply,--wrap=d_bus_reply_message,--wrap=g_object_unref,--wrap=g_dbus_method_invocation_return_value,--wrap=find_app_info_by_appid,--wrap=proc_get_mem_usage,--wrap=proc_get_cpu_time,--wrap=resourced_proc_status_change,--wrap=resourced_notify,--wrap=proc_set_runtime_exclude_list,--wrap=find_app_info,--wrap=proc_add_app_info,--wrap=proc_create_app_info,--wrap=proc_app_list_add_app_info,--wrap=proc_check_suspend_state,--wrap=g_dbus_method_invocation_return_error,--wrap=proc_dbus_exclude_signal_handler -O0" cmocka-proc-dbus-typecheck.c)
+ADD_TESTS(cmocka-proc-dbus-typecheck "${UNIT_TESTS_CFLAGS}" "-Wl,--wrap=fread_int,--wrap=fread_uint,--wrap=fread_ulong,--wrap=proc_set_group,--wrap=g_dbus_method_invocation_get_message,--wrap=g_dbus_message_new_method_reply,--wrap=d_bus_reply_message,--wrap=g_object_unref,--wrap=g_dbus_method_invocation_return_value,--wrap=find_app_info_by_appid,--wrap=proc_get_mem_usage,--wrap=proc_get_cpu_time,--wrap=resourced_proc_status_change,--wrap=resourced_notify,--wrap=proc_set_runtime_exclude_list,--wrap=find_app_info,--wrap=proc_add_app_info,--wrap=proc_create_app_info,--wrap=proc_app_list_add_app_info,--wrap=proc_check_suspend_state,--wrap=g_dbus_method_invocation_return_error,--wrap=proc_dbus_exclude_signal_handler,--wrap=g_dbus_method_invocation_get_method_name -O0" cmocka-proc-dbus-typecheck.c)
ADD_TESTS(cmocka-proc-dbus-aul-group "${UNIT_TESTS_CFLAGS}" "-Wl,--wrap=fread_int,--wrap=fread_uint,--wrap=fread_ulong,--wrap=proc_set_group,--wrap=proc_get_oom_score_adj,--wrap=resourced_notify -O0" cmocka-proc-dbus-aul-group.c)
ADD_TESTS(cmocka-proc-add-app-info "${UNIT_TESTS_CFLAGS}" "-Wl,--wrap=fread_int,--wrap=fread_uint,--wrap=fread_ulong,--wrap=g_slist_prepend,--wrap=g_slist_remove -O0" cmocka-proc-add-app-info.c)
-ADD_TESTS(cmocka-dbus-get-memory-lists "${UNIT_TESTS_CFLAGS}" "-Wl,--wrap=fread_int,--wrap=fread_uint,--wrap=fread_ulong,--wrap=g_dbus_method_invocation_return_value,--wrap=proc_get_mem_usage,--wrap=g_dbus_method_invocation_get_message,--wrap=g_dbus_message_new_method_reply,--wrap=d_bus_reply_message -O0" cmocka-dbus-get-memory-lists.c)
-ADD_TESTS(cmocka-dbus-get-cpu-lists "${UNIT_TESTS_CFLAGS}" "-Wl,--wrap=fread_int,--wrap=fread_uint,--wrap=fread_ulong,--wrap=proc_get_uptime,--wrap=proc_get_cpu_time,--wrap=g_dbus_method_invocation_return_value,--wrap=g_dbus_method_invocation_get_message,--wrap=g_dbus_message_new_method_reply,--wrap=d_bus_reply_message -O0" cmocka-dbus-get-cpu-lists.c)
+ADD_TESTS(cmocka-dbus-get-memory-lists "${UNIT_TESTS_CFLAGS}" "-Wl,--wrap=fread_int,--wrap=fread_uint,--wrap=fread_ulong,--wrap=g_dbus_method_invocation_return_value,--wrap=proc_get_mem_usage,--wrap=g_dbus_method_invocation_get_message,--wrap=g_dbus_message_new_method_reply,--wrap=d_bus_reply_message,--wrap=g_dbus_method_invocation_return_error -O0" cmocka-dbus-get-memory-lists.c)
+ADD_TESTS(cmocka-dbus-get-cpu-lists "${UNIT_TESTS_CFLAGS}" "-Wl,--wrap=fread_int,--wrap=fread_uint,--wrap=fread_ulong,--wrap=proc_get_uptime,--wrap=proc_get_cpu_time,--wrap=g_dbus_method_invocation_return_value,--wrap=g_dbus_method_invocation_get_message,--wrap=g_dbus_message_new_method_reply,--wrap=d_bus_reply_message,--wrap=g_dbus_method_invocation_return_error -O0" cmocka-dbus-get-cpu-lists.c)
ADD_TESTS(cmocka-file-helper "${UNIT_TESTS_CFLAGS}" "-Wl,--wrap=fopen,--wrap=fputs,--wrap=fscanf,--wrap=fgets,--wrap=fopen64,--wrap=vfscanf,--wrap=fscanf64,--wrap=__isoc99_fscanf,--wrap=asprintf -O0" cmocka-file-helper.c)
ADD_TESTS(cmocka-test-child-pid "${UNIT_TESTS_CFLAGS}" "-Wl,--wrap=fread_int,--wrap=fread_uint,--wrap=fread_ulong,--wrap=g_slist_prepend,--wrap=g_slist_remove -O0" cmocka-test-child-pid.c)
ADD_TESTS(cmocka-proc-app-list "${UNIT_TESTS_CFLAGS}" "-Wl,--wrap=fread_int,--wrap=fread_uint,--wrap=fread_ulong,--wrap=g_slist_prepend,--wrap=g_slist_remove,--wrap=g_slist_prepend,--wrap=g_slist_remove -O0" cmocka-proc-app-list.c)
will_return(__wrap_proc_get_uptime, 0);
will_return(__wrap_proc_get_uptime, RESOURCED_ERROR_FAIL);
- expect_value(__wrap_g_dbus_method_invocation_get_message, invocation, cast_ptr_to_largest_integral_type(obj));
- expect_value(__wrap_g_dbus_message_new_method_reply, method_call_message, cast_ptr_to_largest_integral_type(obj));
- expect_value(__wrap_d_bus_reply_message, msg, cast_ptr_to_largest_integral_type(NULL));
+ expect_value(__wrap_g_dbus_method_invocation_return_error, invocation, obj);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, domain, G_DBUS_ERROR);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, code, G_DBUS_ERROR_FAILED);
+ expect_string(__wrap_g_dbus_method_invocation_return_error, format, "%s failed");
dbus_get_cpu_list((GDBusMethodInvocation *)obj, NULL);
return RESOURCED_ERROR_NONE;
}
+void __wrap_g_dbus_method_invocation_return_error(GDBusMethodInvocation *invocation, GQuark domain, gint code, const gchar *format)
+{
+ check_expected_ptr(invocation);
+ check_expected(domain);
+ check_expected(code);
+ check_expected_ptr(format);
+}
+
static void test_dbus_get_cpu_lists(void **state)
{
GVariant *params;
obj = g_object_new(G_TYPE_NONE, "");
/* negative test - no params */
- expect_value(__wrap_g_dbus_method_invocation_get_message, invocation, cast_ptr_to_largest_integral_type(obj));
- expect_value(__wrap_g_dbus_message_new_method_reply, method_call_message, cast_ptr_to_largest_integral_type(obj));
- expect_value(__wrap_d_bus_reply_message, msg, cast_ptr_to_largest_integral_type(NULL));
+ expect_value(__wrap_g_dbus_method_invocation_return_error, invocation, obj);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, domain, G_DBUS_ERROR);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, code, G_DBUS_ERROR_FAILED);
+ expect_string(__wrap_g_dbus_method_invocation_return_error, format, "%s failed");
dbus_get_cpu_lists((GDBusMethodInvocation *)obj, NULL);
/* negative test - invalid params */
- expect_value(__wrap_g_dbus_method_invocation_get_message, invocation, cast_ptr_to_largest_integral_type(obj));
- expect_value(__wrap_g_dbus_message_new_method_reply, method_call_message, cast_ptr_to_largest_integral_type(obj));
- expect_value(__wrap_d_bus_reply_message, msg, cast_ptr_to_largest_integral_type(NULL));
+ expect_value(__wrap_g_dbus_method_invocation_return_error, invocation, obj);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, domain, G_DBUS_ERROR);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, code, G_DBUS_ERROR_FAILED);
+ expect_string(__wrap_g_dbus_method_invocation_return_error, format, "%s failed");
params = g_variant_new("(i)", -1);
dbus_get_cpu_lists((GDBusMethodInvocation *)obj, params);
will_return(__wrap_proc_get_uptime, 0);
will_return(__wrap_proc_get_uptime, RESOURCED_ERROR_FAIL);
- expect_value(__wrap_g_dbus_method_invocation_get_message, invocation, cast_ptr_to_largest_integral_type(obj));
- expect_value(__wrap_g_dbus_message_new_method_reply, method_call_message, cast_ptr_to_largest_integral_type(obj));
- expect_value(__wrap_d_bus_reply_message, msg, cast_ptr_to_largest_integral_type(NULL));
+ expect_value(__wrap_g_dbus_method_invocation_return_error, invocation, obj);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, domain, G_DBUS_ERROR);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, code, G_DBUS_ERROR_FAILED);
+ expect_string(__wrap_g_dbus_method_invocation_return_error, format, "%s failed");
params = g_variant_new("(i)", PROC_TYPE_GUI);
dbus_get_cpu_lists((GDBusMethodInvocation *)obj, params);
return RESOURCED_ERROR_NONE;
}
+void __wrap_g_dbus_method_invocation_return_error(GDBusMethodInvocation *invocation, GQuark domain, gint code, const gchar *format)
+{
+ check_expected_ptr(invocation);
+ check_expected(domain);
+ check_expected(code);
+ check_expected_ptr(format);
+}
+
static void test_dbus_get_memory_lists(void **state)
{
GVariant *params;
obj = g_object_new(G_TYPE_NONE, "");
/* negative test - no params */
- expect_value(__wrap_g_dbus_method_invocation_get_message, invocation, cast_ptr_to_largest_integral_type(obj));
- expect_value(__wrap_g_dbus_message_new_method_reply, method_call_message, cast_ptr_to_largest_integral_type(obj));
- expect_value(__wrap_d_bus_reply_message, msg, cast_ptr_to_largest_integral_type(NULL));
+ expect_value(__wrap_g_dbus_method_invocation_return_error, invocation, obj);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, domain, G_DBUS_ERROR);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, code, G_DBUS_ERROR_FAILED);
+ expect_string(__wrap_g_dbus_method_invocation_return_error, format, "%s failed");
dbus_get_memory_lists((GDBusMethodInvocation *)obj, NULL);
/* negative test - invalid params */
params = g_variant_new("(i)", -1);
- expect_value(__wrap_g_dbus_method_invocation_get_message, invocation, cast_ptr_to_largest_integral_type(obj));
- expect_value(__wrap_g_dbus_message_new_method_reply, method_call_message, cast_ptr_to_largest_integral_type(obj));
- expect_value(__wrap_d_bus_reply_message, msg, cast_ptr_to_largest_integral_type(NULL));
+ expect_value(__wrap_g_dbus_method_invocation_return_error, invocation, obj);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, domain, G_DBUS_ERROR);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, code, G_DBUS_ERROR_FAILED);
+ expect_string(__wrap_g_dbus_method_invocation_return_error, format, "%s failed");
dbus_get_memory_lists((GDBusMethodInvocation *)obj, NULL);
g_variant_unref(params);
void __real_proc_dbus_exclude_signal_handler(GVariant *params);
+void __wrap_g_dbus_method_invocation_return_error(GDBusMethodInvocation *invocation, GQuark domain, gint code, const gchar *format)
+{
+ check_expected_ptr(invocation);
+ check_expected(domain);
+ check_expected(code);
+ check_expected_ptr(format);
+}
+
int __wrap_fread_uint(const char *path, u_int32_t *number)
{
return 0;
check_expected(invocation);
}
+const gchar * __wrap_g_dbus_method_invocation_get_method_name(GDBusMethodInvocation *invocation)
+{
+ check_expected(invocation);
+ return mock_ptr_type(const gchar *);
+}
+
static void test_dbus_get_memory_lists(void **state)
{
GDBusMethodInvocation *inv = (GDBusMethodInvocation*)0x123123;
GVariant *params = g_variant_new("(i)", 7); //PROC_TYPE_MAX = 7
- expect_value(__wrap_g_dbus_method_invocation_get_message, invocation, 0x123123);
- will_return(__wrap_g_dbus_method_invocation_get_message, (GDBusMessage*)0x123123);
-
- expect_value(__wrap_g_dbus_message_new_method_reply, method_call_message, 0x123123);
- will_return(__wrap_g_dbus_message_new_method_reply, (GDBusMessage *)0x123123);
- expect_value(__wrap_d_bus_reply_message, msg, (GDBusMessage *)0x123123);
- will_return(__wrap_d_bus_reply_message, (GDBusMessage *)0x123123);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, invocation, 0x123123);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, domain, G_DBUS_ERROR);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, code, G_DBUS_ERROR_FAILED);
+ expect_string(__wrap_g_dbus_method_invocation_return_error, format, "%s failed");
- expect_any(__wrap_g_object_unref, object);
- expect_any(__wrap_g_object_unref, object);
+ expect_value(__wrap_g_dbus_method_invocation_get_method_name, invocation, 0x123123);
+ will_return(__wrap_g_dbus_method_invocation_get_method_name, 0);
dbus_get_memory_lists(inv, params);
g_variant_unref(params);
inv = NULL;
params = g_variant_new("(i)", 7);
- expect_value(__wrap_g_dbus_method_invocation_get_message, invocation, NULL);
- will_return(__wrap_g_dbus_method_invocation_get_message, (GDBusMessage*)0x101010);
- expect_value(__wrap_g_dbus_message_new_method_reply, method_call_message, 0x101010);
- will_return(__wrap_g_dbus_message_new_method_reply, (GDBusMessage *)0x101010);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, invocation, 0);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, domain, G_DBUS_ERROR);
+ expect_value(__wrap_g_dbus_method_invocation_return_error, code, G_DBUS_ERROR_FAILED);
+ expect_string(__wrap_g_dbus_method_invocation_return_error, format, "%s failed");
- expect_value(__wrap_d_bus_reply_message, msg, (GDBusMessage *)0x101010);
- will_return(__wrap_d_bus_reply_message, (GDBusMessage *)0x101010);
+ expect_value(__wrap_g_dbus_method_invocation_get_method_name, invocation, 0);
+ will_return(__wrap_g_dbus_method_invocation_get_method_name, 0);
- expect_any(__wrap_g_object_unref, object);
- expect_any(__wrap_g_object_unref, object);
dbus_get_memory_lists(inv, params);
g_variant_unref(params);
proc_dbus_suspend_hint(params);
}
-void __wrap_g_dbus_method_invocation_return_error(GDBusMethodInvocation *invocation, GQuark domain, gint code, const gchar *format)
-{
- check_expected_ptr(invocation);
- check_expected(domain);
- check_expected(code);
- check_expected_ptr(format);
-}
-
void __wrap_proc_dbus_exclude_signal_handler(GVariant *params)
{
check_expected_ptr(params);
g_variant_unref(params);
params = g_variant_new("(si)", "str", 1);
- expect_value(__wrap_g_dbus_method_invocation_get_message, invocation, inv);
- will_return(__wrap_g_dbus_method_invocation_get_message, (GDBusMessage*)0x101010);
- expect_value(__wrap_g_dbus_message_new_method_reply, method_call_message, 0x101010);
- will_return(__wrap_g_dbus_message_new_method_reply, (GDBusMessage *)0x101010);
-
- expect_value(__wrap_d_bus_reply_message, msg, (GDBusMessage *)0x101010);
- will_return(__wrap_d_bus_reply_message, (GDBusMessage *)0x101010);
-
- expect_any(__wrap_g_object_unref, object);
- expect_any(__wrap_g_object_unref, object);
+ expect_value(__wrap_g_dbus_method_invocation_return_value, invocation, inv);
proc_dbus_exclude_method_handler(inv, params);
g_variant_unref(params);