From 7488acc3b1dd8d93c7c562d5510c17f0e6b33c47 Mon Sep 17 00:00:00 2001 From: Shengliang Guan Date: Tue, 17 Dec 2024 18:41:30 +0800 Subject: [PATCH] ut: minor changes --- source/os/src/osThread.c | 1 + source/os/test/osThreadTests.cpp | 57 +++++++++++++++++++++++--------- 2 files changed, 43 insertions(+), 15 deletions(-) diff --git a/source/os/src/osThread.c b/source/os/src/osThread.c index abb88d2c6b..603f5da3f7 100644 --- a/source/os/src/osThread.c +++ b/source/os/src/osThread.c @@ -702,6 +702,7 @@ int32_t taosThreadRwlockAttrDestroy(TdThreadRwlockAttr *attr) { } int32_t taosThreadRwlockAttrGetPshared(const TdThreadRwlockAttr *attr, int32_t *pshared) { + OS_PARAM_CHECK(attr); OS_PARAM_CHECK(pshared); #ifdef __USE_WIN_THREAD if (pshared) *pshared = PTHREAD_PROCESS_PRIVATE; diff --git a/source/os/test/osThreadTests.cpp b/source/os/test/osThreadTests.cpp index 5650f694fd..4badfcdb4d 100644 --- a/source/os/test/osThreadTests.cpp +++ b/source/os/test/osThreadTests.cpp @@ -56,13 +56,31 @@ static void *funcPtr200(void *param) { taosThreadGetSchedParam(thread, &policy, ¶); taosThreadGetSchedParam(thread, NULL, ¶); taosThreadGetSchedParam(thread, &policy, NULL); - taosThreadSetSchedParam(NULL, 0, ¶); + // taosThreadSetSchedParam(NULL, 0, ¶); taosThreadSetSchedParam(thread, 0, ¶); return NULL; } -static void *funcPtr500(void *param) { +static void *funcPtr501(void *param) { + taosMsleep(500); + TdThread thread = taosThreadSelf(); + return NULL; +} + +static void *funcPtr502(void *param) { + taosMsleep(500); + TdThread thread = taosThreadSelf(); + return NULL; +} + +static void *funcPtr503(void *param) { + taosMsleep(500); + TdThread thread = taosThreadSelf(); + return NULL; +} + +static void *funcPtr504(void *param) { taosMsleep(500); TdThread thread = taosThreadSelf(); return NULL; @@ -92,14 +110,14 @@ TEST(osThreadTests, thread) { reti = taosThreadCancel(tid1); EXPECT_EQ(reti, 0); - reti = taosThreadCreate(&tid2, NULL, funcPtr500, NULL); + reti = taosThreadCreate(&tid2, NULL, funcPtr501, NULL); EXPECT_EQ(reti, 0); taosMsleep(1000); reti = taosThreadCancel(tid2); EXPECT_EQ(reti, 0); taosThreadDetach(tid1); - reti = taosThreadCreate(&tid2, NULL, funcPtr500, NULL); + reti = taosThreadCreate(&tid2, NULL, funcPtr502, NULL); EXPECT_EQ(reti, 0); reti = taosThreadDetach(tid2); @@ -111,16 +129,18 @@ TEST(osThreadTests, thread) { reti = taosThreadCreate(&tid2, NULL, funcPtrExit2, NULL); EXPECT_EQ(reti, 0); - reti = taosThreadCreate(&tid2, NULL, funcPtr500, NULL); - EXPECT_EQ(reti, 0); - taosThreadKill(tid2, SIGINT); + taosMsleep(1000); + + // reti = taosThreadCreate(&tid2, NULL, funcPtr503, NULL); + // EXPECT_EQ(reti, 0); + // taosThreadKill(tid2, SIGINT); int32_t policy; struct sched_param para; taosThreadGetSchedParam(tid2, &policy, ¶); taosThreadGetSchedParam(tid2, NULL, ¶); taosThreadGetSchedParam(tid2, &policy, NULL); - taosThreadSetSchedParam(NULL, 0, ¶); + // taosThreadSetSchedParam(NULL, 0, ¶); taosThreadSetSchedParam(tid2, 0, ¶); TdThreadKey key = {0}; @@ -249,7 +269,7 @@ TEST(osThreadTests, cond) { reti = taosThreadCondTimedWait(NULL, &mutex, &abstime); EXPECT_NE(reti, 0); reti = taosThreadCondTimedWait(&cond, &mutex, NULL); - EXPECT_NE(reti, 0); + EXPECT_EQ(reti, 0); TdThreadCondAttr condattr = {0}; (void)taosThreadCondAttrInit(&condattr); @@ -362,8 +382,6 @@ TEST(osThreadTests, rwlock) { EXPECT_NE(reti, 0); reti = taosThreadRwlockTryRdlock(&rwlock); EXPECT_EQ(reti, 0); - reti = taosThreadRwlockTryRdlock(&rwlock); - EXPECT_NE(reti, 0); reti = taosThreadRwlockUnlock(NULL); EXPECT_NE(reti, 0); @@ -416,15 +434,24 @@ TEST(osThreadTests, spinlock) { TdThreadSpinlock lock = {0}; reti = taosThreadSpinInit(&lock, -1); - EXPECT_NE(reti, 0); + EXPECT_EQ(reti, 0); reti = taosThreadSpinLock(&lock); - EXPECT_NE(reti, 0); + EXPECT_EQ(reti, 0); reti = taosThreadSpinTrylock(&lock); EXPECT_NE(reti, 0); reti = taosThreadSpinUnlock(&lock); - EXPECT_NE(reti, 0); + EXPECT_EQ(reti, 0); reti = taosThreadSpinDestroy(&lock); - EXPECT_NE(reti, 0); + EXPECT_EQ(reti, 0); + + reti = taosThreadSpinInit(&lock, -1); + EXPECT_EQ(reti, 0); + reti = taosThreadSpinTrylock(&lock); + EXPECT_EQ(reti, 0); + reti = taosThreadSpinUnlock(&lock); + EXPECT_EQ(reti, 0); + reti = taosThreadSpinDestroy(&lock); + EXPECT_EQ(reti, 0); reti = taosThreadSpinInit(NULL, 0); EXPECT_NE(reti, 0);