enable common tickers & lp_tickers hal tests in baremetal mode

pull/12827/head
Wilfried Chauveau 2020-04-17 15:01:56 +01:00
parent a252b073cf
commit 3d74526fa9
No known key found for this signature in database
GPG Key ID: FD66024FC8A1D433
4 changed files with 24 additions and 20 deletions

View File

@ -15,10 +15,6 @@
* limitations under the License. * limitations under the License.
*/ */
#if !defined(MBED_CONF_RTOS_PRESENT)
#error [NOT_SUPPORTED] usticker test cases require a RTOS to run
#else
#include "mbed.h" #include "mbed.h"
#include "greentea-client/test_env.h" #include "greentea-client/test_env.h"
#include "unity.h" #include "unity.h"
@ -28,6 +24,7 @@
#include "hal/lp_ticker_api.h" #include "hal/lp_ticker_api.h"
#include "hal/mbed_lp_ticker_wrapper.h" #include "hal/mbed_lp_ticker_wrapper.h"
#ifdef MBED_CONF_RTOS_PRESENT
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@ -35,6 +32,7 @@ extern "C" {
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif // __cplusplus #endif // __cplusplus
#endif
#if !DEVICE_USTICKER #if !DEVICE_USTICKER
#error [NOT_SUPPORTED] test not supported #error [NOT_SUPPORTED] test not supported
@ -520,9 +518,11 @@ utest::v1::status_t us_ticker_setup(const Case *const source, const size_t index
{ {
intf = get_us_ticker_data()->interface; intf = get_us_ticker_data()->interface;
#ifdef MBED_CONF_RTOS_PRESENT
/* OS, common ticker and low power ticker wrapper /* OS, common ticker and low power ticker wrapper
* may make use of us ticker so suspend them for this test */ * may make use of us ticker so suspend them for this test */
osKernelSuspend(); osKernelSuspend();
#endif
#if DEVICE_LPTICKER && (LPTICKER_DELAY_TICKS > 0) #if DEVICE_LPTICKER && (LPTICKER_DELAY_TICKS > 0)
/* Suspend the lp ticker wrapper since it makes use of the us ticker */ /* Suspend the lp ticker wrapper since it makes use of the us ticker */
ticker_suspend(get_lp_ticker_data()); ticker_suspend(get_lp_ticker_data());
@ -552,7 +552,9 @@ utest::v1::status_t us_ticker_teardown(const Case *const source, const size_t pa
lp_ticker_wrapper_resume(); lp_ticker_wrapper_resume();
ticker_resume(get_lp_ticker_data()); ticker_resume(get_lp_ticker_data());
#endif #endif
#ifdef MBED_CONF_RTOS_PRESENT
osKernelResume(0); osKernelResume(0);
#endif
return greentea_case_teardown_handler(source, passed, failed, reason); return greentea_case_teardown_handler(source, passed, failed, reason);
} }
@ -562,8 +564,10 @@ utest::v1::status_t lp_ticker_setup(const Case *const source, const size_t index
{ {
intf = get_lp_ticker_data()->interface; intf = get_lp_ticker_data()->interface;
#ifdef MBED_CONF_RTOS_PRESENT
/* OS and common ticker may make use of lp ticker so suspend them for this test */ /* OS and common ticker may make use of lp ticker so suspend them for this test */
osKernelSuspend(); osKernelSuspend();
#endif
ticker_suspend(get_lp_ticker_data()); ticker_suspend(get_lp_ticker_data());
intf->init(); intf->init();
@ -584,7 +588,9 @@ utest::v1::status_t lp_ticker_teardown(const Case *const source, const size_t pa
prev_irq_handler = NULL; prev_irq_handler = NULL;
ticker_resume(get_lp_ticker_data()); ticker_resume(get_lp_ticker_data());
#ifdef MBED_CONF_RTOS_PRESENT
osKernelResume(0); osKernelResume(0);
#endif
return greentea_case_teardown_handler(source, passed, failed, reason); return greentea_case_teardown_handler(source, passed, failed, reason);
} }
@ -626,4 +632,3 @@ int main()
return !Harness::run(specification); return !Harness::run(specification);
} }
#endif // !DEVICE_USTICKER #endif // !DEVICE_USTICKER
#endif // !defined(MBED_CONF_RTOS_PRESENT)

View File

@ -20,10 +20,6 @@
* freqency is valid. * freqency is valid.
*/ */
#if !defined(MBED_CONF_RTOS_PRESENT)
#error [NOT_SUPPORTED] common tickers frequency test cases require a RTOS to run.
#else
#include "mbed.h" #include "mbed.h"
#include "greentea-client/test_env.h" #include "greentea-client/test_env.h"
#include "utest/utest.h" #include "utest/utest.h"
@ -187,8 +183,10 @@ Case cases[] = {
utest::v1::status_t greentea_test_setup(const size_t number_of_cases) utest::v1::status_t greentea_test_setup(const size_t number_of_cases)
{ {
#ifdef MBED_CONF_RTOS_PRESENT
/* Suspend RTOS Kernel so the timers are not in use. */ /* Suspend RTOS Kernel so the timers are not in use. */
osKernelSuspend(); osKernelSuspend();
#endif
GREENTEA_SETUP(120, "timing_drift_auto"); GREENTEA_SETUP(120, "timing_drift_auto");
return greentea_test_setup_handler(number_of_cases); return greentea_test_setup_handler(number_of_cases);
@ -196,7 +194,9 @@ utest::v1::status_t greentea_test_setup(const size_t number_of_cases)
void greentea_test_teardown(const size_t passed, const size_t failed, const failure_t failure) void greentea_test_teardown(const size_t passed, const size_t failed, const failure_t failure)
{ {
#ifdef MBED_CONF_RTOS_PRESENT
osKernelResume(0); osKernelResume(0);
#endif
greentea_test_teardown_handler(passed, failed, failure); greentea_test_teardown_handler(passed, failed, failure);
} }
@ -209,4 +209,3 @@ int main()
} }
#endif // defined(SKIP_TIME_DRIFT_TESTS) || !DEVICE_USTICKER #endif // defined(SKIP_TIME_DRIFT_TESTS) || !DEVICE_USTICKER
#endif // !defined(MBED_CONF_RTOS_PRESENT)

View File

@ -15,10 +15,6 @@
* limitations under the License. * limitations under the License.
*/ */
#if !defined(MBED_CONF_RTOS_PRESENT)
#error [NOT_SUPPORTED] Low power timer test cases require a RTOS to run.
#else
#include "mbed.h" #include "mbed.h"
#include "greentea-client/test_env.h" #include "greentea-client/test_env.h"
#include "unity.h" #include "unity.h"
@ -167,8 +163,10 @@ void lp_ticker_glitch_test()
#if DEVICE_LPTICKER #if DEVICE_LPTICKER
utest::v1::status_t lp_ticker_deepsleep_test_setup_handler(const Case *const source, const size_t index_of_case) utest::v1::status_t lp_ticker_deepsleep_test_setup_handler(const Case *const source, const size_t index_of_case)
{ {
#ifdef MBED_CONF_RTOS_PRESENT
/* disable everything using the lp ticker for this test */ /* disable everything using the lp ticker for this test */
osKernelSuspend(); osKernelSuspend();
#endif
ticker_suspend(get_lp_ticker_data()); ticker_suspend(get_lp_ticker_data());
#if DEVICE_LPTICKER && (LPTICKER_DELAY_TICKS > 0) #if DEVICE_LPTICKER && (LPTICKER_DELAY_TICKS > 0)
lp_ticker_wrapper_suspend(); lp_ticker_wrapper_suspend();
@ -185,7 +183,9 @@ utest::v1::status_t lp_ticker_deepsleep_test_teardown_handler(const Case *const
lp_ticker_wrapper_resume(); lp_ticker_wrapper_resume();
#endif #endif
ticker_resume(get_lp_ticker_data()); ticker_resume(get_lp_ticker_data());
#ifdef MBED_CONF_RTOS_PRESENT
osKernelResume(0); osKernelResume(0);
#endif
return greentea_case_teardown_handler(source, passed, failed, reason); return greentea_case_teardown_handler(source, passed, failed, reason);
} }
#endif #endif
@ -212,4 +212,3 @@ int main()
} }
#endif // !DEVICE_LPTICKER #endif // !DEVICE_LPTICKER
#endif // !defined(MBED_CONF_RTOS_PRESENT)

View File

@ -15,10 +15,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
#if !defined(MBED_CONF_RTOS_PRESENT)
#error [NOT_SUPPORTED] stack size unification test cases require a RTOS to run.
#else
#include "mbed.h" #include "mbed.h"
#include "greentea-client/test_env.h" #include "greentea-client/test_env.h"
#include "unity.h" #include "unity.h"
@ -30,12 +26,16 @@
using namespace utest::v1; using namespace utest::v1;
#ifdef MBED_CONF_RTOS_PRESENT
extern osThreadAttr_t _main_thread_attr; extern osThreadAttr_t _main_thread_attr;
#endif
extern uint32_t mbed_stack_isr_size; extern uint32_t mbed_stack_isr_size;
/* Exception for Nordic boards - BLE requires 2KB ISR stack. */ /* Exception for Nordic boards - BLE requires 2KB ISR stack. */
#if defined(TARGET_NRF5x) #if defined(TARGET_NRF5x)
#define EXPECTED_ISR_STACK_SIZE (2048) #define EXPECTED_ISR_STACK_SIZE (2048)
#elif !defined(MBED_CONF_RTOS_PRESENT)
#define EXPECTED_ISR_STACK_SIZE (4096)
#else #else
#define EXPECTED_ISR_STACK_SIZE (1024) #define EXPECTED_ISR_STACK_SIZE (1024)
#endif #endif
@ -58,8 +58,10 @@ extern uint32_t mbed_stack_isr_size;
void stack_size_unification_test() void stack_size_unification_test()
{ {
TEST_ASSERT_EQUAL(EXPECTED_ISR_STACK_SIZE, mbed_stack_isr_size); TEST_ASSERT_EQUAL(EXPECTED_ISR_STACK_SIZE, mbed_stack_isr_size);
#ifdef MBED_CONF_RTOS_PRESENT
TEST_ASSERT_EQUAL(EXPECTED_MAIN_THREAD_STACK_SIZE, _main_thread_attr.stack_size); TEST_ASSERT_EQUAL(EXPECTED_MAIN_THREAD_STACK_SIZE, _main_thread_attr.stack_size);
TEST_ASSERT_EQUAL(EXPECTED_USER_THREAD_DEFAULT_STACK_SIZE, OS_STACK_SIZE); TEST_ASSERT_EQUAL(EXPECTED_USER_THREAD_DEFAULT_STACK_SIZE, OS_STACK_SIZE);
#endif
} }
utest::v1::status_t test_setup(const size_t number_of_cases) utest::v1::status_t test_setup(const size_t number_of_cases)
@ -80,4 +82,3 @@ int main()
} }
#endif // TARGET_RENESAS #endif // TARGET_RENESAS
#endif // !defined(MBED_CONF_RTOS_PRESENT)