OSDN Git Service

android/tester: Make generic_data structure const void pointer
authorAndrei Emeltchenko <andrei.emeltchenko@intel.com>
Thu, 12 Dec 2013 12:48:29 +0000 (14:48 +0200)
committerJohan Hedberg <johan.hedberg@intel.com>
Thu, 12 Dec 2013 13:01:54 +0000 (15:01 +0200)
This allows us to have different types of generic data, like socket
data, bluetooth data, etc.

android/android-tester.c

index 7ecc80d..800c14d 100644 (file)
@@ -74,7 +74,7 @@ struct test_data {
        unsigned int mgmt_settings_id;
        struct hciemu *hciemu;
        enum hciemu_type hciemu_type;
-       const struct generic_data *test_data;
+       const void *test_data;
        pid_t bluetoothd_pid;
        const bt_interface_t *if_bluetooth;
 
@@ -111,6 +111,7 @@ static void command_generic_new_settings(uint16_t index, uint16_t length,
                                        const void *param, void *user_data)
 {
        struct test_data *data = tester_get_data();
+       const struct generic_data *test_data = data->test_data;
        uint32_t settings;
 
        if (length != 4) {
@@ -121,8 +122,8 @@ static void command_generic_new_settings(uint16_t index, uint16_t length,
 
        settings = bt_get_le32(param);
 
-       if ((settings & data->test_data->expect_settings_set) !=
-                                       data->test_data->expect_settings_set)
+       if ((settings & test_data->expect_settings_set) !=
+                                       test_data->expect_settings_set)
                return;
 
        test_mgmt_settings_set(data);
@@ -131,29 +132,34 @@ static void command_generic_new_settings(uint16_t index, uint16_t length,
 
 static void hal_cb_init(struct test_data *data)
 {
+       const struct generic_data *test_data = data->test_data;
        unsigned int i = 0;
 
-       while (data->test_data->expected_hal_callbacks[i]) {
-                                               data->expected_callbacks =
-                               g_slist_append(data->expected_callbacks,
-               GINT_TO_POINTER(data->test_data->expected_hal_callbacks[i]));
+       while (test_data->expected_hal_callbacks[i]) {
+               data->expected_callbacks =
+                       g_slist_append(data->expected_callbacks,
+               GINT_TO_POINTER(test_data->expected_hal_callbacks[i]));
                i++;
        }
 }
 
 static void mgmt_cb_init(struct test_data *data)
 {
-       if (!data->test_data->expect_settings_set)
+       const struct generic_data *test_data = data->test_data;
+
+       if (!test_data->expect_settings_set)
                test_mgmt_settings_set(data);
        else
                data->mgmt_settings_id = mgmt_register(data->mgmt,
-                                       MGMT_EV_NEW_SETTINGS, data->mgmt_index,
+                               MGMT_EV_NEW_SETTINGS, data->mgmt_index,
                                command_generic_new_settings, NULL, NULL);
 }
 
 static void expected_status_init(struct test_data *data)
 {
-       if (!(data->test_data->expected_adapter_status))
+       const struct generic_data *test_data = data->test_data;
+
+       if (!(test_data->expected_adapter_status))
                data->status_checked = true;
 }
 
@@ -167,8 +173,9 @@ static void init_test_conditions(struct test_data *data)
 static void check_expected_status(uint8_t status)
 {
        struct test_data *data = tester_get_data();
+       const struct generic_data *test_data = data->test_data;
 
-       if (data->test_data->expected_adapter_status == status)
+       if (test_data->expected_adapter_status == status)
                data->status_checked = true;
        else
                tester_test_failed();