diff options
author | Jakub Tyszkowski <jakub.tyszkowski@tieto.com> | 2014-02-04 15:39:04 +0100 |
---|---|---|
committer | Szymon Janc <szymon.janc@gmail.com> | 2014-02-04 21:35:10 +0100 |
commit | c14110cb1da7b2b143ad413527169dcb11796002 (patch) | |
tree | d0a4c7990cf458d9fd367119995ac8e2284caeb4 /android/test-ipc.c | |
parent | bdceceb9d4c898ca179b2a15956c0d635bf25baa (diff) | |
download | bluez-c14110cb1da7b2b143ad413527169dcb11796002.tar.gz |
android/unit: Add test case for variable sized data
Check if sending variable length data with proper msg size declared inside the
header succeeds.
Diffstat (limited to 'android/test-ipc.c')
-rw-r--r-- | android/test-ipc.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/android/test-ipc.c b/android/test-ipc.c index a2d308539..523011e62 100644 --- a/android/test-ipc.c +++ b/android/test-ipc.c @@ -461,6 +461,32 @@ static const struct test_data test_cmd_opcode_invalid_1 = { .expected_signal = SIGTERM }; +#define VARDATA_EX1 "some data example" + +struct vardata { + struct hal_hdr hdr; + uint8_t data[BLUEZ_HAL_MTU - sizeof(struct hal_hdr)]; +} __attribute__((packed)); + +static const struct vardata test_cmd_vardata = { + .hdr.service_id = 0, + .hdr.opcode = 1, + .hdr.len = sizeof(VARDATA_EX1), + .data = VARDATA_EX1, +}; + +static const struct ipc_handler cmd_vardata_handlers[] = { + { test_cmd_handler_1, true, sizeof(VARDATA_EX1) } +}; + +static const struct test_data test_cmd_vardata_valid = { + .cmd = &test_cmd_vardata, + .cmd_size = sizeof(struct hal_hdr) + sizeof(VARDATA_EX1), + .service = 0, + .handlers = cmd_vardata_handlers, + .handlers_size = 1, +}; + int main(int argc, char *argv[]) { g_test_init(&argc, &argv, NULL); @@ -482,6 +508,9 @@ int main(int argc, char *argv[]) g_test_add_data_func("/android_ipc/test_cmd_opcode_invalid_1", &test_cmd_opcode_invalid_1, test_cmd_reg); + g_test_add_data_func("/android_ipc/test_cmd_vardata_valid", + &test_cmd_vardata_valid, + test_cmd_reg); return g_test_run(); } |