summaryrefslogtreecommitdiff
path: root/android/ipc-tester.c
diff options
context:
space:
mode:
authorJakub Tyszkowski <jakub.tyszkowski@tieto.com>2014-01-20 10:36:06 +0100
committerSzymon Janc <szymon.janc@gmail.com>2014-01-20 23:23:28 +0100
commitf11e2ee8d817b4f71942025c15a67da7b2957f22 (patch)
tree09c18d56c06ac8fa18c532065faf5a302bbc6438 /android/ipc-tester.c
parent411df0651e36f56fbf1b602ea29188811c125333 (diff)
downloadbluez-f11e2ee8d817b4f71942025c15a67da7b2957f22.tar.gz
android/ipc-tester: Add basic test cases for IPC's daemon site
This patch adds first few test cases checking for proper daemon termination in case of receiving invalid IPC data.
Diffstat (limited to 'android/ipc-tester.c')
-rw-r--r--android/ipc-tester.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/android/ipc-tester.c b/android/ipc-tester.c
index 816719cf3..c8bc9b8e6 100644
--- a/android/ipc-tester.c
+++ b/android/ipc-tester.c
@@ -569,15 +569,57 @@ struct regmod_msg register_bt_msg = {
},
};
+struct regmod_msg register_bt_malformed_size_msg = {
+ .header = {
+ .service_id = HAL_SERVICE_ID_CORE,
+ .opcode = HAL_OP_REGISTER_MODULE,
+ /* wrong payload size declared */
+ .len = sizeof(struct hal_cmd_register_module) - 1,
+ },
+ .cmd = {
+ .service_id = HAL_SERVICE_ID_CORE,
+ },
+};
+
+struct hal_hdr enable_unknown_service_hdr = {
+ .service_id = HAL_SERVICE_ID_MAX + 1,
+ .opcode = HAL_OP_REGISTER_MODULE,
+ .len = 0,
+};
+
+struct hal_hdr enable_bt_service_hdr = {
+ .service_id = HAL_SERVICE_ID_BLUETOOTH,
+ .opcode = HAL_OP_ENABLE,
+ .len = 0,
+};
+
int main(int argc, char *argv[])
{
snprintf(exec_dir, sizeof(exec_dir), "%s", dirname(argv[0]));
tester_init(&argc, &argv);
+ /* check general IPC errors */
test_generic("Too small data",
ipc_send_tc, setup, teardown,
&register_bt_msg, 1);
+ test_generic("Malformed data (wrong payload declared)",
+ ipc_send_tc, setup, teardown,
+ &register_bt_malformed_size_msg,
+ sizeof(register_bt_malformed_size_msg),
+ HAL_SERVICE_ID_BLUETOOTH);
+
+ test_generic("Invalid service",
+ ipc_send_tc, setup, teardown,
+ &enable_unknown_service_hdr,
+ sizeof(enable_unknown_service_hdr),
+ HAL_SERVICE_ID_BLUETOOTH);
+
+ test_generic("Enable unregistered service",
+ ipc_send_tc, setup, teardown,
+ &enable_bt_service_hdr,
+ sizeof(enable_bt_service_hdr));
+
return tester_run();
}