@@ -47,6 +47,7 @@ using namespace utest::v1;
47
47
48
48
volatile int intFlag = 0 ;
49
49
const ticker_interface_t * intf;
50
+ ticker_irq_handler_type prev_irq_handler;
50
51
unsigned int ticker_overflow_delta;
51
52
52
53
/* Auxiliary function to count ticker ticks elapsed during execution of N cycles of empty while loop.
@@ -444,26 +445,46 @@ utest::v1::status_t us_ticker_setup(const Case *const source, const size_t index
444
445
445
446
intf->init ();
446
447
447
- set_us_ticker_irq_handler (ticker_event_handler_stub);
448
+ prev_irq_handler = set_us_ticker_irq_handler (ticker_event_handler_stub);
448
449
449
450
ticker_overflow_delta = US_TICKER_OVERFLOW_DELTA;
450
451
451
452
return greentea_case_setup_handler (source, index_of_case);
452
453
}
453
454
455
+ utest::v1::status_t us_ticker_teardown (const Case * const source, const size_t passed, const size_t failed,
456
+ const failure_t reason)
457
+ {
458
+ set_us_ticker_irq_handler (prev_irq_handler);
459
+
460
+ prev_irq_handler = NULL ;
461
+
462
+ return greentea_case_teardown_handler (source, passed, failed, reason);
463
+ }
464
+
454
465
#if DEVICE_LPTICKER
455
466
utest::v1::status_t lp_ticker_setup (const Case *const source, const size_t index_of_case)
456
467
{
457
468
intf = get_lp_ticker_data ()->interface ;
458
469
459
470
intf->init ();
460
471
461
- set_lp_ticker_irq_handler (ticker_event_handler_stub);
472
+ prev_irq_handler = set_lp_ticker_irq_handler (ticker_event_handler_stub);
462
473
463
474
ticker_overflow_delta = LP_TICKER_OVERFLOW_DELTA;
464
475
465
476
return greentea_case_setup_handler (source, index_of_case);
466
477
}
478
+
479
+ utest::v1::status_t lp_ticker_teardown (const Case * const source, const size_t passed, const size_t failed,
480
+ const failure_t reason)
481
+ {
482
+ set_lp_ticker_irq_handler (prev_irq_handler);
483
+
484
+ prev_irq_handler = NULL ;
485
+
486
+ return greentea_case_teardown_handler (source, passed, failed, reason);
487
+ }
467
488
#endif
468
489
469
490
utest::v1::status_t test_setup (const size_t number_of_cases)
@@ -473,25 +494,25 @@ utest::v1::status_t test_setup(const size_t number_of_cases)
473
494
}
474
495
475
496
Case cases[] = {
476
- Case (" Microsecond ticker init is safe to call repeatedly" , us_ticker_setup, ticker_init_test),
477
- Case (" Microsecond ticker info test" , us_ticker_setup, ticker_info_test),
478
- Case (" Microsecond ticker interrupt test" , us_ticker_setup, ticker_interrupt_test),
479
- Case (" Microsecond ticker past interrupt test" , us_ticker_setup, ticker_past_test),
480
- Case (" Microsecond ticker reschedule test" , us_ticker_setup, ticker_repeat_reschedule_test),
481
- Case (" Microsecond ticker fire interrupt" , us_ticker_setup, ticker_fire_now_test),
482
- Case (" Microsecond ticker overflow test" , us_ticker_setup, ticker_overflow_test),
483
- Case (" Microsecond ticker increment test" , us_ticker_setup, ticker_increment_test),
484
- Case (" Microsecond ticker speed test" , us_ticker_setup, ticker_speed_test),
497
+ Case (" Microsecond ticker init is safe to call repeatedly" , us_ticker_setup, ticker_init_test, us_ticker_teardown ),
498
+ Case (" Microsecond ticker info test" , us_ticker_setup, ticker_info_test, us_ticker_teardown ),
499
+ Case (" Microsecond ticker interrupt test" , us_ticker_setup, ticker_interrupt_test, us_ticker_teardown ),
500
+ Case (" Microsecond ticker past interrupt test" , us_ticker_setup, ticker_past_test, us_ticker_teardown ),
501
+ Case (" Microsecond ticker reschedule test" , us_ticker_setup, ticker_repeat_reschedule_test, us_ticker_teardown ),
502
+ Case (" Microsecond ticker fire interrupt" , us_ticker_setup, ticker_fire_now_test, us_ticker_teardown ),
503
+ Case (" Microsecond ticker overflow test" , us_ticker_setup, ticker_overflow_test, us_ticker_teardown ),
504
+ Case (" Microsecond ticker increment test" , us_ticker_setup, ticker_increment_test, us_ticker_teardown ),
505
+ Case (" Microsecond ticker speed test" , us_ticker_setup, ticker_speed_test, us_ticker_teardown ),
485
506
#if DEVICE_LPTICKER
486
- Case (" lp ticker init is safe to call repeatedly" , lp_ticker_setup, ticker_init_test),
487
- Case (" lp ticker info test" , lp_ticker_setup, ticker_info_test),
488
- Case (" lp ticker interrupt test" , lp_ticker_setup, ticker_interrupt_test),
489
- Case (" lp ticker past interrupt test" , lp_ticker_setup, ticker_past_test),
490
- Case (" lp ticker reschedule test" , lp_ticker_setup, ticker_repeat_reschedule_test),
491
- Case (" lp ticker fire interrupt" , lp_ticker_setup, ticker_fire_now_test),
492
- Case (" lp ticker overflow test" , lp_ticker_setup, ticker_overflow_test),
493
- Case (" lp ticker increment test" , lp_ticker_setup, ticker_increment_test),
494
- Case (" lp ticker speed test" , lp_ticker_setup, ticker_speed_test),
507
+ Case (" lp ticker init is safe to call repeatedly" , lp_ticker_setup, ticker_init_test, lp_ticker_teardown ),
508
+ Case (" lp ticker info test" , lp_ticker_setup, ticker_info_test, lp_ticker_teardown ),
509
+ Case (" lp ticker interrupt test" , lp_ticker_setup, ticker_interrupt_test, lp_ticker_teardown ),
510
+ Case (" lp ticker past interrupt test" , lp_ticker_setup, ticker_past_test, lp_ticker_teardown ),
511
+ Case (" lp ticker reschedule test" , lp_ticker_setup, ticker_repeat_reschedule_test, lp_ticker_teardown ),
512
+ Case (" lp ticker fire interrupt" , lp_ticker_setup, ticker_fire_now_test, lp_ticker_teardown ),
513
+ Case (" lp ticker overflow test" , lp_ticker_setup, ticker_overflow_test, lp_ticker_teardown ),
514
+ Case (" lp ticker increment test" , lp_ticker_setup, ticker_increment_test, lp_ticker_teardown ),
515
+ Case (" lp ticker speed test" , lp_ticker_setup, ticker_speed_test, lp_ticker_teardown ),
495
516
#endif
496
517
};
497
518
0 commit comments