summaryrefslogtreecommitdiff
path: root/android/ipc-tester.c
diff options
context:
space:
mode:
authorJakub Tyszkowski <jakub.tyszkowski@tieto.com>2014-01-20 10:36:08 +0100
committerSzymon Janc <szymon.janc@gmail.com>2014-01-20 23:23:28 +0100
commitf9d9b513c2593d6c159a3194e3c36023341dff89 (patch)
tree5c13aa659d8557a5a5be0bb39f9d9e0a52b74907 /android/ipc-tester.c
parentd3b695dfa4e7b5d9c4be64d820836b3f2393abee (diff)
downloadbluez-f9d9b513c2593d6c159a3194e3c36023341dff89.tar.gz
android/ipc-tester: Add cases for service opcode boundaries
This patch adds tests sending out of range opcode for each service.
Diffstat (limited to 'android/ipc-tester.c')
-rw-r--r--android/ipc-tester.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/android/ipc-tester.c b/android/ipc-tester.c
index db0a30ad4..cebe75132 100644
--- a/android/ipc-tester.c
+++ b/android/ipc-tester.c
@@ -558,6 +558,21 @@ static void ipc_send_tc(const void *data)
3, user, g_free); \
} while (0)
+#define test_opcode_valid(_name, _service, _opcode, _len, _servicelist...) \
+ do { \
+ static struct hal_hdr hdr = { \
+ .service_id = _service, \
+ .opcode = _opcode, \
+ .len = _len, \
+ }; \
+ \
+ test_generic("Opcode out of range: "_name, \
+ ipc_send_tc, setup, teardown, \
+ &hdr, \
+ sizeof(hdr), \
+ _servicelist); \
+ } while (0)
+
struct regmod_msg register_bt_msg = {
.header = {
.service_id = HAL_SERVICE_ID_CORE,
@@ -654,5 +669,22 @@ int main(int argc, char *argv[])
&enable_bt_service_hdr,
sizeof(enable_bt_service_hdr));
+ /* check service handler's max opcode value */
+ test_opcode_valid("CORE", HAL_SERVICE_ID_CORE, 0x03, 0);
+
+ test_opcode_valid("BLUETOOTH", HAL_SERVICE_ID_BLUETOOTH, 0x15, 0,
+ HAL_SERVICE_ID_BLUETOOTH);
+
+ test_opcode_valid("SOCK", HAL_SERVICE_ID_SOCK, 0x03, 0,
+ HAL_SERVICE_ID_BLUETOOTH, HAL_SERVICE_ID_SOCK);
+
+ test_opcode_valid("HIDHOST", HAL_SERVICE_ID_HIDHOST, 0x10, 0,
+ HAL_SERVICE_ID_BLUETOOTH, HAL_SERVICE_ID_HIDHOST);
+
+ test_opcode_valid("PAN", HAL_SERVICE_ID_PAN, 0x05, 0,
+ HAL_SERVICE_ID_BLUETOOTH, HAL_SERVICE_ID_PAN);
+
+ test_opcode_valid("A2DP", HAL_SERVICE_ID_A2DP, 0x03, 0,
+ HAL_SERVICE_ID_BLUETOOTH, HAL_SERVICE_ID_A2DP);
return tester_run();
}