diff --git a/kernel_liteos_a-master/testsuites/unittest/process/basic/pthread/it_pthread_test.h b/kernel_liteos_a-master/testsuites/unittest/process/basic/pthread/it_pthread_test.h index afcef81..b58baea 100644 --- a/kernel_liteos_a-master/testsuites/unittest/process/basic/pthread/it_pthread_test.h +++ b/kernel_liteos_a-master/testsuites/unittest/process/basic/pthread/it_pthread_test.h @@ -28,65 +28,70 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef _IT_PTHREAD_TEST_H +#ifndef _IT_PTHREAD_TEST_H // 防止头文件被重复包含 #define _IT_PTHREAD_TEST_H - -#include "osTest.h" -#include -#include -#include - -#define SLEEP_AND_YIELD(tick) usleep((tick)*10 * 1000) - -#include "sys/syscall.h" - + +#include "osTest.h" // 包含操作系统测试相关的头文件 +#include // 包含资源控制相关的头文件 +#include // 包含等待进程结束相关的头文件 +#include // 包含时间处理的头文件 + +#define SLEEP_AND_YIELD(tick) usleep((tick)*10 * 1000) // 定义宏,用于睡眠和让出CPU,tick为微秒单位 + +#include "sys/syscall.h" // 包含系统调用相关的头文件 + +// 定义一个内联函数,用于执行系统调用 static inline int Syscall(int nbr, int parm1, int parm2, int parm3, int parm4) { - register int reg7 __asm__("r7") = nbr; - register int reg3 __asm__("r3") = parm4; - register int reg2 __asm__("r2") = parm3; - register int reg1 __asm__("r1") = parm2; - register int reg0 __asm__("r0") = parm1; - + register int reg7 __asm__("r7") = nbr; // 将系统调用号放入寄存器r7 + register int reg3 __asm__("r3") = parm4; // 将第四个参数放入寄存器r3 + register int reg2 __asm__("r2") = parm3; // 将第三个参数放入寄存器r2 + register int reg1 __asm__("r1") = parm2; // 将第二个参数放入寄存器r1 + register int reg0 __asm__("r0") = parm1; // 将第一个参数放入寄存器r0 + + // 使用svc指令触发系统调用,将结果存回reg0 __asm__ __volatile__("svc 0" : "=r"(reg0) : "r"(reg7), "r"(reg0), "r"(reg1), "r"(reg2), "r"(reg3) : "memory"); - - return reg0; + + return reg0; // 返回系统调用的结果 } + +// 声明全局变量,用于存储单元测试的错误码和错误行号 extern INT32 g_iCunitErrCode; extern INT32 g_iCunitErrLineNo; - -extern void ItTestPthread001(void); -extern void ItTestPthread002(void); -extern void ItTestPthread003(void); -extern void ItTestPthread004(void); -extern void ItTestPthread005(void); -extern void ItTestPthread006(void); -extern void ItTestPthread007(void); -extern void ItTestPthread008(void); -extern void ItTestPthread009(void); -extern void ItTestPthread010(void); -extern void ItTestPthread012(void); -extern void ItTestPthread011(void); -extern void ItTestPthread013(void); -extern void ItTestPthread014(void); -extern void ItTestPthread015(void); -extern void ItTestPthread016(void); -extern void ItTestPthread017(void); -extern void ItTestPthread018(void); -extern void ItTestPthread019(void); -extern void ItTestPthread020(void); -extern void ItTestPthread021(void); -extern void ItTestPthread022(void); -extern void ItTestPthread023(void); -extern void ItTestPthread024(void); -extern void ItTestPthread025(void); -extern void ItTestPthread026(void); -extern void ItTestPthread027(void); -extern void ItTestPthreadAtfork001(void); -extern void ItTestPthreadAtfork002(void); -extern void ItTestPthreadOnce001(void); -extern void ItTestPthreadCond001(void); -extern void ItTestPthreadCond002(void); -extern void ItTestPthreadCond003(void); -extern void ItTestPthreadCond004(void); -#endif + +// 声明一系列pthread相关的测试函数 +extern void ItTestPthread001(void); // pthread测试函数1 +extern void ItTestPthread002(void); // pthread测试函数2 +extern void ItTestPthread003(void); // pthread测试函数3 +extern void ItTestPthread004(void); // pthread测试函数4 +extern void ItTestPthread005(void); // pthread测试函数5 +extern void ItTestPthread006(void); // pthread测试函数6 +extern void ItTestPthread007(void); // pthread测试函数7 +extern void ItTestPthread008(void); // pthread测试函数8 +extern void ItTestPthread009(void); // pthread测试函数9 +extern void ItTestPthread010(void); // pthread测试函数10 +extern void ItTestPthread012(void); // 省略了11,可能是个错误或者遗漏 +extern void ItTestPthread011(void); // pthread测试函数11 +extern void ItTestPthread013(void); // pthread测试函数13 +extern void ItTestPthread014(void); // pthread测试函数14 +extern void ItTestPthread015(void); // pthread测试函数15 +extern void ItTestPthread016(void); // pthread测试函数16 +extern void ItTestPthread017(void); // pthread测试函数17 +extern void ItTestPthread018(void); // pthread测试函数18 +extern void ItTestPthread019(void); // pthread测试函数19 +extern void ItTestPthread020(void); // pthread测试函数20 +extern void ItTestPthread021(void); // pthread测试函数21 +extern void ItTestPthread022(void); // pthread测试函数22 +extern void ItTestPthread023(void); // pthread测试函数23 +extern void ItTestPthread024(void); // pthread测试函数24 +extern void ItTestPthread025(void); // pthread测试函数25 +extern void ItTestPthread026(void); // pthread测试函数26 +extern void ItTestPthread027(void); // pthread测试函数27 +extern void ItTestPthreadAtfork001(void); // pthread atfork测试函数1 +extern void ItTestPthreadAtfork002(void); // pthread atfork测试函数2 +extern void ItTestPthreadOnce001(void); // pthread once测试函数1 +extern void ItTestPthreadCond001(void); // pthread 条件变量测试函数1 +extern void ItTestPthreadCond002(void); // pthread 条件变量测试函数2 +extern void ItTestPthreadCond003(void); // pthread 条件变量测试函数3 +extern void ItTestPthreadCond004(void); // pthread 条件变量测试函数4 +#endif // 结束头文件保护 diff --git a/kernel_liteos_a-master/testsuites/unittest/process/basic/pthread/process_pthread_test.cpp b/kernel_liteos_a-master/testsuites/unittest/process/basic/pthread/process_pthread_test.cpp index 3c2187c..ba8352a 100644 --- a/kernel_liteos_a-master/testsuites/unittest/process/basic/pthread/process_pthread_test.cpp +++ b/kernel_liteos_a-master/testsuites/unittest/process/basic/pthread/process_pthread_test.cpp @@ -28,164 +28,165 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "stdio.h" -#include -#include -#include "it_pthread_test.h" -#include -using namespace testing::ext; -namespace OHOS { -class ProcessPthreadTest : public testing::Test { +#include "stdio.h" // 引入标准输入输出头文件 +#include // 引入字符类型限制头文件 +#include // 引入google测试框架头文件 +#include "it_pthread_test.h" // 引入自定义的pthread测试头文件 +#include // 引入系统资源头文件 + +using namespace testing::ext; // 使用google测试框架的扩展命名空间 +namespace OHOS { // 定义OHOS命名空间 +class ProcessPthreadTest : public testing::Test { // 定义一个继承自testing::Test的测试类 public: - static void SetUpTestCase(void) + static void SetUpTestCase(void) // 静态成员函数,用于在所有测试开始前执行 { - struct sched_param param = { 0 }; - int currThreadPolicy, ret; - ret = pthread_getschedparam(pthread_self(), &currThreadPolicy, ¶m); - ICUNIT_ASSERT_EQUAL_VOID(ret, 0, -ret); - param.sched_priority = TASK_PRIO_TEST; - ret = pthread_setschedparam(pthread_self(), SCHED_RR, ¶m); - ICUNIT_ASSERT_EQUAL_VOID(ret, 0, -ret); + struct sched_param param = { 0 }; // 定义一个sched_param结构体并初始化为0 + int currThreadPolicy, ret; // 定义当前线程策略和返回值变量 + ret = pthread_getschedparam(pthread_self(), &currThreadPolicy, ¶m); // 获取当前线程的调度参数 + ICUNIT_ASSERT_EQUAL_VOID(ret, 0, -ret); // 使用自定义宏断言返回值是否为0 + param.sched_priority = TASK_PRIO_TEST; // 设置调度优先级为TASK_PRIO_TEST(未在代码中定义) + ret = pthread_setschedparam(pthread_self(), SCHED_RR, ¶m); // 设置当前线程的调度策略和参数 + ICUNIT_ASSERT_EQUAL_VOID(ret, 0, -ret); // 使用自定义宏断言返回值是否为0 } - static void TearDownTestCase(void) {} + static void TearDownTestCase(void) {} // 静态成员函数,用于在所有测试结束后执行,此处为空实现 }; - -#if defined(LOSCFG_USER_TEST_SMOKE) + +#if defined(LOSCFG_USER_TEST_SMOKE) // 如果定义了LOSCFG_USER_TEST_SMOKE宏 /* * * @tc.name: it_test_pthread_003 * @tc.desc: function for ProcessPthreadTest * @tc.type: FUNC */ -HWTEST_F(ProcessPthreadTest, ItTestPthread003, TestSize.Level0) +HWTEST_F(ProcessPthreadTest, ItTestPthread003, TestSize.Level0) // 定义一个测试用例 { - ItTestPthread003(); + ItTestPthread003(); // 调用ItTestPthread003函数(未在代码中定义) } - -#ifndef LOSCFG_USER_TEST_SMP + +#ifndef LOSCFG_USER_TEST_SMP // 如果没有定义LOSCFG_USER_TEST_SMP宏 /* * * @tc.name: it_test_pthread_006 * @tc.desc: function for ProcessPthreadTest * @tc.type: FUNC */ -HWTEST_F(ProcessPthreadTest, ItTestPthread006, TestSize.Level0) +HWTEST_F(ProcessPthreadTest, ItTestPthread006, TestSize.Level0) // 定义一个测试用例 { - ItTestPthread006(); + ItTestPthread006(); // 调用ItTestPthread006函数(未在代码中定义) } #endif - + /* * * @tc.name: it_test_pthread_007 * @tc.desc: function for ProcessPthreadTest * @tc.type: FUNC */ -HWTEST_F(ProcessPthreadTest, ItTestPthread007, TestSize.Level0) +HWTEST_F(ProcessPthreadTest, ItTestPthread007, TestSize.Level0) // 定义一个测试用例 { - ItTestPthread007(); + ItTestPthread007(); // 调用ItTestPthread007函数(未在代码中定义) } - + /* * * @tc.name: it_test_pthread_008 * @tc.desc: function for ProcessPthreadTest * @tc.type: FUNC */ -HWTEST_F(ProcessPthreadTest, ItTestPthread008, TestSize.Level0) +HWTEST_F(ProcessPthreadTest, ItTestPthread008, TestSize.Level0) // 定义一个测试用例 { - ItTestPthread008(); + ItTestPthread008(); // 调用ItTestPthread008函数(未在代码中定义) } - + /* * * @tc.name: it_test_pthread_009 * @tc.desc: function for ProcessPthreadTest * @tc.type: FUNC */ -HWTEST_F(ProcessPthreadTest, ItTestPthread009, TestSize.Level0) +HWTEST_F(ProcessPthreadTest, ItTestPthread009, TestSize.Level0) // 定义一个测试用例 { - ItTestPthread009(); + ItTestPthread009(); // 调用ItTestPthread009函数(未在代码中定义) } - -#ifndef LOSCFG_USER_TEST_SMP + +#ifndef LOSCFG_USER_TEST_SMP // 如果没有定义LOSCFG_USER_TEST_SMP宏 /* * * @tc.name: it_test_pthread_010 * @tc.desc: function for ProcessPthreadTest * @tc.type: FUNC */ -HWTEST_F(ProcessPthreadTest, ItTestPthread010, TestSize.Level0) +HWTEST_F(ProcessPthreadTest, ItTestPthread010, TestSize.Level0) // 定义一个测试用例 { - ItTestPthread010(); + ItTestPthread010(); // 调用ItTestPthread010函数(未在代码中定义) } #endif - + /* * * @tc.name: it_test_pthread_011 * @tc.desc: function for ProcessPthreadTest * @tc.type: FUNC */ -HWTEST_F(ProcessPthreadTest, ItTestPthread011, TestSize.Level0) +HWTEST_F(ProcessPthreadTest, ItTestPthread011, TestSize.Level0) // 定义一个测试用例 { - ItTestPthread011(); + ItTestPthread011(); // 调用ItTestPthread011函数(未在代码中定义) } - + /* * * @tc.name: it_test_pthread_012 * @tc.desc: function for ProcessPthreadTest * @tc.type: FUNC */ -HWTEST_F(ProcessPthreadTest, ItTestPthread012, TestSize.Level0) +HWTEST_F(ProcessPthreadTest, ItTestPthread012, TestSize.Level0) // 定义一个测试用例 { - ItTestPthread012(); + ItTestPthread012(); // 调用ItTestPthread012函数(未在代码中定义) } - + /* * * @tc.name: it_test_pthread_013 * @tc.desc: function for ProcessPthreadTest * @tc.type: FUNC */ -HWTEST_F(ProcessPthreadTest, ItTestPthread013, TestSize.Level0) +HWTEST_F(ProcessPthreadTest, ItTestPthread013, TestSize.Level0) // 定义一个测试用例 { - ItTestPthread013(); + ItTestPthread013(); // 调用ItTestPthread013函数(未在代码中定义) } - + /* * * @tc.name: it_test_pthread_015 * @tc.desc: function for ProcessPthreadTest * @tc.type: FUNC */ -HWTEST_F(ProcessPthreadTest, ItTestPthread015, TestSize.Level0) +HWTEST_F(ProcessPthreadTest, ItTestPthread015, TestSize.Level0) // 定义一个测试用例 { - ItTestPthread015(); + ItTestPthread015(); // 调用ItTestPthread015函数(未在代码中定义) } - + /* * * @tc.name: it_test_pthread_016 * @tc.desc: function for ProcessPthreadTest * @tc.type: FUNC */ -HWTEST_F(ProcessPthreadTest, ItTestPthread016, TestSize.Level0) +HWTEST_F(ProcessPthreadTest, ItTestPthread016, TestSize.Level0) // 定义一个测试用例 { - ItTestPthread016(); + ItTestPthread016(); // 调用ItTestPthread016函数(未在代码中定义) } - + /* * * @tc.name: it_test_pthread_018 * @tc.desc: function for ProcessPthreadTest * @tc.type: FUNC */ -HWTEST_F(ProcessPthreadTest, ItTestPthread018, TestSize.Level0) +HWTEST_F(ProcessPthreadTest, ItTestPthread018, TestSize.Level0) // 定义一个测试用例 { - ItTestPthread018(); + ItTestPthread018(); // 调用ItTestPthread018函数(未在代码中定义) } - + /* * * @tc.name: it_test_pthread_019 * @tc.desc: function for ProcessPthreadTest * @tc.type: FUNC */ -HWTEST_F(ProcessPthreadTest, ItTestPthread019, TestSize.Level0) +HWTEST_F(ProcessPthreadTest, ItTestPthread019, TestSize.Level0) // 定义一个测试用例 { - ItTestPthread019(); + ItTestPthread019(); // 调用ItTestPthread019函数(未在代码中定义) } - + /* * * @tc.name: it_test_pthread_020 * @tc.desc: function for ProcessPthreadTest @@ -193,9 +194,9 @@ HWTEST_F(ProcessPthreadTest, ItTestPthread019, TestSize.Level0) * @tc.require: issueI6T3P3 * @tc.author: */ -HWTEST_F(ProcessPthreadTest, ItTestPthread020, TestSize.Level0) +HWTEST_F(ProcessPthreadTest, ItTestPthread020, TestSize.Level0) // 定义一个测试用例 { - ItTestPthread020(); + ItTestPthread020(); // 调用ItTestPthread020函数(未在代码中定义) } /* * diff --git a/kernel_liteos_a-master/testsuites/unittest/process/basic/pthread/smoke/pthread_atfork_test_001.cpp b/kernel_liteos_a-master/testsuites/unittest/process/basic/pthread/smoke/pthread_atfork_test_001.cpp index 9c3a3a3..f0b3979 100644 --- a/kernel_liteos_a-master/testsuites/unittest/process/basic/pthread/smoke/pthread_atfork_test_001.cpp +++ b/kernel_liteos_a-master/testsuites/unittest/process/basic/pthread/smoke/pthread_atfork_test_001.cpp @@ -28,7 +28,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "it_pthread_test.h" +#include "it_pthread_test.h" static volatile int g_count = 0; static pthread_mutex_t g_lock = PTHREAD_MUTEX_INITIALIZER;