diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2022-01-30 17:43:34 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2022-01-31 22:48:57 +0100 |
commit | ff51fe637d8a87b265f9cf4558987d2e698e9e62 (patch) | |
tree | 3857ed5583c3827d64d34ae184403e9b264fc7d0 /src | |
parent | d0c87c5877b247ee34fb133604904404581e7814 (diff) |
tests,modem-helpers-qmi: add tests for supported capabilities loading
Diffstat (limited to 'src')
-rw-r--r-- | src/tests/test-modem-helpers-qmi.c | 217 |
1 files changed, 207 insertions, 10 deletions
diff --git a/src/tests/test-modem-helpers-qmi.c b/src/tests/test-modem-helpers-qmi.c index 7f4b3d30..ff75c0de 100644 --- a/src/tests/test-modem-helpers-qmi.c +++ b/src/tests/test-modem-helpers-qmi.c @@ -20,6 +20,10 @@ #include <stdlib.h> #include <locale.h> +#include <ModemManager.h> +#define _LIBMM_INSIDE_MM +#include <libmm-glib.h> + #include "mm-enums-types.h" #include "mm-modem-helpers-qmi.h" #include "mm-log-test.h" @@ -41,6 +45,24 @@ test_current_capabilities_expected (MMQmiCurrentCapabilitiesContext *ctx, g_assert_cmpstr (built_str, ==, expected_str); } +static void +test_supported_capabilities_expected (MMQmiSupportedCapabilitiesContext *ctx, + const MMModemCapability *expected_capabilities, + guint n_expected_capabilities) +{ + g_autoptr(GArray) built = NULL; + g_autofree gchar *expected_str = NULL; + g_autofree gchar *built_str = NULL; + + built = mm_supported_capabilities_from_qmi_supported_capabilities_context (ctx, NULL); + + expected_str = mm_common_build_capabilities_string (expected_capabilities, n_expected_capabilities); + built_str = mm_common_build_capabilities_string ((MMModemCapability *)built->data, built->len); + + /* compare strings, so that the error shows the string values as well */ + g_assert_cmpstr (built_str, ==, expected_str); +} + /*****************************************************************************/ /* UML290: * ∘ +GCAP: +CIS707-A, CIS-856, CIS-856-A, +CGSM, +CLTE2 @@ -93,6 +115,28 @@ test_current_capabilities_uml290 (void) MM_MODEM_CAPABILITY_LTE)); } +static void +test_supported_capabilities_uml290 (void) +{ + MMQmiSupportedCapabilitiesContext ctx; + static const MMModemCapability expected_capabilities[] = { + MM_MODEM_CAPABILITY_GSM_UMTS | MM_MODEM_CAPABILITY_LTE, + MM_MODEM_CAPABILITY_CDMA_EVDO | MM_MODEM_CAPABILITY_LTE, + MM_MODEM_CAPABILITY_LTE, + MM_MODEM_CAPABILITY_GSM_UMTS | MM_MODEM_CAPABILITY_CDMA_EVDO | MM_MODEM_CAPABILITY_LTE, + }; + + ctx.nas_ssp_supported = TRUE; + ctx.nas_tp_supported = FALSE; + ctx.dms_capabilities = (MM_MODEM_CAPABILITY_GSM_UMTS | + MM_MODEM_CAPABILITY_CDMA_EVDO | + MM_MODEM_CAPABILITY_LTE); + + test_supported_capabilities_expected (&ctx, + expected_capabilities, + G_N_ELEMENTS (expected_capabilities)); +} + /*****************************************************************************/ /* ADU960S: * ∘ +GCAP: +CGSM,+DS,+ES @@ -108,7 +152,7 @@ test_current_capabilities_adu960s (void) { MMQmiCurrentCapabilitiesContext ctx; - ctx.nas_ssp_mode_preference_mask = 0; + ctx.nas_ssp_mode_preference_mask = 0; /* Unsupported */ ctx.nas_tp_mask = 0; /* Unsupported */ ctx.dms_capabilities = (MM_MODEM_CAPABILITY_GSM_UMTS | MM_MODEM_CAPABILITY_CDMA_EVDO | @@ -119,6 +163,25 @@ test_current_capabilities_adu960s (void) MM_MODEM_CAPABILITY_LTE)); } +static void +test_supported_capabilities_adu960s (void) +{ + MMQmiSupportedCapabilitiesContext ctx; + static const MMModemCapability expected_capabilities[] = { + MM_MODEM_CAPABILITY_GSM_UMTS | MM_MODEM_CAPABILITY_CDMA_EVDO | MM_MODEM_CAPABILITY_LTE, + }; + + ctx.nas_ssp_supported = FALSE; + ctx.nas_tp_supported = FALSE; + ctx.dms_capabilities = (MM_MODEM_CAPABILITY_GSM_UMTS | + MM_MODEM_CAPABILITY_CDMA_EVDO | + MM_MODEM_CAPABILITY_LTE); + + test_supported_capabilities_expected (&ctx, + expected_capabilities, + G_N_ELEMENTS (expected_capabilities)); +} + /*****************************************************************************/ /* Gobi 1K with GSM firmware: * ∘ +GCAP: didn't respond to AT commands @@ -139,6 +202,23 @@ test_current_capabilities_gobi1k_gsm (void) test_current_capabilities_expected (&ctx, MM_MODEM_CAPABILITY_GSM_UMTS); } +static void +test_supported_capabilities_gobi1k_gsm (void) +{ + MMQmiSupportedCapabilitiesContext ctx; + static const MMModemCapability expected_capabilities[] = { + MM_MODEM_CAPABILITY_GSM_UMTS, + }; + + ctx.nas_ssp_supported = FALSE; + ctx.nas_tp_supported = TRUE; + ctx.dms_capabilities = MM_MODEM_CAPABILITY_GSM_UMTS; + + test_supported_capabilities_expected (&ctx, + expected_capabilities, + G_N_ELEMENTS (expected_capabilities)); +} + /*****************************************************************************/ /* Gobi 1K with EVDO firmware: * ∘ +GCAP: didn't respond to AT commands @@ -159,6 +239,23 @@ test_current_capabilities_gobi1k_cdma (void) test_current_capabilities_expected (&ctx, MM_MODEM_CAPABILITY_CDMA_EVDO); } +static void +test_supported_capabilities_gobi1k_cdma (void) +{ + MMQmiSupportedCapabilitiesContext ctx; + static const MMModemCapability expected_capabilities[] = { + MM_MODEM_CAPABILITY_CDMA_EVDO, + }; + + ctx.nas_ssp_supported = FALSE; + ctx.nas_tp_supported = TRUE; + ctx.dms_capabilities = MM_MODEM_CAPABILITY_CDMA_EVDO; + + test_supported_capabilities_expected (&ctx, + expected_capabilities, + G_N_ELEMENTS (expected_capabilities)); +} + /*****************************************************************************/ /* Gobi 2K with GSM firmware: * ∘ +GCAP: +CGSM,+DS @@ -194,6 +291,23 @@ test_current_capabilities_gobi2k_gsm (void) test_current_capabilities_expected (&ctx, MM_MODEM_CAPABILITY_GSM_UMTS); } +static void +test_supported_capabilities_gobi2k_gsm (void) +{ + MMQmiSupportedCapabilitiesContext ctx; + static const MMModemCapability expected_capabilities[] = { + MM_MODEM_CAPABILITY_GSM_UMTS, + }; + + ctx.nas_ssp_supported = FALSE; + ctx.nas_tp_supported = TRUE; + ctx.dms_capabilities = MM_MODEM_CAPABILITY_GSM_UMTS; + + test_supported_capabilities_expected (&ctx, + expected_capabilities, + G_N_ELEMENTS (expected_capabilities)); +} + /*****************************************************************************/ /* Gobi 2K with CDMA firmware: * ∘ +GCAP: +CIS707-A, CIS-856, CIS-856-A, CIS707,+MS, +ES, +DS, +FCL @@ -229,6 +343,23 @@ test_current_capabilities_gobi2k_cdma (void) test_current_capabilities_expected (&ctx, MM_MODEM_CAPABILITY_CDMA_EVDO); } +static void +test_supported_capabilities_gobi2k_cdma (void) +{ + MMQmiSupportedCapabilitiesContext ctx; + static const MMModemCapability expected_capabilities[] = { + MM_MODEM_CAPABILITY_CDMA_EVDO, + }; + + ctx.nas_ssp_supported = FALSE; + ctx.nas_tp_supported = TRUE; + ctx.dms_capabilities = MM_MODEM_CAPABILITY_CDMA_EVDO; + + test_supported_capabilities_expected (&ctx, + expected_capabilities, + G_N_ELEMENTS (expected_capabilities)); +} + /*****************************************************************************/ /* Gobi 3K with GSM firmware: * ∘ +GCAP: +CGSM,+DS,+ES @@ -269,6 +400,23 @@ test_current_capabilities_gobi3k_gsm (void) test_current_capabilities_expected (&ctx, MM_MODEM_CAPABILITY_GSM_UMTS); } +static void +test_supported_capabilities_gobi3k_gsm (void) +{ + MMQmiSupportedCapabilitiesContext ctx; + static const MMModemCapability expected_capabilities[] = { + MM_MODEM_CAPABILITY_GSM_UMTS, + }; + + ctx.nas_ssp_supported = TRUE; + ctx.nas_tp_supported = TRUE; + ctx.dms_capabilities = MM_MODEM_CAPABILITY_GSM_UMTS; + + test_supported_capabilities_expected (&ctx, + expected_capabilities, + G_N_ELEMENTS (expected_capabilities)); +} + /*****************************************************************************/ /* Gobi 3K with CDMA firmware: * ∘ +GCAP: +CIS707-A, CIS-856, CIS-856-A, CIS707,+MS, +ES, +DS, +FCL @@ -309,6 +457,23 @@ test_current_capabilities_gobi3k_cdma (void) test_current_capabilities_expected (&ctx, MM_MODEM_CAPABILITY_CDMA_EVDO); } +static void +test_supported_capabilities_gobi3k_cdma (void) +{ + MMQmiSupportedCapabilitiesContext ctx; + static const MMModemCapability expected_capabilities[] = { + MM_MODEM_CAPABILITY_CDMA_EVDO, + }; + + ctx.nas_ssp_supported = TRUE; + ctx.nas_tp_supported = TRUE; + ctx.dms_capabilities = MM_MODEM_CAPABILITY_CDMA_EVDO; + + test_supported_capabilities_expected (&ctx, + expected_capabilities, + G_N_ELEMENTS (expected_capabilities)); +} + /*****************************************************************************/ /* Generic with NR5G: * ∘ +GCAP: +CGSM @@ -425,6 +590,29 @@ test_current_capabilities_generic_nr5g (void) MM_MODEM_CAPABILITY_5GNR)); } +static void +test_supported_capabilities_generic_nr5g (void) +{ + MMQmiSupportedCapabilitiesContext ctx; + static const MMModemCapability expected_capabilities[] = { + MM_MODEM_CAPABILITY_GSM_UMTS | MM_MODEM_CAPABILITY_LTE | MM_MODEM_CAPABILITY_5GNR, + MM_MODEM_CAPABILITY_CDMA_EVDO | MM_MODEM_CAPABILITY_LTE | MM_MODEM_CAPABILITY_5GNR, + MM_MODEM_CAPABILITY_LTE | MM_MODEM_CAPABILITY_5GNR, + MM_MODEM_CAPABILITY_GSM_UMTS | MM_MODEM_CAPABILITY_CDMA_EVDO | MM_MODEM_CAPABILITY_LTE | MM_MODEM_CAPABILITY_5GNR, + }; + + ctx.nas_ssp_supported = TRUE; + ctx.nas_tp_supported = TRUE; + ctx.dms_capabilities = (MM_MODEM_CAPABILITY_GSM_UMTS | + MM_MODEM_CAPABILITY_CDMA_EVDO | + MM_MODEM_CAPABILITY_LTE | + MM_MODEM_CAPABILITY_5GNR); + + test_supported_capabilities_expected (&ctx, + expected_capabilities, + G_N_ELEMENTS (expected_capabilities)); +} + /*****************************************************************************/ int main (int argc, char **argv) @@ -433,15 +621,24 @@ int main (int argc, char **argv) g_test_init (&argc, &argv, NULL); - g_test_add_func ("/MM/qmi/current-capabilities/UML290", test_current_capabilities_uml290); - g_test_add_func ("/MM/qmi/current-capabilities/ADU960S", test_current_capabilities_adu960s); - g_test_add_func ("/MM/qmi/current-capabilities/Gobi1k/GSM", test_current_capabilities_gobi1k_gsm); - g_test_add_func ("/MM/qmi/current-capabilities/Gobi1k/CDMA", test_current_capabilities_gobi1k_cdma); - g_test_add_func ("/MM/qmi/current-capabilities/Gobi2k/GSM", test_current_capabilities_gobi2k_gsm); - g_test_add_func ("/MM/qmi/current-capabilities/Gobi2k/CDMA", test_current_capabilities_gobi2k_cdma); - g_test_add_func ("/MM/qmi/current-capabilities/Gobi3k/GSM", test_current_capabilities_gobi3k_gsm); - g_test_add_func ("/MM/qmi/current-capabilities/Gobi3k/CDMA", test_current_capabilities_gobi3k_cdma); - g_test_add_func ("/MM/qmi/current-capabilities/generic/NR5G", test_current_capabilities_generic_nr5g); + g_test_add_func ("/MM/qmi/current-capabilities/UML290", test_current_capabilities_uml290); + g_test_add_func ("/MM/qmi/supported-capabilities/UML290", test_supported_capabilities_uml290); + g_test_add_func ("/MM/qmi/current-capabilities/ADU960S", test_current_capabilities_adu960s); + g_test_add_func ("/MM/qmi/supported-capabilities/ADU960S", test_supported_capabilities_adu960s); + g_test_add_func ("/MM/qmi/current-capabilities/Gobi1k/GSM", test_current_capabilities_gobi1k_gsm); + g_test_add_func ("/MM/qmi/supported-capabilities/Gobi1k/GSM", test_supported_capabilities_gobi1k_gsm); + g_test_add_func ("/MM/qmi/current-capabilities/Gobi1k/CDMA", test_current_capabilities_gobi1k_cdma); + g_test_add_func ("/MM/qmi/supported-capabilities/Gobi1k/CDMA", test_supported_capabilities_gobi1k_cdma); + g_test_add_func ("/MM/qmi/current-capabilities/Gobi2k/GSM", test_current_capabilities_gobi2k_gsm); + g_test_add_func ("/MM/qmi/supported-capabilities/Gobi2k/GSM", test_supported_capabilities_gobi2k_gsm); + g_test_add_func ("/MM/qmi/current-capabilities/Gobi2k/CDMA", test_current_capabilities_gobi2k_cdma); + g_test_add_func ("/MM/qmi/supported-capabilities/Gobi2k/CDMA", test_supported_capabilities_gobi2k_cdma); + g_test_add_func ("/MM/qmi/current-capabilities/Gobi3k/GSM", test_current_capabilities_gobi3k_gsm); + g_test_add_func ("/MM/qmi/supported-capabilities/Gobi3k/GSM", test_supported_capabilities_gobi3k_gsm); + g_test_add_func ("/MM/qmi/current-capabilities/Gobi3k/CDMA", test_current_capabilities_gobi3k_cdma); + g_test_add_func ("/MM/qmi/supported-capabilities/Gobi3k/CDMA", test_supported_capabilities_gobi3k_cdma); + g_test_add_func ("/MM/qmi/current-capabilities/generic/NR5G", test_current_capabilities_generic_nr5g); + g_test_add_func ("/MM/qmi/supported-capabilities/generic/NR5G", test_supported_capabilities_generic_nr5g); return g_test_run (); } |