diff options
author | Jakub Tyszkowski <jakub.tyszkowski@tieto.com> | 2014-01-20 10:36:06 +0100 |
---|---|---|
committer | Szymon Janc <szymon.janc@gmail.com> | 2014-01-20 23:23:28 +0100 |
commit | f11e2ee8d817b4f71942025c15a67da7b2957f22 (patch) | |
tree | 09c18d56c06ac8fa18c532065faf5a302bbc6438 /android/ipc-tester.c | |
parent | 411df0651e36f56fbf1b602ea29188811c125333 (diff) | |
download | bluez-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.c | 42 |
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, ®ister_bt_msg, 1); + test_generic("Malformed data (wrong payload declared)", + ipc_send_tc, setup, teardown, + ®ister_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(); } |