131c75014Sopenharmony_ci/* 231c75014Sopenharmony_ci * Copyright (c) 2020-2021 Huawei Device Co., Ltd. 331c75014Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 431c75014Sopenharmony_ci * you may not use this file except in compliance with the License. 531c75014Sopenharmony_ci * You may obtain a copy of the License at 631c75014Sopenharmony_ci * 731c75014Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 831c75014Sopenharmony_ci * 931c75014Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1031c75014Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1131c75014Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1231c75014Sopenharmony_ci * See the License for the specific language governing permissions and 1331c75014Sopenharmony_ci * limitations under the License. 1431c75014Sopenharmony_ci */ 1531c75014Sopenharmony_ci 1631c75014Sopenharmony_ci#ifndef HCTEST_INTERNAL_H 1731c75014Sopenharmony_ci#define HCTEST_INTERNAL_H 1831c75014Sopenharmony_ci 1931c75014Sopenharmony_ci#include "common.h" 2031c75014Sopenharmony_ci 2131c75014Sopenharmony_ci#ifdef __cplusplus 2231c75014Sopenharmony_ci#if __cplusplus 2331c75014Sopenharmony_ciextern "C" { 2431c75014Sopenharmony_ci#endif 2531c75014Sopenharmony_ci#endif 2631c75014Sopenharmony_ci 2731c75014Sopenharmony_citypedef struct TestResult TestResult; 2831c75014Sopenharmony_cistruct TestResult { 2931c75014Sopenharmony_ci const int8 result; 3031c75014Sopenharmony_ci const char* messages; 3131c75014Sopenharmony_ci}; 3231c75014Sopenharmony_ci 3331c75014Sopenharmony_citypedef struct CTestCase CTestCase; 3431c75014Sopenharmony_cistruct CTestCase { 3531c75014Sopenharmony_ci /** 3631c75014Sopenharmony_ci * @brief test suite name 3731c75014Sopenharmony_ci * */ 3831c75014Sopenharmony_ci const char *suite_name; 3931c75014Sopenharmony_ci 4031c75014Sopenharmony_ci /** 4131c75014Sopenharmony_ci * @brief test case name 4231c75014Sopenharmony_ci * */ 4331c75014Sopenharmony_ci const char *case_name; 4431c75014Sopenharmony_ci 4531c75014Sopenharmony_ci /** 4631c75014Sopenharmony_ci * @brief test case flag 4731c75014Sopenharmony_ci * */ 4831c75014Sopenharmony_ci int32 flag; 4931c75014Sopenharmony_ci 5031c75014Sopenharmony_ci /** 5131c75014Sopenharmony_ci * @brief test case line number 5231c75014Sopenharmony_ci * */ 5331c75014Sopenharmony_ci int16 line_num; 5431c75014Sopenharmony_ci 5531c75014Sopenharmony_ci /** 5631c75014Sopenharmony_ci * @brief test case setup. 5731c75014Sopenharmony_ci * @param the test case addr. 5831c75014Sopenharmony_ci * @return TRUE success 5931c75014Sopenharmony_ci * */ 6031c75014Sopenharmony_ci BOOL (*lite_setup)(void); 6131c75014Sopenharmony_ci 6231c75014Sopenharmony_ci /** 6331c75014Sopenharmony_ci * @brief test case teardown. 6431c75014Sopenharmony_ci * @param the test case addr. 6531c75014Sopenharmony_ci * @return TRUE success 6631c75014Sopenharmony_ci * */ 6731c75014Sopenharmony_ci BOOL (*lite_teardown)(void); 6831c75014Sopenharmony_ci 6931c75014Sopenharmony_ci /** 7031c75014Sopenharmony_ci * @brief execute the test case. 7131c75014Sopenharmony_ci * @param the test case addr. 7231c75014Sopenharmony_ci * @return test results 7331c75014Sopenharmony_ci * */ 7431c75014Sopenharmony_ci void (*execute_func)(void); 7531c75014Sopenharmony_ci}; 7631c75014Sopenharmony_ci 7731c75014Sopenharmony_ci/** 7831c75014Sopenharmony_ci * test type 7931c75014Sopenharmony_ci */ 8031c75014Sopenharmony_cienum TestType { 8131c75014Sopenharmony_ci Function = 1 << 8, 8231c75014Sopenharmony_ci Performance = 2 << 8, 8331c75014Sopenharmony_ci Power = 3 << 8, 8431c75014Sopenharmony_ci Reliability = 4 << 8, 8531c75014Sopenharmony_ci Security = 5 << 8, 8631c75014Sopenharmony_ci Global = 6 << 8, 8731c75014Sopenharmony_ci Compatibility = 7 << 8, 8831c75014Sopenharmony_ci User = 8 << 8, 8931c75014Sopenharmony_ci Standard = 9 << 8, 9031c75014Sopenharmony_ci Safety = 10 << 8, 9131c75014Sopenharmony_ci Resilience = 11 << 8 9231c75014Sopenharmony_ci}; 9331c75014Sopenharmony_ci 9431c75014Sopenharmony_ci/** 9531c75014Sopenharmony_ci * test size 9631c75014Sopenharmony_ci */ 9731c75014Sopenharmony_cienum TestSize { 9831c75014Sopenharmony_ci SmallTest = 1 << 4, 9931c75014Sopenharmony_ci MediumTest = 2 << 4, 10031c75014Sopenharmony_ci LargeTest = 3 << 4 10131c75014Sopenharmony_ci}; 10231c75014Sopenharmony_ci 10331c75014Sopenharmony_ci/** 10431c75014Sopenharmony_ci * test case level 10531c75014Sopenharmony_ci */ 10631c75014Sopenharmony_cienum TestRank { 10731c75014Sopenharmony_ci Level0 = 1, 10831c75014Sopenharmony_ci Level1 = 2, 10931c75014Sopenharmony_ci Level2 = 3, 11031c75014Sopenharmony_ci Level3 = 4, 11131c75014Sopenharmony_ci Level4 = 5 11231c75014Sopenharmony_ci}; 11331c75014Sopenharmony_ci 11431c75014Sopenharmony_ci/** 11531c75014Sopenharmony_ci * test case level 11631c75014Sopenharmony_ci */ 11731c75014Sopenharmony_cienum TestLevel { 11831c75014Sopenharmony_ci LEVEL0 = 1, 11931c75014Sopenharmony_ci LEVEL1 = 2, 12031c75014Sopenharmony_ci LEVEL2 = 3, 12131c75014Sopenharmony_ci LEVEL3 = 4, 12231c75014Sopenharmony_ci LEVEL4 = 5 12331c75014Sopenharmony_ci}; 12431c75014Sopenharmony_ci 12531c75014Sopenharmony_citypedef struct CTestSuite CTestSuite; 12631c75014Sopenharmony_cistruct CTestSuite { 12731c75014Sopenharmony_ci const char* subsystem_name; 12831c75014Sopenharmony_ci const char* module_name; 12931c75014Sopenharmony_ci const char* suite_name; 13031c75014Sopenharmony_ci const char* file; 13131c75014Sopenharmony_ci int16 times; 13231c75014Sopenharmony_ci Vector test_cases; 13331c75014Sopenharmony_ci}; 13431c75014Sopenharmony_ci 13531c75014Sopenharmony_ci#define HCTEST_SERVICE "HCTEST" 13631c75014Sopenharmony_ci#define TEST_FLAG 0x02 13731c75014Sopenharmony_ci#define MSG_START_TEST 1 13831c75014Sopenharmony_ci#define MAXIMUM_TRY_TIMES 3 13931c75014Sopenharmony_ci#define TASK_QUEUE_SIZE 20 14031c75014Sopenharmony_ci 14131c75014Sopenharmony_ci#ifdef __cplusplus 14231c75014Sopenharmony_ci#if __cplusplus 14331c75014Sopenharmony_ci} 14431c75014Sopenharmony_ci#endif 14531c75014Sopenharmony_ci#endif 14631c75014Sopenharmony_ci 14731c75014Sopenharmony_ci#endif 14831c75014Sopenharmony_ci 149