From a712b5cb2817211508ed9921289c9a6d828256af Mon Sep 17 00:00:00 2001 From: Grzegorz Kolodziejczyk Date: Thu, 25 Sep 2014 16:03:12 +0200 Subject: [PATCH] android/tester: Make tester debug logs verbose This adds additional logs to match function. In case if compared values don't match, tester will print those values. --- android/tester-main.c | 149 ++++++++++++++++++++++++++++++++++++------ android/tester-main.h | 2 + 2 files changed, 132 insertions(+), 19 deletions(-) diff --git a/android/tester-main.c b/android/tester-main.c index cad5dc6d0..5bf909686 100644 --- a/android/tester-main.c +++ b/android/tester-main.c @@ -28,6 +28,79 @@ static gint scheduled_cbacks_num; #define EMULATOR_SIGNAL_TIMEOUT 2 /* in seconds */ #define EMULATOR_SIGNAL "emulator_started" +static struct { + uint16_t cb_num; + const char *str; +} cb_table[] = { + DBG_CB(CB_BT_ADAPTER_STATE_CHANGED), + DBG_CB(CB_BT_ADAPTER_PROPERTIES), + DBG_CB(CB_BT_REMOTE_DEVICE_PROPERTIES), + DBG_CB(CB_BT_DEVICE_FOUND), + DBG_CB(CB_BT_DISCOVERY_STATE_CHANGED), + DBG_CB(CB_BT_PIN_REQUEST), + DBG_CB(CB_BT_SSP_REQUEST), + DBG_CB(CB_BT_BOND_STATE_CHANGED), + DBG_CB(CB_BT_ACL_STATE_CHANGED), + DBG_CB(CB_BT_THREAD_EVT), + DBG_CB(CB_BT_DUT_MODE_RECV), + DBG_CB(CB_BT_LE_TEST_MODE), + + /* Hidhost cb */ + DBG_CB(CB_HH_CONNECTION_STATE), + DBG_CB(CB_HH_HID_INFO), + DBG_CB(CB_HH_PROTOCOL_MODE), + DBG_CB(CB_HH_IDLE_TIME), + DBG_CB(CB_HH_GET_REPORT), + DBG_CB(CB_HH_VIRTUAL_UNPLUG), + + /* PAN cb */ + DBG_CB(CB_PAN_CONTROL_STATE), + DBG_CB(CB_PAN_CONNECTION_STATE), + + /* HDP cb */ + DBG_CB(CB_HDP_APP_REG_STATE), + DBG_CB(CB_HDP_CHANNEL_STATE), + + /* A2DP cb */ + DBG_CB(CB_A2DP_CONN_STATE), + DBG_CB(CB_A2DP_AUDIO_STATE), + + /* Gatt client */ + DBG_CB(CB_GATTC_REGISTER_CLIENT), + DBG_CB(CB_GATTC_SCAN_RESULT), + DBG_CB(CB_GATTC_OPEN), + DBG_CB(CB_GATTC_CLOSE), + DBG_CB(CB_GATTC_SEARCH_COMPLETE), + DBG_CB(CB_GATTC_SEARCH_RESULT), + DBG_CB(CB_GATTC_GET_CHARACTERISTIC), + DBG_CB(CB_GATTC_GET_DESCRIPTOR), + DBG_CB(CB_GATTC_GET_INCLUDED_SERVICE), + DBG_CB(CB_GATTC_REGISTER_FOR_NOTIFICATION), + DBG_CB(CB_GATTC_NOTIFY), + DBG_CB(CB_GATTC_READ_CHARACTERISTIC), + DBG_CB(CB_GATTC_WRITE_CHARACTERISTIC), + DBG_CB(CB_GATTC_READ_DESCRIPTOR), + DBG_CB(CB_GATTC_WRITE_DESCRIPTOR), + DBG_CB(CB_GATTC_EXECUTE_WRITE), + DBG_CB(CB_GATTC_READ_REMOTE_RSSI), + DBG_CB(CB_GATTC_LISTEN), + + /* Gatt server */ + DBG_CB(CB_GATTS_REGISTER_SERVER), + DBG_CB(CB_GATTS_CONNECTION), + DBG_CB(CB_GATTS_SERVICE_ADDED), + DBG_CB(CB_GATTS_INCLUDED_SERVICE_ADDED), + DBG_CB(CB_GATTS_CHARACTERISTIC_ADDED), + DBG_CB(CB_GATTS_DESCRIPTOR_ADDED), + DBG_CB(CB_GATTS_SERVICE_STARTED), + DBG_CB(CB_GATTS_SERVICE_STOPPED), + DBG_CB(CB_GATTS_SERVICE_DELETED), + DBG_CB(CB_GATTS_REQUEST_READ), + DBG_CB(CB_GATTS_REQUEST_WRITE), + DBG_CB(CB_GATTS_REQUEST_EXEC_WRITE), + DBG_CB(CB_GATTS_RESPONSE_CONFIRMATION), +}; + static gboolean check_callbacks_called(gpointer user_data) { /* @@ -438,102 +511,138 @@ static bool match_data(struct step *step) return true; if (exp->callback != step->callback) { - tester_debug("Callback type don't match"); + tester_debug("Callback type mismatch: %s vs %s", + cb_table[step->callback].str, + cb_table[exp->callback].str); return false; } if (exp->callback_result.state != step->callback_result.state) { - tester_debug("Callback state don't match"); + tester_debug("Callback state mismatch: %d vs %d", + step->callback_result.state, + exp->callback_result.state); return false; } if (exp->callback_result.status != step->callback_result.status) { - tester_debug("Callback status don't match"); + tester_debug("Callback status mismatch: %d vs %d", + step->callback_result.status, + exp->callback_result.status); return false; } if (exp->callback_result.mode != step->callback_result.mode) { - tester_debug("Callback mode don't match"); + tester_debug("Callback mode mismatch: %02x vs %02x", + step->callback_result.mode, + exp->callback_result.mode); return false; } if (exp->callback_result.report_size != step->callback_result.report_size) { - tester_debug("Callback report size don't match"); + tester_debug("Callback report size mismatch: %d vs %d", + step->callback_result.report_size, + exp->callback_result.report_size); return false; } if (exp->callback_result.ctrl_state != step->callback_result.ctrl_state) { - tester_debug("Callback ctrl state don't match"); + tester_debug("Callback ctrl state mismatch: %d vs %d", + step->callback_result.ctrl_state, + exp->callback_result.ctrl_state); return false; } if (exp->callback_result.conn_state != step->callback_result.conn_state) { - tester_debug("Callback connection state don't match"); + tester_debug("Callback connection state mismatch: %d vs %d", + step->callback_result.conn_state, + exp->callback_result.conn_state); return false; } if (exp->callback_result.local_role != step->callback_result.local_role) { - tester_debug("Callback local_role don't match"); + tester_debug("Callback local_role mismatch: %d vs %d", + step->callback_result.local_role, + exp->callback_result.local_role); return false; } if (exp->callback_result.remote_role != step->callback_result.remote_role) { - tester_debug("Callback remote_role don't match"); + tester_debug("Callback remote_role mismatch: %d vs %d", + step->callback_result.remote_role, + exp->callback_result.remote_role); return false; } if (exp->callback_result.app_id != step->callback_result.app_id) { - tester_debug("Callback app_id don't match"); + tester_debug("Callback app_id mismatch: %d vs %d", + step->callback_result.app_id, + exp->callback_result.app_id); return false; } if (exp->callback_result.channel_id != step->callback_result.channel_id) { - tester_debug("Callback channel_id don't match"); + tester_debug("Callback channel_id mismatch: %d vs %d", + step->callback_result.channel_id, + exp->callback_result.channel_id); return false; } if (exp->callback_result.mdep_cfg_index != step->callback_result.mdep_cfg_index) { - tester_debug("Callback mdep_cfg_index don't match"); + tester_debug("Callback mdep_cfg_index mismatch: %d vs %d", + step->callback_result.mdep_cfg_index, + exp->callback_result.mdep_cfg_index); return false; } if (exp->callback_result.app_state != step->callback_result.app_state) { - tester_debug("Callback app_state don't match"); + tester_debug("Callback app_state mismatch: %d vs %d", + step->callback_result.app_state, + exp->callback_result.app_state); return false; } if (exp->callback_result.channel_state != step->callback_result.channel_state) { - tester_debug("Callback channel_state don't match"); + tester_debug("Callback channel_state mismatch: %d vs %d", + step->callback_result.channel_state, + exp->callback_result.channel_state); return false; } if (exp->callback_result.pairing_variant != step->callback_result.pairing_variant) { - tester_debug("Callback pairing result don't match"); + tester_debug("Callback pairing result mismatch: %d vs %d", + step->callback_result.pairing_variant, + exp->callback_result.pairing_variant); return false; } if (exp->callback_result.adv_data != step->callback_result.adv_data) { - tester_debug("Callback adv. data status don't match"); + tester_debug("Callback adv. data status mismatch: %d vs %d", + step->callback_result.adv_data, + exp->callback_result.adv_data); return false; } if (exp->callback_result.conn_id != step->callback_result.conn_id) { - tester_debug("Callback conn_id don't match"); + tester_debug("Callback conn_id mismatch: %d vs %d", + step->callback_result.conn_id, + exp->callback_result.conn_id); return false; } if (exp->callback_result.gatt_app_id != step->callback_result.gatt_app_id) { - tester_debug("Callback gatt_app_id don't match"); + tester_debug("Callback gatt_app_id mismatch: %d vs %d", + step->callback_result.gatt_app_id, + exp->callback_result.gatt_app_id); return false; } @@ -566,7 +675,9 @@ static bool match_data(struct step *step) } if (exp->callback_result.char_prop != step->callback_result.char_prop) { - tester_debug("Gatt char prop doesn't match"); + tester_debug("Gatt char prop mismatch: %d vs %d", + step->callback_result.char_prop, + exp->callback_result.char_prop); return false; } diff --git a/android/tester-main.h b/android/tester-main.h index 86291d889..e152ff35c 100644 --- a/android/tester-main.h +++ b/android/tester-main.h @@ -281,6 +281,8 @@ .callback_result.num_properties = prop_cnt, \ } +#define DBG_CB(cb) { cb, #cb } + /* * NOTICE: * Callback enum sections should be -- 2.47.3