test: 修复llvm升级导致tdd用例部分失败问题

方案描述:
1、llvm升级之后对while(1)死循环和给空指针赋值的场景有错误优化的情况;
   用例中在相关函数之前添加__attribute__((optnone))禁止编译器进行错误优化。

Close:#I6V2LN

Signed-off-by: zhangdengyu <zhangdengyu2@huawei.com>
Change-Id: Ic7150909c12a599aeeb0a55b983dfad7a0631cdc
This commit is contained in:
zhangdengyu
2023-04-28 17:26:17 +08:00
parent 5fb9165c08
commit 577d29aaba
8 changed files with 20 additions and 20 deletions

View File

@@ -30,7 +30,7 @@
*/
#include "It_posix_queue.h"
static VOID *PthreadF01(VOID *argument)
__attribute__((optnone)) static VOID *PthreadF01(VOID *argument)
{
INT32 i;
INT32 ret;
@@ -54,7 +54,7 @@ EXIT:
return NULL;
}
static VOID *PthreadF02(VOID *argument)
__attribute__((optnone)) static VOID *PthreadF02(VOID *argument)
{
INT32 j, ret;
@@ -79,7 +79,7 @@ EXIT:
return NULL;
}
static UINT32 Testcase(VOID)
__attribute__((optnone)) static UINT32 Testcase(VOID)
{
pthread_t newTh1, newTh2;
UINT32 ret;

View File

@@ -53,7 +53,6 @@ EXIT:
static UINT32 Testcase(VOID)
{
INT32 ret;
UINT32 uret;
CHAR mqname[MQUEUE_STANDARD_NAME_LENGTH] = "";
const CHAR *msgptr = MQUEUE_SEND_STRING_TEST;
pthread_t pthread1;
@@ -92,7 +91,6 @@ static UINT32 Testcase(VOID)
ICUNIT_GOTO_EQUAL(ret, MQUEUE_NO_ERROR, ret, EXIT2);
usleep(0);
ICUNIT_GOTO_EQUAL(uret, MQUEUE_NO_ERROR, uret, EXIT2);
ret = pthread_join(pthread1, NULL);
ICUNIT_GOTO_EQUAL(ret, MQUEUE_NO_ERROR, ret, EXIT2);