13d8536b4Sopenharmony_ci/* 23d8536b4Sopenharmony_ci * Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved. 33d8536b4Sopenharmony_ci * Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved. 43d8536b4Sopenharmony_ci * 53d8536b4Sopenharmony_ci * Redistribution and use in source and binary forms, with or without modification, 63d8536b4Sopenharmony_ci * are permitted provided that the following conditions are met: 73d8536b4Sopenharmony_ci * 83d8536b4Sopenharmony_ci * 1. Redistributions of source code must retain the above copyright notice, this list of 93d8536b4Sopenharmony_ci * conditions and the following disclaimer. 103d8536b4Sopenharmony_ci * 113d8536b4Sopenharmony_ci * 2. Redistributions in binary form must reproduce the above copyright notice, this list 123d8536b4Sopenharmony_ci * of conditions and the following disclaimer in the documentation and/or other materials 133d8536b4Sopenharmony_ci * provided with the distribution. 143d8536b4Sopenharmony_ci * 153d8536b4Sopenharmony_ci * 3. Neither the name of the copyright holder nor the names of its contributors may be used 163d8536b4Sopenharmony_ci * to endorse or promote products derived from this software without specific prior written 173d8536b4Sopenharmony_ci * permission. 183d8536b4Sopenharmony_ci * 193d8536b4Sopenharmony_ci * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 203d8536b4Sopenharmony_ci * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 213d8536b4Sopenharmony_ci * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 223d8536b4Sopenharmony_ci * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 233d8536b4Sopenharmony_ci * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 243d8536b4Sopenharmony_ci * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 253d8536b4Sopenharmony_ci * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 263d8536b4Sopenharmony_ci * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 273d8536b4Sopenharmony_ci * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 283d8536b4Sopenharmony_ci * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 293d8536b4Sopenharmony_ci * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 303d8536b4Sopenharmony_ci */ 313d8536b4Sopenharmony_ci 323d8536b4Sopenharmony_ci 333d8536b4Sopenharmony_ci#ifndef _LOS_ICUNIT_H 343d8536b4Sopenharmony_ci#define _LOS_ICUNIT_H 353d8536b4Sopenharmony_ci#include "osTest.h" 363d8536b4Sopenharmony_ci 373d8536b4Sopenharmony_ci#ifdef TST_DRVPRINT 383d8536b4Sopenharmony_ci#include "VOS_typdef.h" 393d8536b4Sopenharmony_ci#include "uartdriver.h" 403d8536b4Sopenharmony_ci#endif 413d8536b4Sopenharmony_ci 423d8536b4Sopenharmony_ci#ifdef __cplusplus 433d8536b4Sopenharmony_ci#if __cplusplus 443d8536b4Sopenharmony_ciextern "C" { 453d8536b4Sopenharmony_ci#endif /* __cplusplus */ 463d8536b4Sopenharmony_ci#endif /* __cplusplus */ 473d8536b4Sopenharmony_ci 483d8536b4Sopenharmony_citypedef unsigned short iUINT16; 493d8536b4Sopenharmony_citypedef unsigned int iUINT32; 503d8536b4Sopenharmony_citypedef signed short iINT16; 513d8536b4Sopenharmony_citypedef signed long iINT32; 523d8536b4Sopenharmony_citypedef char iCHAR; 533d8536b4Sopenharmony_citypedef void iVOID; 543d8536b4Sopenharmony_ci 553d8536b4Sopenharmony_citypedef unsigned long iiUINT32; 563d8536b4Sopenharmony_ci 573d8536b4Sopenharmony_ci 583d8536b4Sopenharmony_ci#ifndef FALSE 593d8536b4Sopenharmony_ci#define FALSE 0 603d8536b4Sopenharmony_ci#endif 613d8536b4Sopenharmony_ci#ifndef TRUE 623d8536b4Sopenharmony_ci#define TRUE 1 633d8536b4Sopenharmony_ci#endif 643d8536b4Sopenharmony_ci 653d8536b4Sopenharmony_ci#define FUNCTION_TEST (1 << 0) 663d8536b4Sopenharmony_ci 673d8536b4Sopenharmony_ci#define PRESSURE_TEST (1 << 1) 683d8536b4Sopenharmony_ci 693d8536b4Sopenharmony_ci#define PERFORMANCE_TEST (1 << 2) 703d8536b4Sopenharmony_ci 713d8536b4Sopenharmony_ci#define TEST_MODE (FUNCTION_TEST) 723d8536b4Sopenharmony_ci 733d8536b4Sopenharmony_citypedef iUINT32 (*CASE_FUNCTION)(void); 743d8536b4Sopenharmony_ci 753d8536b4Sopenharmony_citypedef struct { 763d8536b4Sopenharmony_ci iCHAR *pcCaseID; 773d8536b4Sopenharmony_ci CASE_FUNCTION pstCaseFunc; 783d8536b4Sopenharmony_ci iUINT16 testcase_layer; 793d8536b4Sopenharmony_ci iUINT16 testcase_module; 803d8536b4Sopenharmony_ci iUINT16 testcase_level; 813d8536b4Sopenharmony_ci iUINT16 testcase_type; 823d8536b4Sopenharmony_ci iiUINT32 retCode; 833d8536b4Sopenharmony_ci iUINT16 errLine; 843d8536b4Sopenharmony_ci} ICUNIT_CASE_S; 853d8536b4Sopenharmony_ci 863d8536b4Sopenharmony_citypedef struct { 873d8536b4Sopenharmony_ci iUINT16 uwCaseCnt; 883d8536b4Sopenharmony_ci iCHAR *pcSuitID; 893d8536b4Sopenharmony_ci iCHAR *pucFilename; 903d8536b4Sopenharmony_ci ICUNIT_CASE_S *pstCaseList; 913d8536b4Sopenharmony_ci iUINT16 passCnt; 923d8536b4Sopenharmony_ci iUINT16 failCnt; 933d8536b4Sopenharmony_ci} ICUNIT_SUIT_S; 943d8536b4Sopenharmony_ci 953d8536b4Sopenharmony_citypedef enum { 963d8536b4Sopenharmony_ci TEST_TASK = 0, 973d8536b4Sopenharmony_ci TEST_MEM, 983d8536b4Sopenharmony_ci TEST_SEM, 993d8536b4Sopenharmony_ci TEST_MUX, 1003d8536b4Sopenharmony_ci TEST_EVENT, 1013d8536b4Sopenharmony_ci TEST_QUE, 1023d8536b4Sopenharmony_ci TEST_SWTMR, 1033d8536b4Sopenharmony_ci TEST_HWI, 1043d8536b4Sopenharmony_ci TEST_ATO, 1053d8536b4Sopenharmony_ci TEST_CPUP, 1063d8536b4Sopenharmony_ci TEST_SCATTER, 1073d8536b4Sopenharmony_ci TEST_RUNSTOP, 1083d8536b4Sopenharmony_ci TEST_TIMER, 1093d8536b4Sopenharmony_ci TEST_MMU, 1103d8536b4Sopenharmony_ci TEST_TICKLESS, 1113d8536b4Sopenharmony_ci TEST_ROBIN, 1123d8536b4Sopenharmony_ci TEST_LIBC, 1133d8536b4Sopenharmony_ci TEST_WAIT, 1143d8536b4Sopenharmony_ci TEST_VFAT, 1153d8536b4Sopenharmony_ci TEST_YAFFS, 1163d8536b4Sopenharmony_ci TEST_JFFS, 1173d8536b4Sopenharmony_ci TEST_RAMFS, 1183d8536b4Sopenharmony_ci TEST_NFS, 1193d8536b4Sopenharmony_ci TEST_PROC, 1203d8536b4Sopenharmony_ci TEST_FS, 1213d8536b4Sopenharmony_ci TEST_PTHREAD, 1223d8536b4Sopenharmony_ci TEST_COMP, 1233d8536b4Sopenharmony_ci TEST_HWI_HALFBOTTOM, 1243d8536b4Sopenharmony_ci TEST_WORKQ, 1253d8536b4Sopenharmony_ci TEST_WAKELOCK, 1263d8536b4Sopenharmony_ci TEST_TIMES, 1273d8536b4Sopenharmony_ci TEST_LIBM, 1283d8536b4Sopenharmony_ci TEST_SUPPORT, 1293d8536b4Sopenharmony_ci TEST_STL, 1303d8536b4Sopenharmony_ci TEST_MAIL, 1313d8536b4Sopenharmony_ci TEST_MSG, 1323d8536b4Sopenharmony_ci TEST_CP, 1333d8536b4Sopenharmony_ci TEST_SIGNAL, 1343d8536b4Sopenharmony_ci TEST_SCHED, 1353d8536b4Sopenharmony_ci TEST_MTDCHAR, 1363d8536b4Sopenharmony_ci TEST_TIME, 1373d8536b4Sopenharmony_ci TEST_WRITE, 1383d8536b4Sopenharmony_ci TEST_READ, 1393d8536b4Sopenharmony_ci TEST_DYNLOAD, 1403d8536b4Sopenharmony_ci TEST_REGISTER, 1413d8536b4Sopenharmony_ci TEST_SR, 1423d8536b4Sopenharmony_ci TEST_UNAME, 1433d8536b4Sopenharmony_ci TEST_MISC, 1443d8536b4Sopenharmony_ci TEST_EXC, 1453d8536b4Sopenharmony_ci#if defined(LOSCFG_3RDPARTY_TEST) 1463d8536b4Sopenharmony_ci TEST_THTTPD, 1473d8536b4Sopenharmony_ci TEST_BIDIREFC, 1483d8536b4Sopenharmony_ci TEST_CJSON, 1493d8536b4Sopenharmony_ci TEST_CURL, 1503d8536b4Sopenharmony_ci TEST_FFMPEG, 1513d8536b4Sopenharmony_ci TEST_FREETYPE, 1523d8536b4Sopenharmony_ci TEST_INIPARSER, 1533d8536b4Sopenharmony_ci TEST_JSONCPP, 1543d8536b4Sopenharmony_ci TEST_LIBICONV, 1553d8536b4Sopenharmony_ci TEST_LIBJPEG, 1563d8536b4Sopenharmony_ci TEST_LIBPNG, 1573d8536b4Sopenharmony_ci TEST_OPENEXIF, 1583d8536b4Sopenharmony_ci TEST_OPENSSL, 1593d8536b4Sopenharmony_ci TEST_OPUS, 1603d8536b4Sopenharmony_ci TEST_SQLITE, 1613d8536b4Sopenharmony_ci TEST_TINYXML, 1623d8536b4Sopenharmony_ci#endif 1633d8536b4Sopenharmony_ci TEST_DRIVERBASE, 1643d8536b4Sopenharmony_ci TEST_DYNLINK, 1653d8536b4Sopenharmony_ci TEST_LMS, 1663d8536b4Sopenharmony_ci} LiteOS_test_module; 1673d8536b4Sopenharmony_ci 1683d8536b4Sopenharmony_citypedef enum { 1693d8536b4Sopenharmony_ci TEST_LOS = 0, 1703d8536b4Sopenharmony_ci TEST_CMSIS, 1713d8536b4Sopenharmony_ci TEST_POSIX, 1723d8536b4Sopenharmony_ci TEST_LIB, 1733d8536b4Sopenharmony_ci TEST_VFS, 1743d8536b4Sopenharmony_ci TEST_EXTEND, 1753d8536b4Sopenharmony_ci TEST_PARTITION, 1763d8536b4Sopenharmony_ci TEST_CPP, 1773d8536b4Sopenharmony_ci TEST_SHELL, 1783d8536b4Sopenharmony_ci TEST_LINUX, 1793d8536b4Sopenharmony_ci TEST_USB, 1803d8536b4Sopenharmony_ci#if defined(LOSCFG_3RDPARTY_TEST) 1813d8536b4Sopenharmony_ci TEST_3RDPARTY, 1823d8536b4Sopenharmony_ci#endif 1833d8536b4Sopenharmony_ci TEST_DRIVERFRAME, 1843d8536b4Sopenharmony_ci TEST_CONTEXHUB 1853d8536b4Sopenharmony_ci} LiteOS_test_layer; 1863d8536b4Sopenharmony_ci 1873d8536b4Sopenharmony_citypedef enum { 1883d8536b4Sopenharmony_ci TEST_LEVEL0 = 0, 1893d8536b4Sopenharmony_ci TEST_LEVEL1, 1903d8536b4Sopenharmony_ci TEST_LEVEL2, 1913d8536b4Sopenharmony_ci TEST_LEVEL3 1923d8536b4Sopenharmony_ci} LiteOS_test_level; 1933d8536b4Sopenharmony_ci 1943d8536b4Sopenharmony_citypedef enum { 1953d8536b4Sopenharmony_ci TEST_FUNCTION = 0, 1963d8536b4Sopenharmony_ci TEST_PRESSURE, 1973d8536b4Sopenharmony_ci TEST_PERFORMANCE 1983d8536b4Sopenharmony_ci} LiteOS_test_type; 1993d8536b4Sopenharmony_ci 2003d8536b4Sopenharmony_ci 2013d8536b4Sopenharmony_ciextern iUINT16 iCunit_errLineNo; 2023d8536b4Sopenharmony_ciextern iiUINT32 iCunit_errCode; 2033d8536b4Sopenharmony_ciextern void ICunitSaveErr(iiUINT32 line, iiUINT32 retCode); 2043d8536b4Sopenharmony_ci 2053d8536b4Sopenharmony_ci 2063d8536b4Sopenharmony_ci#define ICUNIT_UNINIT 0x0EF00000 2073d8536b4Sopenharmony_ci#define ICUNIT_OPENFILE_FAILED 0x0EF00001 2083d8536b4Sopenharmony_ci#define ICUNIT_ALLOC_FAIL 0x0EF00002 2093d8536b4Sopenharmony_ci#define ICUNIT_SUIT_FULL 0x0EF00002 2103d8536b4Sopenharmony_ci#define ICUNIT_CASE_FULL 0x0EF00003 2113d8536b4Sopenharmony_ci#define ICUNIT_SUIT_ALL 0x0EF0FFFF 2123d8536b4Sopenharmony_ci 2133d8536b4Sopenharmony_ci#define ICUNIT_SUCCESS 0x00000000 2143d8536b4Sopenharmony_ci 2153d8536b4Sopenharmony_ci#define ICUNIT_TRACK_EQUAL(param, value, retcode) \ 2163d8536b4Sopenharmony_ci do { \ 2173d8536b4Sopenharmony_ci if ((param) != (value)) { \ 2183d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 2193d8536b4Sopenharmony_ci } \ 2203d8536b4Sopenharmony_ci } while (0) 2213d8536b4Sopenharmony_ci 2223d8536b4Sopenharmony_ci#define ICUNIT_TRACK_NOT_EQUAL(param, value, retcode) \ 2233d8536b4Sopenharmony_ci do { \ 2243d8536b4Sopenharmony_ci if ((param) == (value)) { \ 2253d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 2263d8536b4Sopenharmony_ci } \ 2273d8536b4Sopenharmony_ci } while (0) 2283d8536b4Sopenharmony_ci 2293d8536b4Sopenharmony_ci#define ICUNIT_ASSERT_EQUAL_VOID(param, value, retcode) \ 2303d8536b4Sopenharmony_ci do { \ 2313d8536b4Sopenharmony_ci if ((param) != (value)) { \ 2323d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 2333d8536b4Sopenharmony_ci return; \ 2343d8536b4Sopenharmony_ci } \ 2353d8536b4Sopenharmony_ci } while (0) 2363d8536b4Sopenharmony_ci 2373d8536b4Sopenharmony_ci#define ICUNIT_ASSERT_NOT_EQUAL_VOID(param, value, retcode) \ 2383d8536b4Sopenharmony_ci do { \ 2393d8536b4Sopenharmony_ci if ((param) == (value)) { \ 2403d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 2413d8536b4Sopenharmony_ci return; \ 2423d8536b4Sopenharmony_ci } \ 2433d8536b4Sopenharmony_ci } while (0) 2443d8536b4Sopenharmony_ci#define ICUNIT_ASSERT_EQUAL(param, value, retcode) \ 2453d8536b4Sopenharmony_ci do { \ 2463d8536b4Sopenharmony_ci if ((param) != (value)) { \ 2473d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 2483d8536b4Sopenharmony_ci return 1; \ 2493d8536b4Sopenharmony_ci } \ 2503d8536b4Sopenharmony_ci } while (0) 2513d8536b4Sopenharmony_ci 2523d8536b4Sopenharmony_ci#define ICUNIT_ASSERT_NOT_EQUAL(param, value, retcode) \ 2533d8536b4Sopenharmony_ci do { \ 2543d8536b4Sopenharmony_ci if ((param) == (value)) { \ 2553d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 2563d8536b4Sopenharmony_ci return 1; \ 2573d8536b4Sopenharmony_ci } \ 2583d8536b4Sopenharmony_ci } while (0) 2593d8536b4Sopenharmony_ci 2603d8536b4Sopenharmony_ci#define ICUNIT_ASSERT_WITHIN_EQUAL(param, value1, value2, retcode) \ 2613d8536b4Sopenharmony_ci do { \ 2623d8536b4Sopenharmony_ci if ((param) < (value1) || (param) > (value2)) { \ 2633d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 2643d8536b4Sopenharmony_ci return 1; \ 2653d8536b4Sopenharmony_ci } \ 2663d8536b4Sopenharmony_ci } while (0) 2673d8536b4Sopenharmony_ci 2683d8536b4Sopenharmony_ci#define ICUNIT_ASSERT_WITHIN_EQUAL_VOID(param, value1, value2, retcode) \ 2693d8536b4Sopenharmony_ci do { \ 2703d8536b4Sopenharmony_ci if ((param) < (value1) || (param) > (value2)) { \ 2713d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 2723d8536b4Sopenharmony_ci return; \ 2733d8536b4Sopenharmony_ci } \ 2743d8536b4Sopenharmony_ci } while (0) 2753d8536b4Sopenharmony_ci 2763d8536b4Sopenharmony_ci#define ICUNIT_ASSERT_EQUAL_VOID(param, value, retcode) \ 2773d8536b4Sopenharmony_ci do { \ 2783d8536b4Sopenharmony_ci if ((param) != (value)) { \ 2793d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 2803d8536b4Sopenharmony_ci return; \ 2813d8536b4Sopenharmony_ci } \ 2823d8536b4Sopenharmony_ci } while (0) 2833d8536b4Sopenharmony_ci 2843d8536b4Sopenharmony_ci#define ICUNIT_ASSERT_SIZE_STRING_EQUAL(str1, str2, strsize, retcode) \ 2853d8536b4Sopenharmony_ci do { \ 2863d8536b4Sopenharmony_ci if (strncmp((str1), (str2), (strsize)) != 0) { \ 2873d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 2883d8536b4Sopenharmony_ci return 1; \ 2893d8536b4Sopenharmony_ci } \ 2903d8536b4Sopenharmony_ci } while (0) 2913d8536b4Sopenharmony_ci 2923d8536b4Sopenharmony_ci#define ICUNIT_ASSERT_STRING_EQUAL(str1, str2, retcode) \ 2933d8536b4Sopenharmony_ci do { \ 2943d8536b4Sopenharmony_ci if (strcmp(str1, str2) != 0) { \ 2953d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 2963d8536b4Sopenharmony_ci return 1; \ 2973d8536b4Sopenharmony_ci } \ 2983d8536b4Sopenharmony_ci } while (0) 2993d8536b4Sopenharmony_ci 3003d8536b4Sopenharmony_ci#define ICUNIT_ASSERT_STRING_EQUAL_VOID(str1, str2, retcode) \ 3013d8536b4Sopenharmony_ci do { \ 3023d8536b4Sopenharmony_ci if (strcmp((const char *)str1, (const char *)str2) != 0) { \ 3033d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 3043d8536b4Sopenharmony_ci return; \ 3053d8536b4Sopenharmony_ci } \ 3063d8536b4Sopenharmony_ci } while (0) 3073d8536b4Sopenharmony_ci 3083d8536b4Sopenharmony_ci#define ICUNIT_ASSERT_STRING_NOT_EQUAL(str1, str2, retcode) \ 3093d8536b4Sopenharmony_ci do { \ 3103d8536b4Sopenharmony_ci if (strcmp(str1, str2) == 0) { \ 3113d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 3123d8536b4Sopenharmony_ci return 1; \ 3133d8536b4Sopenharmony_ci } \ 3143d8536b4Sopenharmony_ci } while (0) 3153d8536b4Sopenharmony_ci 3163d8536b4Sopenharmony_ci#define ICUNIT_GOTO_EQUAL(param, value, retcode, label) \ 3173d8536b4Sopenharmony_ci do { \ 3183d8536b4Sopenharmony_ci if ((param) != (value)) { \ 3193d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 3203d8536b4Sopenharmony_ci goto label; \ 3213d8536b4Sopenharmony_ci } \ 3223d8536b4Sopenharmony_ci } while (0) 3233d8536b4Sopenharmony_ci 3243d8536b4Sopenharmony_ci#define ICUNIT_GOTO_NOT_EQUAL(param, value, retcode, label) \ 3253d8536b4Sopenharmony_ci do { \ 3263d8536b4Sopenharmony_ci if ((param) == (value)) { \ 3273d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 3283d8536b4Sopenharmony_ci goto label; \ 3293d8536b4Sopenharmony_ci } \ 3303d8536b4Sopenharmony_ci } while (0) 3313d8536b4Sopenharmony_ci 3323d8536b4Sopenharmony_ci#define ICUNIT_GOTO_STRING_EQUAL(str1, str2, retcode, label) \ 3333d8536b4Sopenharmony_ci do { \ 3343d8536b4Sopenharmony_ci if (strcmp(str1, str2) != 0) { \ 3353d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 3363d8536b4Sopenharmony_ci goto label; \ 3373d8536b4Sopenharmony_ci } \ 3383d8536b4Sopenharmony_ci } while (0) 3393d8536b4Sopenharmony_ci 3403d8536b4Sopenharmony_ci#define ICUNIT_GOTO_STRING_NOT_EQUAL(str1, str2, retcode, label) \ 3413d8536b4Sopenharmony_ci do { \ 3423d8536b4Sopenharmony_ci if (strcmp(str1, str2) == 0) { \ 3433d8536b4Sopenharmony_ci ICunitSaveErr(__LINE__, (iiUINT32)retcode); \ 3443d8536b4Sopenharmony_ci goto label; \ 3453d8536b4Sopenharmony_ci } \ 3463d8536b4Sopenharmony_ci } while (0) 3473d8536b4Sopenharmony_ci 3483d8536b4Sopenharmony_ciextern iUINT32 iCunitAddSuit_F(iCHAR *suitName, iCHAR *pfileName); 3493d8536b4Sopenharmony_ci#define iCunitAddSuit(suitName) iCunitAddSuit_F(suitName, __FILE__) 3503d8536b4Sopenharmony_ci 3513d8536b4Sopenharmony_ciextern iUINT32 ICunitAddCase(iCHAR *caseName, CASE_FUNCTION caseFunc, iUINT16 testcaseLayer, iUINT16 testcaseModule, 3523d8536b4Sopenharmony_ci iUINT16 testcaseLevel, iUINT16 testcaseType); 3533d8536b4Sopenharmony_ci 3543d8536b4Sopenharmony_ciextern iUINT32 ICunitRun(void); 3553d8536b4Sopenharmony_ciextern iUINT32 ICunitInit(void); 3563d8536b4Sopenharmony_ciextern iUINT32 iCunitPrintReport(void); 3573d8536b4Sopenharmony_ci 3583d8536b4Sopenharmony_ci 3593d8536b4Sopenharmony_ci#define TEST_ADD_CASE(name, casefunc, testcase_layer, testcase_module, testcase_level, testcase_type) \ 3603d8536b4Sopenharmony_ci do { \ 3613d8536b4Sopenharmony_ci iUINT32 uwRet = 1; \ 3623d8536b4Sopenharmony_ci uwRet = ICunitAddCase(name, (CASE_FUNCTION)casefunc, testcase_layer, testcase_module, testcase_level, \ 3633d8536b4Sopenharmony_ci testcase_type); \ 3643d8536b4Sopenharmony_ci ICUNIT_ASSERT_EQUAL_VOID(uwRet, ICUNIT_SUCCESS, uwRet); \ 3653d8536b4Sopenharmony_ci } while (0) 3663d8536b4Sopenharmony_ci 3673d8536b4Sopenharmony_ci#define TEST_RUN_SUITE() \ 3683d8536b4Sopenharmony_ci do { \ 3693d8536b4Sopenharmony_ci UINT32 uiRet; \ 3703d8536b4Sopenharmony_ci uiRet = ICunitRun(); \ 3713d8536b4Sopenharmony_ci ICUNIT_ASSERT_NOT_EQUAL_VOID(uiRet, ICUNIT_UNINIT, ICUNIT_UNINIT); \ 3723d8536b4Sopenharmony_ci } while (0) 3733d8536b4Sopenharmony_ci 3743d8536b4Sopenharmony_ci#ifdef __cplusplus 3753d8536b4Sopenharmony_ci#if __cplusplus 3763d8536b4Sopenharmony_ci} 3773d8536b4Sopenharmony_ci#endif /* __cplusplus */ 3783d8536b4Sopenharmony_ci#endif /* __cplusplus */ 3793d8536b4Sopenharmony_ci 3803d8536b4Sopenharmony_ci#endif /* _UNI_ICUNIT_H */ 381