Diff between 678b2f5248b7ff6fd5ba6767dd3ccabaaa376869 and 7d310b0142b91d4134365ec3f14e5d815a141fbe

Changed Files

File Additions Deletions Status
android/android-tester.c +185 -218 modified

Full Patch

diff --git a/android/android-tester.c b/android/android-tester.c
index 5e5b951..ee23fff 100644
--- a/android/android-tester.c
+++ b/android/android-tester.c
@@ -42,39 +42,13 @@
 
 #include "utils.h"
 
-#define ADAPTER_PROPS ADAPTER_PROP_BDADDR, ADAPTER_PROP_BDNAME, \
-			ADAPTER_PROP_UUIDS, ADAPTER_PROP_COD, \
-			ADAPTER_PROP_TYPE, ADAPTER_PROP_SCAN_MODE, \
-			ADAPTER_PROP_BONDED_DEVICES, ADAPTER_PROP_DISC_TIMEOUT
-
-/*
- * those are assigned to HAL methods and callbacks, we use ID later
- * on mapped in switch-case due to different functions prototypes.
- */
-
-enum hal_bluetooth_callbacks_id {
-	ADAPTER_TEST_END,
-	ADAPTER_STATE_CHANGED_ON,
-	ADAPTER_STATE_CHANGED_OFF,
-	ADAPTER_PROP_BDADDR,
-	ADAPTER_PROP_BDNAME,
-	ADAPTER_PROP_UUIDS,
-	ADAPTER_PROP_COD,
-	ADAPTER_PROP_TYPE,
-	ADAPTER_PROP_SCAN_MODE,
-	ADAPTER_PROP_DISC_TIMEOUT,
-	ADAPTER_PROP_SERVICE_RECORD,
-	ADAPTER_PROP_BONDED_DEVICES,
-	ADAPTER_DISCOVERY_STATE_ON,
-	ADAPTER_DISCOVERY_STATE_OFF,
-	REMOTE_DEVICE_FOUND,
-};
-
 struct generic_data {
 	int expected_adapter_status;
 	uint32_t expect_settings_set;
+	int expected_cb_count;
+	bt_property_t set_property;
 	bt_property_t expected_property;
-	uint8_t expected_hal_callbacks[];
+	bt_callbacks_t expected_hal_cb;
 };
 
 struct socket_data {
@@ -93,10 +67,6 @@ struct socket_data {
 
 #define BT_STATUS_NOT_EXPECTED	-1
 
-/* User flags for Device Discovery */
-#define DEVICE_DISCOVERY_CANCEL_ON_START	0x01
-#define DEVICE_DISCOVERY_START_ON_START		0x02
-
 struct test_data {
 	struct mgmt *mgmt;
 	uint16_t mgmt_index;
@@ -111,14 +81,14 @@ struct test_data {
 	const btsock_interface_t *if_sock;
 
 	bool mgmt_settings_set;
-	bool hal_cb_called;
+	bool cb_count_checked;
 	bool status_checked;
 	bool property_checked;
 
-	bt_property_t test_property;
-	GSList *expected_callbacks;
+	/* Set to true if test conditions are initialized */
+	bool test_init_done;
 
-	uint32_t userflag;
+	int cb_count;
 };
 
 static char exec_dir[PATH_MAX + 1];
@@ -127,9 +97,9 @@ static void test_update_state(void)
 {
 	struct test_data *data = tester_get_data();
 
-	if (!(data->mgmt_settings_set))
+	if (!(data->cb_count_checked))
 		return;
-	if (!(data->hal_cb_called))
+	if (!(data->mgmt_settings_set))
 		return;
 	if (!(data->status_checked))
 		return;
@@ -197,27 +167,27 @@ static void command_generic_new_settings(uint16_t index, uint16_t length,
 	mgmt_unregister(data->mgmt, data->mgmt_settings_id);
 }
 
-static bool is_empty_halcb_list(void)
+static void check_cb_count(void)
 {
 	struct test_data *data = tester_get_data();
 
-	return !(g_slist_length(data->expected_callbacks));
+	if (!data->test_init_done)
+		return;
+
+	if (data->cb_count == 0)
+		data->cb_count_checked = true;
+
+	test_update_state();
 }
 
-static void hal_cb_init(struct test_data *data)
+static void expected_cb_count_init(struct test_data *data)
 {
 	const struct generic_data *test_data = data->test_data;
-	unsigned int i = 0;
 
-	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++;
-	}
+	data->cb_count = test_data->expected_cb_count;
+
+	check_cb_count();
 
-	if (is_empty_halcb_list())
-		data->hal_cb_called = true;
 }
 
 static void mgmt_cb_init(struct test_data *data)
@@ -244,13 +214,15 @@ static void test_property_init(struct test_data *data)
 {
 	const struct generic_data *test_data = data->test_data;
 
-	if (is_empty_halcb_list() || !(test_data->expected_property.type))
+	if (!test_data->expected_property.type)
 		data->property_checked = true;
 }
 
 static void init_test_conditions(struct test_data *data)
 {
-	hal_cb_init(data);
+	data->test_init_done = true;
+
+	expected_cb_count_init(data);
 	mgmt_cb_init(data);
 	expected_status_init(data);
 	test_property_init(data);
@@ -269,48 +241,20 @@ static void check_expected_status(uint8_t status)
 	test_update_state();
 }
 
-static void check_test_property(void)
-{
-	struct test_data *data = tester_get_data();
-	bt_property_t expected_prop = data->test_property;
-	const struct generic_data *test_data = data->test_data;
-	bt_property_t test_prop = test_data->expected_property;
-
-	if (test_prop.type && (expected_prop.type != test_prop.type)) {
-		tester_test_failed();
-		return;
-	}
-
-	if (test_prop.len && (expected_prop.len != test_prop.len)) {
-		tester_test_failed();
-		return;
-	}
-
-	if (test_prop.val && memcmp(expected_prop.val, test_prop.val,
-							expected_prop.len)) {
-		tester_test_failed();
-		return;
-	}
-
-	data->property_checked = true;
-	test_update_state();
-}
-
-static void update_hal_cb_list(enum hal_bluetooth_callbacks_id
-							expected_callback)
+static bool check_test_property(bt_property_t received_prop,
+						bt_property_t expected_prop)
 {
 	struct test_data *data = tester_get_data();
 
-	if (is_empty_halcb_list())
-		return;
-
-	data->expected_callbacks = g_slist_remove(data->expected_callbacks,
-					GINT_TO_POINTER(expected_callback));
-
-	if (!data->expected_callbacks)
-		data->hal_cb_called = true;
+	if (expected_prop.type && (expected_prop.type != received_prop.type))
+		return false;
+	if (expected_prop.len && (expected_prop.len != received_prop.len))
+		return false;
+	if (expected_prop.val && memcmp(expected_prop.val, received_prop.val,
+							expected_prop.len))
+		return false;
 
-	test_update_state();
+	return data->property_checked = true;
 }
 
 static void read_info_callback(uint8_t status, uint16_t length,
@@ -544,56 +488,98 @@ static void setup_powered_emulated_remote(void)
 		bthost_write_scan_enable(bthost, 0x03);
 }
 
+static void enable_success_cb(bt_state_t state)
+{
+	struct test_data *data = tester_get_data();
+
+	if (state == BT_STATE_ON) {
+		setup_powered_emulated_remote();
+		data->cb_count--;
+	}
+}
+
+static void disable_success_cb(bt_state_t state)
+{
+	struct test_data *data = tester_get_data();
+
+	if (state == BT_STATE_OFF)
+		data->cb_count--;
+}
+
 static void adapter_state_changed_cb(bt_state_t state)
 {
-	switch (state) {
-	case BT_STATE_ON:
-		if (is_empty_halcb_list())
-			setup_powered_emulated_remote();
-		update_hal_cb_list(ADAPTER_STATE_CHANGED_ON);
-		break;
-	case BT_STATE_OFF:
-		if (is_empty_halcb_list())
-			tester_setup_failed();
-		update_hal_cb_list(ADAPTER_STATE_CHANGED_OFF);
-		break;
-	default:
-		break;
+	struct test_data *data = tester_get_data();
+	const struct generic_data *test = data->test_data;
+
+	if (data->test_init_done &&
+			test->expected_hal_cb.adapter_state_changed_cb) {
+		test->expected_hal_cb.adapter_state_changed_cb(state);
+		check_cb_count();
+		return;
 	}
+
+	if (!data->test_init_done && state == BT_STATE_ON)
+		setup_powered_emulated_remote();
+}
+
+static void discovery_start_success_cb(bt_discovery_state_t state)
+{
+	struct test_data *data = tester_get_data();
+
+	if (state == BT_DISCOVERY_STARTED)
+		data->cb_count--;
 }
 
-static void post_discovery_started_cb(bt_discovery_state_t state)
+static void discovery_start_done_cb(bt_discovery_state_t state)
 {
 	struct test_data *data = tester_get_data();
 	bt_status_t status;
 
-	if (data->userflag & DEVICE_DISCOVERY_CANCEL_ON_START) {
+	status = data->if_bluetooth->start_discovery();
+	data->cb_count--;
+	check_expected_status(status);
+}
+
+static void discovery_stop_success_cb(bt_discovery_state_t state)
+{
+	struct test_data *data = tester_get_data();
+	bt_status_t status;
+
+	if (state == BT_DISCOVERY_STARTED && data->cb_count == 2) {
 		status = data->if_bluetooth->cancel_discovery();
 		check_expected_status(status);
+		data->cb_count--;
+		return;
 	}
+	if (state == BT_DISCOVERY_STOPPED && data->cb_count == 1)
+		data->cb_count--;
+}
 
-	if (data->userflag & DEVICE_DISCOVERY_START_ON_START) {
-		status = data->if_bluetooth->start_discovery();
-		check_expected_status(status);
+static void discovery_device_found_state_changed_cb(bt_discovery_state_t state)
+{
+	struct test_data *data = tester_get_data();
+
+	if (state == BT_DISCOVERY_STARTED && data->cb_count == 3) {
+		data->cb_count--;
+		return;
 	}
+	if (state == BT_DISCOVERY_STOPPED && data->cb_count == 1)
+		data->cb_count--;
 }
 
 static void discovery_state_changed_cb(bt_discovery_state_t state)
 {
-	switch (state) {
-	case BT_DISCOVERY_STARTED:
-		update_hal_cb_list(ADAPTER_DISCOVERY_STATE_ON);
-		post_discovery_started_cb(state);
-		break;
-	case BT_DISCOVERY_STOPPED:
-		update_hal_cb_list(ADAPTER_DISCOVERY_STATE_OFF);
-		break;
-	default:
-		break;
+	struct test_data *data = tester_get_data();
+	const struct generic_data *test = data->test_data;
+
+	if (test && test->expected_hal_cb.discovery_state_changed_cb) {
+		test->expected_hal_cb.discovery_state_changed_cb(state);
+		check_cb_count();
 	}
 }
 
-static void device_found_cb(int num_properties, bt_property_t *properties)
+static void discovery_device_found_cb(int num_properties,
+						bt_property_t *properties)
 {
 	struct test_data *data = tester_get_data();
 	const uint8_t *remote_bdaddr =
@@ -603,7 +589,7 @@ static void device_found_cb(int num_properties, bt_property_t *properties)
 	bt_bdaddr_t emu_remote_bdaddr;
 	int i;
 
-	update_hal_cb_list(REMOTE_DEVICE_FOUND);
+	data->cb_count--;
 
 	if (num_properties < 1)
 		tester_test_failed();
@@ -642,83 +628,75 @@ static void device_found_cb(int num_properties, bt_property_t *properties)
 	}
 }
 
-static void adapter_properties_cb(bt_status_t status, int num_properties,
+static void device_found_cb(int num_properties, bt_property_t *properties)
+{
+	struct test_data *data = tester_get_data();
+	const struct generic_data *test = data->test_data;
+
+	if (data->test_init_done && test->expected_hal_cb.device_found_cb) {
+		test->expected_hal_cb.device_found_cb(num_properties,
+								properties);
+		check_cb_count();
+	}
+}
+
+static void check_count_properties_cb(bt_status_t status, int num_properties,
 						bt_property_t *properties)
 {
 	struct test_data *data = tester_get_data();
-	int i;
 
-	if (is_empty_halcb_list())
-		return;
+	data->cb_count--;
+}
 
-	for (i = 0; i < num_properties; i++) {
+static void getprop_success_cb(bt_status_t status, int num_properties,
+						bt_property_t *properties)
+{
+	struct test_data *data = tester_get_data();
+	const struct generic_data *test = data->test_data;
 
-		data->test_property = properties[i];
+	if (check_test_property(properties[0], test->expected_property))
+		data->cb_count--;
+}
 
-		if (g_slist_length(data->expected_callbacks) == 1)
-			check_test_property();
+static void adapter_properties_cb(bt_status_t status, int num_properties,
+						bt_property_t *properties)
+{
+	struct test_data *data = tester_get_data();
+	const struct generic_data *test = data->test_data;
 
-		switch (properties[i].type) {
-		case BT_PROPERTY_BDADDR:
-			update_hal_cb_list(ADAPTER_PROP_BDADDR);
-			break;
-		case BT_PROPERTY_BDNAME:
-			update_hal_cb_list(ADAPTER_PROP_BDNAME);
-			break;
-		case BT_PROPERTY_UUIDS:
-			update_hal_cb_list(ADAPTER_PROP_UUIDS);
-			break;
-		case BT_PROPERTY_CLASS_OF_DEVICE:
-			update_hal_cb_list(ADAPTER_PROP_COD);
-			break;
-		case BT_PROPERTY_TYPE_OF_DEVICE:
-			update_hal_cb_list(ADAPTER_PROP_TYPE);
-			break;
-		case BT_PROPERTY_SERVICE_RECORD:
-			update_hal_cb_list(ADAPTER_PROP_SERVICE_RECORD);
-			break;
-		case BT_PROPERTY_ADAPTER_SCAN_MODE:
-			update_hal_cb_list(ADAPTER_PROP_SCAN_MODE);
-			break;
-		case BT_PROPERTY_ADAPTER_BONDED_DEVICES:
-			update_hal_cb_list(ADAPTER_PROP_BONDED_DEVICES);
-			break;
-		case BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT:
-			update_hal_cb_list(ADAPTER_PROP_DISC_TIMEOUT);
-			break;
-		default:
-			goto fail;
-		}
+	if (data->test_init_done &&
+				test->expected_hal_cb.adapter_properties_cb) {
+		test->expected_hal_cb.adapter_properties_cb(
+							status, num_properties,
+							properties);
+		check_cb_count();
 	}
-	return;
-
-fail:
-	tester_print("Unexpected property: %u", properties[i].type);
-	tester_test_failed();
-	return;
 }
 
 static const struct generic_data bluetooth_enable_success_test = {
-	.expected_hal_callbacks = { ADAPTER_PROPS, ADAPTER_STATE_CHANGED_ON,
-							ADAPTER_TEST_END },
+	.expected_hal_cb.adapter_state_changed_cb = enable_success_cb,
+	.expected_hal_cb.adapter_properties_cb = check_count_properties_cb,
+	.expected_cb_count = 9,
 	.expected_adapter_status = BT_STATUS_SUCCESS,
 };
 
 static const struct generic_data bluetooth_enable_done_test = {
-	.expected_hal_callbacks = { ADAPTER_PROPS, ADAPTER_TEST_END },
+	.expected_hal_cb.adapter_properties_cb = check_count_properties_cb,
+	.expected_cb_count = 8,
 	.expected_adapter_status = BT_STATUS_DONE,
 };
 
 static const struct generic_data bluetooth_disable_success_test = {
-	.expected_hal_callbacks = { ADAPTER_STATE_CHANGED_OFF,
-							ADAPTER_TEST_END },
+	.expected_hal_cb.adapter_state_changed_cb = disable_success_cb,
+	.expected_cb_count = 1,
 	.expected_adapter_status = BT_STATUS_SUCCESS,
 };
 
 static char test_set_bdname[] = "test_bdname_set";
 
 static const struct generic_data bluetooth_setprop_bdname_success_test = {
-	.expected_hal_callbacks = { ADAPTER_PROP_BDNAME, ADAPTER_TEST_END },
+	.expected_hal_cb.adapter_properties_cb = getprop_success_cb,
+	.expected_cb_count = 1,
 	.expected_adapter_status = BT_STATUS_SUCCESS,
 	.expected_property.type = BT_PROPERTY_BDNAME,
 	.expected_property.val = test_set_bdname,
@@ -729,9 +707,8 @@ static bt_scan_mode_t test_setprop_scanmode_val =
 					BT_SCAN_MODE_CONNECTABLE_DISCOVERABLE;
 
 static const struct generic_data bluetooth_setprop_scanmode_success_test = {
-	.expected_hal_callbacks = { ADAPTER_PROP_SCAN_MODE,
-						ADAPTER_PROP_SCAN_MODE,
-						ADAPTER_TEST_END },
+	.expected_hal_cb.adapter_properties_cb = getprop_success_cb,
+	.expected_cb_count = 1,
 	.expected_adapter_status = BT_STATUS_SUCCESS,
 	.expected_property.type = BT_PROPERTY_ADAPTER_SCAN_MODE,
 	.expected_property.val = &test_setprop_scanmode_val,
@@ -741,7 +718,8 @@ static const struct generic_data bluetooth_setprop_scanmode_success_test = {
 static uint32_t test_setprop_disctimeout_val = 120;
 
 static const struct generic_data bluetooth_setprop_disctimeout_success_test = {
-	.expected_hal_callbacks = { ADAPTER_PROP_DISC_TIMEOUT, ADAPTER_TEST_END },
+	.expected_hal_cb.adapter_properties_cb = getprop_success_cb,
+	.expected_cb_count = 1,
 	.expected_adapter_status = BT_STATUS_SUCCESS,
 	.expected_property.type = BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT,
 	.expected_property.val = &test_setprop_disctimeout_val,
@@ -749,7 +727,8 @@ static const struct generic_data bluetooth_setprop_disctimeout_success_test = {
 };
 
 static const struct generic_data bluetooth_getprop_bdaddr_success_test = {
-	.expected_hal_callbacks = { ADAPTER_PROP_BDADDR, ADAPTER_TEST_END },
+	.expected_hal_cb.adapter_properties_cb = getprop_success_cb,
+	.expected_cb_count = 1,
 	.expected_adapter_status = BT_STATUS_SUCCESS,
 	.expected_property.type = BT_PROPERTY_BDADDR,
 	.expected_property.val = NULL,
@@ -759,8 +738,8 @@ static const struct generic_data bluetooth_getprop_bdaddr_success_test = {
 static char test_bdname[] = "test_bdname_setget";
 
 static const struct generic_data bluetooth_getprop_bdname_success_test = {
-	.expected_hal_callbacks = { ADAPTER_PROP_BDNAME, ADAPTER_PROP_BDNAME,
-							ADAPTER_TEST_END },
+	.expected_hal_cb.adapter_properties_cb = getprop_success_cb,
+	.expected_cb_count = 1,
 	.expected_adapter_status = BT_STATUS_SUCCESS,
 	.expected_property.type = BT_PROPERTY_BDNAME,
 	.expected_property.val = test_bdname,
@@ -772,41 +751,37 @@ static unsigned char setprop_uuids[] = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00,
 			0x00, 0x00 };
 
 static const struct generic_data bluetooth_setprop_uuid_invalid_test = {
-	.expected_hal_callbacks = { ADAPTER_TEST_END },
 	.expected_adapter_status = BT_STATUS_FAIL,
-	.expected_property.type = BT_PROPERTY_UUIDS,
-	.expected_property.val = &setprop_uuids,
-	.expected_property.len = sizeof(setprop_uuids),
+	.set_property.type = BT_PROPERTY_UUIDS,
+	.set_property.val = &setprop_uuids,
+	.set_property.len = sizeof(setprop_uuids),
 };
 
 static uint32_t setprop_class_of_device = 0;
 
 static const struct generic_data bluetooth_setprop_cod_invalid_test = {
-	.expected_hal_callbacks = { ADAPTER_TEST_END },
 	.expected_adapter_status = BT_STATUS_FAIL,
-	.expected_property.type = BT_PROPERTY_CLASS_OF_DEVICE,
-	.expected_property.val = &setprop_class_of_device,
-	.expected_property.len = sizeof(setprop_class_of_device),
+	.set_property.type = BT_PROPERTY_CLASS_OF_DEVICE,
+	.set_property.val = &setprop_class_of_device,
+	.set_property.len = sizeof(setprop_class_of_device),
 };
 
 static bt_device_type_t setprop_type_of_device = BT_DEVICE_DEVTYPE_BREDR;
 
 static const struct generic_data bluetooth_setprop_tod_invalid_test = {
-	.expected_hal_callbacks = { ADAPTER_TEST_END },
 	.expected_adapter_status = BT_STATUS_FAIL,
-	.expected_property.type = BT_PROPERTY_TYPE_OF_DEVICE,
-	.expected_property.val = &setprop_type_of_device,
-	.expected_property.len = sizeof(setprop_type_of_device),
+	.set_property.type = BT_PROPERTY_TYPE_OF_DEVICE,
+	.set_property.val = &setprop_type_of_device,
+	.set_property.len = sizeof(setprop_type_of_device),
 };
 
 static int32_t setprop_remote_rssi = 0;
 
 static const struct generic_data bluetooth_setprop_remote_rssi_invalid_test = {
-	.expected_hal_callbacks = { ADAPTER_TEST_END },
 	.expected_adapter_status = BT_STATUS_FAIL,
-	.expected_property.type = BT_PROPERTY_REMOTE_RSSI,
-	.expected_property.val = &setprop_remote_rssi,
-	.expected_property.len = sizeof(setprop_remote_rssi),
+	.set_property.type = BT_PROPERTY_REMOTE_RSSI,
+	.set_property.val = &setprop_remote_rssi,
+	.set_property.len = sizeof(setprop_remote_rssi),
 };
 
 static bt_service_record_t setprop_remote_service = {
@@ -817,41 +792,40 @@ static bt_service_record_t setprop_remote_service = {
 
 static const struct generic_data
 			bluetooth_setprop_service_record_invalid_test = {
-	.expected_hal_callbacks = { ADAPTER_TEST_END },
 	.expected_adapter_status = BT_STATUS_FAIL,
-	.expected_property.type = BT_PROPERTY_SERVICE_RECORD,
-	.expected_property.val = &setprop_remote_service,
-	.expected_property.len = sizeof(setprop_remote_service),
+	.set_property.type = BT_PROPERTY_SERVICE_RECORD,
+	.set_property.val = &setprop_remote_service,
+	.set_property.len = sizeof(setprop_remote_service),
 };
 
 static const struct generic_data bluetooth_discovery_start_success_test = {
-	.expected_hal_callbacks = { ADAPTER_DISCOVERY_STATE_ON,
-							ADAPTER_TEST_END },
+	.expected_hal_cb.discovery_state_changed_cb =
+						discovery_start_success_cb,
+	.expected_cb_count = 1,
 	.expected_adapter_status = BT_STATUS_SUCCESS,
 };
 
 static const struct generic_data bluetooth_discovery_start_done_test = {
-	.expected_hal_callbacks = { ADAPTER_DISCOVERY_STATE_ON,
-							ADAPTER_TEST_END },
+	.expected_hal_cb.discovery_state_changed_cb = discovery_start_done_cb,
+	.expected_cb_count = 1,
 	.expected_adapter_status = BT_STATUS_DONE,
 };
 
 static const struct generic_data bluetooth_discovery_stop_done_test = {
-	.expected_hal_callbacks = { ADAPTER_TEST_END },
 	.expected_adapter_status = BT_STATUS_DONE,
 };
 
 static const struct generic_data bluetooth_discovery_stop_success_test = {
-	.expected_hal_callbacks = { ADAPTER_DISCOVERY_STATE_ON,
-				ADAPTER_DISCOVERY_STATE_OFF, ADAPTER_TEST_END },
+	.expected_hal_cb.discovery_state_changed_cb = discovery_stop_success_cb,
+	.expected_cb_count = 2,
 	.expected_adapter_status = BT_STATUS_SUCCESS,
 };
 
 static const struct generic_data bluetooth_discovery_device_found_test = {
-	.expected_hal_callbacks = { ADAPTER_DISCOVERY_STATE_ON,
-						REMOTE_DEVICE_FOUND,
-						ADAPTER_DISCOVERY_STATE_OFF,
-						ADAPTER_TEST_END },
+	.expected_hal_cb.discovery_state_changed_cb =
+					discovery_device_found_state_changed_cb,
+	.expected_hal_cb.device_found_cb = discovery_device_found_cb,
+	.expected_cb_count = 3,
 	.expected_adapter_status = BT_STATUS_NOT_EXPECTED,
 };
 
@@ -985,9 +959,6 @@ static void teardown(const void *test_data)
 	if (data->bluetoothd_pid)
 		waitpid(data->bluetoothd_pid, NULL, 0);
 
-	if (data->expected_callbacks)
-		g_slist_free(data->expected_callbacks);
-
 	tester_teardown_complete();
 }
 
@@ -1128,7 +1099,7 @@ static void test_setprop_tod_invalid(const void *test_data)
 {
 	struct test_data *data = tester_get_data();
 	const struct generic_data *test = data->test_data;
-	const bt_property_t *prop = &test->expected_property;
+	const bt_property_t *prop = &test->set_property;
 	bt_status_t adapter_status;
 
 	init_test_conditions(data);
@@ -1201,8 +1172,6 @@ static void test_discovery_stop_success(const void *test_data)
 	struct test_data *data = tester_get_data();
 	bt_status_t status;
 
-	data->userflag = DEVICE_DISCOVERY_CANCEL_ON_START;
-
 	init_test_conditions(data);
 
 	hciemu_add_hook(data->hciemu, HCIEMU_HOOK_PRE_EVT, BT_HCI_CMD_INQUIRY,
@@ -1216,8 +1185,6 @@ static void test_discovery_start_done(const void *test_data)
 {
 	struct test_data *data = tester_get_data();
 
-	data->userflag = DEVICE_DISCOVERY_START_ON_START;
-
 	init_test_conditions(data);
 
 	hciemu_add_hook(data->hciemu, HCIEMU_HOOK_PRE_EVT, BT_HCI_CMD_INQUIRY,