2022-09-19 05:46:55 -04:00
/*
* SPDX - FileCopyrightText : 2022 Espressif Systems ( Shanghai ) CO LTD
*
2022-09-22 03:36:06 -04:00
* SPDX - License - Identifier : Apache - 2.0
2022-09-19 05:46:55 -04:00
*/
2019-04-11 21:31:23 -04:00
/*
Tests for a leak tag
*/
# include <stdio.h>
# include "unity.h"
# include "esp_heap_caps_init.h"
# include "esp_system.h"
# include <stdlib.h>
static char * check_calloc ( int size )
{
char * arr = calloc ( size , sizeof ( char ) ) ;
TEST_ASSERT_NOT_NULL ( arr ) ;
return arr ;
}
2022-09-22 03:36:06 -04:00
TEST_CASE ( " Check for leaks (no leak) " , " [test_utils] " )
2019-04-11 21:31:23 -04:00
{
2019-11-10 22:34:37 -05:00
char * arr = check_calloc ( 1000 ) ;
2019-04-11 21:31:23 -04:00
free ( arr ) ;
}
2022-09-22 03:36:06 -04:00
TEST_CASE ( " Check for leaks (leak) " , " [test_utils][ignore] " )
2019-04-11 21:31:23 -04:00
{
2019-11-10 22:34:37 -05:00
check_calloc ( 1000 ) ;
2019-04-11 21:31:23 -04:00
}
2022-09-22 03:36:06 -04:00
TEST_CASE ( " Not check for leaks " , " [test_utils][leaks] " )
2019-04-11 21:31:23 -04:00
{
2019-11-10 22:34:37 -05:00
check_calloc ( 1000 ) ;
2019-04-11 21:31:23 -04:00
}
2022-09-22 03:36:06 -04:00
TEST_CASE ( " Set a leak level = 7016 " , " [test_utils][leaks=7016] " )
2019-04-11 21:31:23 -04:00
{
check_calloc ( 7000 ) ;
}
static void test_fn ( void )
{
2019-11-10 22:34:37 -05:00
check_calloc ( 1000 ) ;
2019-04-11 21:31:23 -04:00
}
2022-09-22 03:36:06 -04:00
TEST_CASE_MULTIPLE_STAGES ( " Not check for leaks in MULTIPLE_STAGES mode " , " [test_utils][leaks] " , test_fn , test_fn , test_fn ) ;
2019-04-11 21:31:23 -04:00
2022-09-22 03:36:06 -04:00
TEST_CASE_MULTIPLE_STAGES ( " Check for leaks in MULTIPLE_STAGES mode (leak) " , " [test_utils][ignore] " , test_fn , test_fn , test_fn ) ;
2019-04-11 21:31:23 -04:00
static void test_fn2 ( void )
{
2019-11-10 22:34:37 -05:00
check_calloc ( 1000 ) ;
2019-04-11 21:31:23 -04:00
esp_restart ( ) ;
}
static void test_fn3 ( void )
{
2019-11-10 22:34:37 -05:00
check_calloc ( 1000 ) ;
2019-04-11 21:31:23 -04:00
}
2022-09-22 03:36:06 -04:00
TEST_CASE_MULTIPLE_STAGES ( " Check for leaks in MULTIPLE_STAGES mode (manual reset) " , " [test_utils][leaks][reset=SW_CPU_RESET, SW_CPU_RESET] " , test_fn2 , test_fn2 , test_fn3 ) ;