Microchip® Advanced Software Framework

unit_tests.c File Reference

Unit tests for Watchdog timer module.

Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.

#include <conf_test.h>
#include <asf.h>

Macros

#define FAIL   0
 
#define SUCCESS   1
 

Functions

int main (void)
 
static void run_interrupt_reset_test (const struct test_case *test)
 Run test to check interrupt is getting triggered when WDT timout ouccured and system reset will not happen since refresh wdt is done. More...
 
static void run_reset_cause_test (const struct test_case *test)
 Run test to check last reset cause. More...
 
static void run_wdt_interrupt_test (const struct test_case *test)
 Run test to check interrupt is getting triggered when WDT timout ouccured. More...
 
static void wdt_reset_mode_enable (void)
 Configure WDT in reset mode. More...
 
static void wdt_timer_callback (void)
 Interrupt callback for wdt timer overflow interrupt Change the state when the interrupt is triggered. More...
 

Variables

static volatile bool wdt_int
 
static volatile bool wdt_rc
 

#define FAIL   0
#define SUCCESS   1

static void run_interrupt_reset_test ( const struct test_case test)
static

Run test to check interrupt is getting triggered when WDT timout ouccured and system reset will not happen since refresh wdt is done.

Parameters
testCurrent test case.

References cpu_irq_disable, FAIL, INTERRUPT_SYSTEM_RESET_MODE, SUCCESS, test_assert_true, wdt_disable(), wdt_enable(), wdt_get_timeout_period(), wdt_int, wdt_reset, wdt_reset_interrupt_mode_enabled(), wdt_set_interrupt_callback(), wdt_set_timeout_period(), wdt_timeout_interrupt_flag_clear(), wdt_timeout_interrupt_flag_is_set(), WDT_TIMEOUT_PERIOD_32KCLK, and wdt_timer_callback().

Referenced by main().

static void run_reset_cause_test ( const struct test_case test)
static

Run test to check last reset cause.

This test will pass if last reset was caused by a watchdog timeout.

Parameters
testCurrent test case.

References test_assert_true, and wdt_rc.

Referenced by main().

static void run_wdt_interrupt_test ( const struct test_case test)
static

Run test to check interrupt is getting triggered when WDT timout ouccured.

This test will pass if ISR is serviced which is caused by a watchdog timeout.

Parameters
testCurrent test case.

References cpu_irq_enable, delay_ms, FAIL, INTERRUPT_MODE, SUCCESS, test_assert_true, wdt_disable(), wdt_enable(), wdt_get_timeout_period(), wdt_int, wdt_interrupt_mode_enabled(), wdt_set_interrupt_callback(), wdt_set_timeout_period(), WDT_TIMEOUT_PERIOD_16KCLK, and wdt_timer_callback().

Referenced by main().

static void wdt_reset_mode_enable ( void  )
static

Configure WDT in reset mode.

Parameters
none.

References SYSTEM_RESET_MODE, wdt_disable(), wdt_enable(), wdt_rc, wdt_set_timeout_period(), and WDT_TIMEOUT_PERIOD_32KCLK.

Referenced by main().

static void wdt_timer_callback ( void  )
static

Interrupt callback for wdt timer overflow interrupt Change the state when the interrupt is triggered.

Parameters
none

References SUCCESS, and wdt_int.

Referenced by run_interrupt_reset_test(), and run_wdt_interrupt_test().

volatile bool wdt_int
static
volatile bool wdt_rc
static