#include "sr_sunrise.h"

//测试单元函数声明
extern void _GpioU1(void);
extern void _GpioU3(void);
extern void _GpioU2(void);




//测试用例,内部拆分成多个测试单元
static void _GpioTc(void)
{
	SR_LOG(INFO,"[UTEST] test1_tc entry\r\n");

	//运行单元1
	UTEST_UNIT_RUN(_GpioU1);
	//运行单元2
    UTEST_UNIT_RUN(_GpioU2);
	//运行单元3
	UTEST_UNIT_RUN(_GpioU3);

}

//测试用例初始化
static int _GpioTcInit(void)
{    
	//这里进行测试用例的前期初始化,如初始化依赖
	
    return SR_OK;
}


//测试用例清理
static int _GpioTcCleanup(void)
{    
	//这里进行测试用例的清理工作
	
    return SR_OK;
}
//通过宏定义导出，此时在命令行输入utest_run -n gpio_tc 即可执行gpio_tc
UTEST_TC_EXPORT(gpio_tc, _GpioTc, _GpioTcInit, _GpioTcCleanup, TC_PRIORITY_HIGH);







//测试单元1
void _GpioU1(void)
{
	//单元1的初始化
    uint32_t value = 0;
	
	//步骤1：判断value值为真，则算通过
	value = 1;
	tp_assert_true(value);  //测试点判断宏

	//步骤2:判断value值为假，则算通过
	value = 0;
    tp_assert_false(value); //测试点判断宏


	//单元1的清理
    value = 0;
}

//测试单元2
void _GpioU2(void)
{
	//单元2的初始化
    char *str1 = "it's a new pen";
    char *str2 = "it's a old pen";
    
    //步骤1：判断字符串相等，则算通过
    tp_assert_str_equal(str1, str2); //测试点判断宏

	//步骤2：...
	
	//步骤3：...


	//单元2的清理
}

//测试单元3
void _GpioU3(void)
{	
	//单元3的初始化
    uint32_t value=0;

	//步骤1：判断value在[3,6]之间，则算通过
	value =4;
	tp_assert_in_range(value, 3, 6);

	//步骤2：...
	
	//步骤3：...


	//单元3清理
	value =0;
}


