aboutsummaryrefslogtreecommitdiff
path: root/src/tests/test-modem-helpers-qmi.c
diff options
context:
space:
mode:
authorDan Williams <dan@ioncontrol.co>2025-03-28 15:46:00 -0500
committerDan Williams <dan@ioncontrol.co>2025-04-09 13:19:50 +0000
commitf5ae14d0b2daae818b195366eaa9b16ecc964dfa (patch)
tree5e47ac5cd9399aabc3f3701aeb8d6696d98305e7 /src/tests/test-modem-helpers-qmi.c
parent467a53f189ddcec87ddba0aa0c72c7d3ca34e2e4 (diff)
modem-helpers-qmi: better handle no supported modes
Dell Snapdragon X62 before FCC Unlock reports no radio interfaces from QMI and no device capabilities from MBIM. Instead of asserting in mm_filter_supported_modes() when called from mm_supported_modes_from_qmi_supported_modes_context() gracefully handle the lack of supported modes. Signed-off-by: Dan Williams <dan@ioncontrol.co>
Diffstat (limited to 'src/tests/test-modem-helpers-qmi.c')
-rw-r--r--src/tests/test-modem-helpers-qmi.c40
1 files changed, 32 insertions, 8 deletions
diff --git a/src/tests/test-modem-helpers-qmi.c b/src/tests/test-modem-helpers-qmi.c
index 7ff1c9f2..576beb68 100644
--- a/src/tests/test-modem-helpers-qmi.c
+++ b/src/tests/test-modem-helpers-qmi.c
@@ -72,14 +72,22 @@ test_supported_modes_expected (MMQmiSupportedModesContext *ctx,
g_autoptr(GArray) built = NULL;
g_autofree gchar *expected_str = NULL;
g_autofree gchar *built_str = NULL;
-
- built = mm_supported_modes_from_qmi_supported_modes_context (ctx, NULL);
-
- expected_str = mm_common_build_mode_combinations_string (expected_modes, n_expected_modes);
- built_str = mm_common_build_mode_combinations_string ((MMModemModeCombination *)built->data, built->len);
-
- /* compare strings, so that the error shows the string values as well */
- g_assert_cmpstr (built_str, ==, expected_str);
+ g_autoptr(GError) error = NULL;
+
+ built = mm_supported_modes_from_qmi_supported_modes_context (ctx, NULL, &error);
+ if (built == NULL) {
+ g_assert_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED);
+ g_assert_cmpint (n_expected_modes, ==, 0);
+ } else {
+ g_assert_no_error (error);
+ g_assert_cmpint (n_expected_modes, >, 0);
+
+ expected_str = mm_common_build_mode_combinations_string (expected_modes, n_expected_modes);
+ built_str = mm_common_build_mode_combinations_string ((MMModemModeCombination *)built->data, built->len);
+
+ /* compare strings, so that the error shows the string values as well */
+ g_assert_cmpstr (built_str, ==, expected_str);
+ }
}
/*****************************************************************************/
@@ -1332,6 +1340,20 @@ test_supported_modes_generic_nr5g_lte_evdo (void)
G_N_ELEMENTS (expected_modes));
}
+static void
+test_supported_modes_generic_none (void)
+{
+ MMQmiSupportedModesContext ctx;
+
+ /* Dell Snapdragon X62 before FCC unlock reports no supported radio interfaces */
+ ctx.multimode = FALSE;
+ ctx.all = MM_MODEM_MODE_NONE;
+
+ test_supported_modes_expected (&ctx,
+ NULL,
+ 0);
+}
+
/*****************************************************************************/
/* System Info processor helper */
@@ -1970,6 +1992,8 @@ int main (int argc, char **argv)
g_test_add_func ("/MM/qmi/supported-capabilities/generic/nr5g-lte-evdo", test_supported_capabilities_generic_nr5g_lte_evdo);
g_test_add_func ("/MM/qmi/supported-modes/generic/nr5g-lte-evdo", test_supported_modes_generic_nr5g_lte_evdo);
+ g_test_add_func ("/MM/qmi/supported-modes/generic/none", test_supported_modes_generic_none);
+
g_test_add_func ("/MM/qmi/registration-state-from-system-info/2g/searching", test_registration_state_from_qmi_system_info_2g_searching);
g_test_add_func ("/MM/qmi/registration-state-from-system-info/2g/idle", test_registration_state_from_qmi_system_info_2g_idle);
g_test_add_func ("/MM/qmi/registration-state-from-system-info/2g/cs-home", test_registration_state_from_qmi_system_info_2g_cs_home);