changes for R412M test cases
Diff: TESTS/unit_tests/default/main.cpp
- Revision:
- 22:63b1a3c02fb8
- Parent:
- 12:ff6fac481487
- Child:
- 23:9098a541452b
--- a/TESTS/unit_tests/default/main.cpp Tue Feb 12 18:42:43 2019 +0500 +++ b/TESTS/unit_tests/default/main.cpp Mon May 13 13:30:24 2019 +0500 @@ -1,3 +1,4 @@ + #include "UbloxATCellularInterface.h" #include "greentea-client/test_env.h" #include "unity.h" @@ -141,6 +142,8 @@ // The maximum number of sockets that can be open at one time #define MAX_NUM_SOCKETS 7 +int previousSelectedRat = -1, previousPreferredRat = -1, previousSecondPreferredRat = -1; + // ---------------------------------------------------------------- // PRIVATE VARIABLES // ---------------------------------------------------------------- @@ -496,10 +499,10 @@ const char *imsi; const char *iccid; int rssi; - + // Power-up the modem interface->init(); - + // Check all of the IMEI, MEID, IMSI and ICCID calls imei = interface->imei(); if (imei != NULL) { @@ -507,37 +510,37 @@ } else { TEST_ASSERT(false); } - + meid = interface->meid(); if (meid != NULL) { tr_debug("MEID is %s.", meid); } else { TEST_ASSERT(false); } - + imsi = interface->imsi(); if (imsi != NULL) { tr_debug("IMSI is %s.", imsi); } else { TEST_ASSERT(false); } - + iccid = interface->iccid(); if (iccid != NULL) { tr_debug("ICCID is %s.", iccid); } else { TEST_ASSERT(false); } - + // Check the RSSI call at least doesn't assert rssi = interface->rssi(); tr_debug("RSSI is %d dBm.", rssi); - + // Now connect and check that the answers for the // static fields are the same while connected TEST_ASSERT(interface->connect(MBED_CONF_APP_DEFAULT_PIN, MBED_CONF_APP_APN, MBED_CONF_APP_USERNAME, MBED_CONF_APP_PASSWORD) == 0); - + TEST_ASSERT(strcmp(imei, interface->imei()) == 0); TEST_ASSERT(strcmp(meid, interface->meid()) == 0); TEST_ASSERT(strcmp(imsi, interface->imsi()) == 0); @@ -1066,6 +1069,138 @@ delete pLocalInterface; } +void test_set_new_rat() { + + int currentSelectedRat = -1, currentPreferredRat = -1, currentSecondPreferredRat = -1; + + // Power-up the modem + TEST_ASSERT(interface->init()); + + // Check if modem is registered with network + if (interface->is_registered_csd() || interface->is_registered_psd() || interface->is_registered_eps()) { + tr_error("RAT should only be set in detached state"); + // Deregister from Network + TEST_ASSERT(interface->nwk_deregistration()); + } + + // Get and store initial RAT set on modem + TEST_ASSERT(interface->get_modem_rat(&previousSelectedRat, &previousPreferredRat, &previousSecondPreferredRat)); + tr_debug("previous selected RAT: %d\nprevious preferred RAT: %d\nprevious second preferred RAT: %d\n", previousSelectedRat, previousPreferredRat, previousSecondPreferredRat); + +#ifdef TARGET_UBLOX_C030_U201 + // Set new RAT + TEST_ASSERT(interface->set_modem_rat(UbloxATCellularInterface::GSM_UMTS, UbloxATCellularInterface::UMTS)); + tr_debug("RAT configured\n"); + + // Get latest set RAT on modem + TEST_ASSERT(interface->get_modem_rat(¤tSelectedRat, ¤tPreferredRat, ¤tSecondPreferredRat)); + tr_debug("new selected RAT: %d\nnew preferred RAT: %d\nnew second preferred RAT: %d\n", currentSelectedRat, currentPreferredRat, currentSecondPreferredRat); + + // Check RAT configured correctly + TEST_ASSERT((currentSelectedRat == UbloxATCellularInterface::GSM_UMTS) && (currentPreferredRat == UbloxATCellularInterface::UMTS)); +#endif + +#ifdef TARGET_UBLOX_C030_R412M + // Set new RAT + TEST_ASSERT(interface->set_modem_rat(UbloxATCellularInterface::LTE_CATM1, UbloxATCellularInterface::LTE_CATNB1)); + tr_debug("RAT configured\n"); + + // Get latest set RAT on modem + TEST_ASSERT(interface->get_modem_rat(¤tSelectedRat, ¤tPreferredRat, ¤tSecondPreferredRat)); + tr_debug("new selected RAT: %d\nnew preferred RAT: %d\nnew second preferred RAT: %d\n", currentSelectedRat, currentPreferredRat, currentSecondPreferredRat); + + // Check RAT configured correctly + TEST_ASSERT((currentSelectedRat == UbloxATCellularInterface::LTE_CATM1) && (currentPreferredRat == UbloxATCellularInterface::LTE_CATNB1)); +#endif +} + +void test_reboot() { + + // Rebooting modem for settings to take effect + TEST_ASSERT(interface->reboot_modem()); +} + +void test_registration() { + + TEST_ASSERT(interface->connect(MBED_CONF_APP_DEFAULT_PIN, MBED_CONF_APP_APN, + MBED_CONF_APP_USERNAME, MBED_CONF_APP_PASSWORD) == 0); + + TEST_ASSERT(interface->nwk_deregistration()); +} + + +void test_set_previous_rat() { + + int currentSelectedRat = -1, currentPreferredRat = -1, currentSecondPreferredRat = -1; + + // Restore RAT to previous settings + TEST_ASSERT(interface->set_modem_rat((UbloxATCellularInterface::RAT)previousSelectedRat, (UbloxATCellularInterface::RAT)previousPreferredRat, (UbloxATCellularInterface::RAT)previousSecondPreferredRat)); + tr_debug("RAT configured\n"); + + TEST_ASSERT(interface->get_modem_rat(¤tSelectedRat, ¤tPreferredRat, ¤tSecondPreferredRat)); + tr_debug("current selected RAT: %d\ncurrent preferred RAT: %d\ncurrent second preferred RAT: %d\n", currentSelectedRat, currentPreferredRat, currentSecondPreferredRat); + + // Check RAT configured correctly + TEST_ASSERT((currentSelectedRat == previousSelectedRat) && (currentPreferredRat == previousPreferredRat)); + + // Rebooting modem for settings to take effect + TEST_ASSERT(interface->reboot_modem()); +} + +#ifdef TARGET_UBLOX_C030_R41XM +void test_mno_profile() { + + int previous_profile, current_profile; + + // Power-up the modem + TEST_ASSERT(interface->init()); + + // Check if modem is registered with network + if (interface->is_registered_csd() || interface->is_registered_psd() || interface->is_registered_eps()) { + tr_error("MNO profile should only be set in detached state"); + // Deregister from Network + TEST_ASSERT(interface->nwk_deregistration()); + } + + // Getting current mno profile + TEST_ASSERT(interface->get_mno_profile(&previous_profile)); + tr_debug("Previous MNO profile is: %d\n\n", previous_profile); + + // Set MNO profile + TEST_ASSERT(interface->set_mno_profile((UbloxATCellularInterface::MNOProfile)MBED_CONF_UBLOX_CELL_DEFAULT_MNO_PROFILE)); + tr_debug("MNO configured\n"); + + // Rebooting modem for settings to take effect + TEST_ASSERT(interface->reboot_modem()); + tr_debug("Reboot successful\n"); + wait_ms(5000); + + // Check MNO profile configured correctly + TEST_ASSERT(interface->get_mno_profile(¤t_profile)); + tr_debug("New MNO profile is: %d\n\n", current_profile); + + TEST_ASSERT((UbloxATCellularInterface::MNOProfile)current_profile == (UbloxATCellularInterface::MNOProfile)MBED_CONF_UBLOX_CELL_DEFAULT_MNO_PROFILE); + + TEST_ASSERT(interface->connect(MBED_CONF_APP_DEFAULT_PIN, MBED_CONF_APP_APN, + MBED_CONF_APP_USERNAME, MBED_CONF_APP_PASSWORD) == 0); + + TEST_ASSERT(interface->nwk_deregistration()); + + // Restore MNO profile to previous settings + TEST_ASSERT(interface->set_mno_profile((UbloxATCellularInterface::MNOProfile)previous_profile)); + tr_debug("Previous MNO configured\n"); + + // Rebooting modem for settings to take effect + TEST_ASSERT(interface->reboot_modem()); + tr_debug("Reboot successful\n"); + wait_ms(5000); + + // Check MNO profile configured correctly + TEST_ASSERT(interface->get_mno_profile(¤t_profile)); + TEST_ASSERT((current_profile == previous_profile)); +} +#endif + // ---------------------------------------------------------------- // TEST ENVIRONMENT // ---------------------------------------------------------------- @@ -1105,6 +1240,15 @@ Case("Check SIM pin, pending", test_check_sim_pin_pending), Case("Check SIM pin, immediate", test_check_sim_pin_immediate), #endif +#if defined (TARGET_UBLOX_C030_U201) || defined (TARGET_UBLOX_C030_R412M) + Case("Set RAT test", test_set_new_rat), + Case("Reboot test", test_reboot), + Case("Register with network test", test_registration), + Case("Set previous RAT test", test_set_previous_rat), +#endif +#ifdef TARGET_UBLOX_C030_R41XM + Case("MNO profile test", test_mno_profile), +#endif #ifndef TARGET_UBLOX_C027 // Not enough RAM on little 'ole C027 for this Case("Connect using local instance, must be last test", test_connect_local_instance_last_test) #endif