aboutsummaryrefslogtreecommitdiff
path: root/libqcdm/tests
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2010-02-22 18:34:12 -0800
committerDan Williams <dcbw@redhat.com>2010-02-22 18:34:12 -0800
commit06415201cb8ece13760e98e07fe496ec2415e3ad (patch)
treef13511e86a098a8ac3da842b1ecd824f0be830d4 /libqcdm/tests
parent928f8a9ff20934ad1e4383c5db6cb0b610a9fa4d (diff)
qcdm: add HDR State Info command
Diffstat (limited to 'libqcdm/tests')
-rw-r--r--libqcdm/tests/test-qcdm-com.c138
-rw-r--r--libqcdm/tests/test-qcdm-com.h2
-rw-r--r--libqcdm/tests/test-qcdm.c1
3 files changed, 141 insertions, 0 deletions
diff --git a/libqcdm/tests/test-qcdm-com.c b/libqcdm/tests/test-qcdm-com.c
index cb45d584..618bc336 100644
--- a/libqcdm/tests/test-qcdm-com.c
+++ b/libqcdm/tests/test-qcdm-com.c
@@ -539,3 +539,141 @@ test_com_cm_subsys_state_info (void *f, void *data)
qcdm_result_unref (result);
}
+void
+test_com_hdr_subsys_state_info (void *f, void *data)
+{
+ TestComData *d = data;
+ gboolean success;
+ GError *error = NULL;
+ char buf[100];
+ gint len;
+ QCDMResult *result;
+ gsize reply_len;
+ guint8 num;
+ const char *detail;
+
+ len = qcdm_cmd_hdr_subsys_state_info_new (buf, sizeof (buf), NULL);
+ g_assert (len == 7);
+
+ /* Send the command */
+ success = send_command (d, buf, len);
+ g_assert (success);
+
+ /* Get a response */
+ reply_len = wait_reply (d, buf, sizeof (buf));
+
+ /* Parse the response into a result structure */
+ result = qcdm_cmd_hdr_subsys_state_info_result (buf, reply_len, &error);
+ if (!result) {
+ /* 1x-only devices won't implement the HDR subsystem of course */
+ g_assert_error (error, QCDM_COMMAND_ERROR, QCDM_COMMAND_BAD_COMMAND);
+ g_message ("%s: device does not implement the HDR subsystem", __func__);
+ return;
+ }
+ g_assert (result);
+
+ num = 0;
+ detail = NULL;
+ qcdm_result_get_uint8 (result, QCDM_CMD_HDR_SUBSYS_STATE_INFO_ITEM_AT_STATE, &num);
+ switch (num) {
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_AT_STATE_INACTIVE:
+ detail = "inactive";
+ break;
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_AT_STATE_ACQUISITION:
+ detail = "acquisition";
+ break;
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_AT_STATE_SYNC:
+ detail = "sync";
+ break;
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_AT_STATE_IDLE:
+ detail = "idle";
+ break;
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_AT_STATE_ACCESS:
+ detail = "access";
+ break;
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_AT_STATE_CONNECTED:
+ detail = "connected";
+ break;
+ default:
+ detail = "unknown";
+ break;
+ }
+ g_message ("%s: AT State: %u (%s)", __func__, num, detail);
+
+ num = 0;
+ detail = NULL;
+ qcdm_result_get_uint8 (result, QCDM_CMD_HDR_SUBSYS_STATE_INFO_ITEM_SESSION_STATE, &num);
+ switch (num) {
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_SESSION_STATE_CLOSED:
+ detail = "closed";
+ break;
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_SESSION_STATE_SETUP:
+ detail = "setup";
+ break;
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_SESSION_STATE_AT_INIT:
+ detail = "AT init";
+ break;
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_SESSION_STATE_AN_INIT:
+ detail = "AN init";
+ break;
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_SESSION_STATE_OPEN:
+ detail = "open";
+ break;
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_SESSION_STATE_CLOSING:
+ detail = "closing";
+ break;
+ default:
+ detail = "unknown";
+ break;
+ }
+ g_message ("%s: Session State: %u (%s)", __func__, num, detail);
+
+ num = 0;
+ detail = NULL;
+ qcdm_result_get_uint8 (result, QCDM_CMD_HDR_SUBSYS_STATE_INFO_ITEM_ALMP_STATE, &num);
+ switch (num) {
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_ALMP_STATE_INACTIVE:
+ detail = "inactive";
+ break;
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_ALMP_STATE_INIT:
+ detail = "init";
+ break;
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_ALMP_STATE_IDLE:
+ detail = "idle";
+ break;
+ case QCDM_CMD_HDR_SUBSYS_STATE_INFO_ALMP_STATE_CONNECTED:
+ detail = "connected";
+ break;
+ default:
+ detail = "unknown";
+ break;
+ }
+ g_message ("%s: ALMP State: %u (%s)", __func__, num, detail);
+
+ num = 0;
+ qcdm_result_get_uint8 (result, QCDM_CMD_HDR_SUBSYS_STATE_INFO_ITEM_INIT_STATE, &num);
+ g_message ("%s: Init State: %u", __func__, num);
+
+ num = 0;
+ qcdm_result_get_uint8 (result, QCDM_CMD_HDR_SUBSYS_STATE_INFO_ITEM_IDLE_STATE, &num);
+ g_message ("%s: Idle State: %u", __func__, num);
+
+ num = 0;
+ qcdm_result_get_uint8 (result, QCDM_CMD_HDR_SUBSYS_STATE_INFO_ITEM_CONNECTED_STATE, &num);
+ g_message ("%s: Connected State: %u", __func__, num);
+
+ num = 0;
+ qcdm_result_get_uint8 (result, QCDM_CMD_HDR_SUBSYS_STATE_INFO_ITEM_ROUTE_UPDATE_STATE, &num);
+ g_message ("%s: Route Update State: %u", __func__, num);
+
+ num = 0;
+ qcdm_result_get_uint8 (result, QCDM_CMD_HDR_SUBSYS_STATE_INFO_ITEM_OVERHEAD_MSG_STATE, &num);
+ g_message ("%s: Overhead Msg State: %u", __func__, num);
+
+ num = 0;
+ qcdm_result_get_uint8 (result, QCDM_CMD_HDR_SUBSYS_STATE_INFO_ITEM_HDR_HYBRID_MODE, &num);
+ g_message ("%s: HDR Hybrid Mode: %u", __func__, num);
+
+ qcdm_result_unref (result);
+}
+
diff --git a/libqcdm/tests/test-qcdm-com.h b/libqcdm/tests/test-qcdm-com.h
index fe33e214..6c9b6e0a 100644
--- a/libqcdm/tests/test-qcdm-com.h
+++ b/libqcdm/tests/test-qcdm-com.h
@@ -35,5 +35,7 @@ void test_com_sw_version (void *f, void *data);
void test_com_cm_subsys_state_info (void *f, void *data);
+void test_com_hdr_subsys_state_info (void *f, void *data);
+
#endif /* TEST_QCDM_COM_H */
diff --git a/libqcdm/tests/test-qcdm.c b/libqcdm/tests/test-qcdm.c
index acdabbc9..e5e3b42a 100644
--- a/libqcdm/tests/test-qcdm.c
+++ b/libqcdm/tests/test-qcdm.c
@@ -95,6 +95,7 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_com_status, data->com_data));
g_test_suite_add (suite, TESTCASE (test_com_sw_version, data->com_data));
g_test_suite_add (suite, TESTCASE (test_com_cm_subsys_state_info, data->com_data));
+ g_test_suite_add (suite, TESTCASE (test_com_hdr_subsys_state_info, data->com_data));
}
result = g_test_run ();