summaryrefslogtreecommitdiff
path: root/android/test-ipc.c
diff options
context:
space:
mode:
authorJakub Tyszkowski <jakub.tyszkowski@tieto.com>2014-02-04 15:39:04 +0100
committerSzymon Janc <szymon.janc@gmail.com>2014-02-04 21:35:10 +0100
commitc14110cb1da7b2b143ad413527169dcb11796002 (patch)
treed0a4c7990cf458d9fd367119995ac8e2284caeb4 /android/test-ipc.c
parentbdceceb9d4c898ca179b2a15956c0d635bf25baa (diff)
downloadbluez-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.c29
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();
}