提交 8c0b7d0f 编写于 作者: X xiacong

<fix>

修复测试用例不过的问题

<body>
1.修复执行liteos_a_basic_unittest.bin时间过长的问题
2.修复测试shm系列系统调用函数用例失败的问题
Signed-off-by: Nxiacong <xiacong4@huawei.com>
Change-Id: Iabc541cb1c0e97dac0fe13aaeb98e85404e5bf6f
Signed-off-by: Nxiacong <xiacong4@huawei.com>
上级 a83f9162
...@@ -34,9 +34,11 @@ static int TestCase(void) ...@@ -34,9 +34,11 @@ static int TestCase(void)
{ {
int ret; int ret;
int status = 0; int status = 0;
int *test = NULL; // for trggering an exception
pid_t pid = fork(); pid_t pid = fork();
ICUNIT_ASSERT_WITHIN_EQUAL(pid, 0, INVALID_PROCESS_ID, pid); ICUNIT_ASSERT_WITHIN_EQUAL(pid, 0, INVALID_PROCESS_ID, pid);
if (pid == 0) { if (pid == 0) {
*test = 0x1; // Deliberately trigger an exceptioin
exit(0); exit(0);
} }
...@@ -52,6 +54,7 @@ static int TestCase(void) ...@@ -52,6 +54,7 @@ static int TestCase(void)
pid = fork(); pid = fork();
ICUNIT_ASSERT_WITHIN_EQUAL(pid, 0, INVALID_PROCESS_ID, pid); ICUNIT_ASSERT_WITHIN_EQUAL(pid, 0, INVALID_PROCESS_ID, pid);
if (pid == 0) { if (pid == 0) {
*test = 0x1; // Deliberately trigger an exceptioin
exit(0); exit(0);
} }
......
...@@ -36,13 +36,16 @@ ...@@ -36,13 +36,16 @@
static int TestThread(void) static int TestThread(void)
{ {
int ret; int ret;
int *test = nullptr; // For triggering an exceptioin
pid_t pid = fork(); pid_t pid = fork();
ICUNIT_ASSERT_WITHIN_EQUAL(pid, 0, INVALID_PROCESS_ID, pid); ICUNIT_ASSERT_WITHIN_EQUAL(pid, 0, INVALID_PROCESS_ID, pid);
if (pid == 0) { if (pid == 0) {
*test = 0x1; // Deliberately trigger an exceptioin
while (1) { while (1) {
} }
} }
*test = 0x1; // Deliberately trigger an exceptioin
ret = waitpid(pid, NULL, 0); ret = waitpid(pid, NULL, 0);
ICUNIT_ASSERT_EQUAL(ret, pid, ret); ICUNIT_ASSERT_EQUAL(ret, pid, ret);
......
...@@ -37,6 +37,12 @@ static int Testcase(VOID) ...@@ -37,6 +37,12 @@ static int Testcase(VOID)
int shmid[SHMID_MAX + 1] = {-1}; int shmid[SHMID_MAX + 1] = {-1};
int ret; int ret;
int i; int i;
struct shm_info shmInfo;
int leftShmIds;
ret = shmctl(0, SHM_INFO, reinterpret_cast<struct shmid_ds *>(&shmInfo));
ICUNIT_ASSERT_EQUAL(ret, SHMID_MAX, ret);
leftShmIds = SHMID_MAX - shmInfo.used_ids;
shmid[0] = shmget((key_t)0x1234, PAGE_SIZE, 0777 | IPC_CREAT); shmid[0] = shmget((key_t)0x1234, PAGE_SIZE, 0777 | IPC_CREAT);
ICUNIT_ASSERT_NOT_EQUAL(shmid[0], -1, shmid[0]); ICUNIT_ASSERT_NOT_EQUAL(shmid[0], -1, shmid[0]);
...@@ -50,20 +56,20 @@ static int Testcase(VOID) ...@@ -50,20 +56,20 @@ static int Testcase(VOID)
ret = shmctl(shmid[0], IPC_RMID, NULL); ret = shmctl(shmid[0], IPC_RMID, NULL);
ICUNIT_ASSERT_EQUAL(ret, 0, ret); ICUNIT_ASSERT_EQUAL(ret, 0, ret);
for (i = 0; i < SHMID_MAX; i++) { for (i = 0; i < leftShmIds; i++) {
shmid[i] = shmget(IPC_PRIVATE, PAGE_SIZE, 0777 | IPC_CREAT); shmid[i] = shmget(IPC_PRIVATE, PAGE_SIZE, 0777 | IPC_CREAT);
ICUNIT_ASSERT_NOT_EQUAL(shmid[i], -1, shmid[i]); ICUNIT_ASSERT_NOT_EQUAL(shmid[i], -1, shmid[i]);
} }
shmid[SHMID_MAX] = shmget(IPC_PRIVATE, PAGE_SIZE, 0777 | IPC_CREAT); shmid[leftShmIds] = shmget(IPC_PRIVATE, PAGE_SIZE, 0777 | IPC_CREAT);
ICUNIT_ASSERT_EQUAL(shmid[SHMID_MAX], -1, shmid[SHMID_MAX]); ICUNIT_ASSERT_EQUAL(shmid[leftShmIds], -1, shmid[leftShmIds]);
for (i = 0; i < SHMID_MAX; i++) { for (i = 0; i < leftShmIds; i++) {
ret = shmctl(shmid[i], IPC_RMID, NULL); ret = shmctl(shmid[i], IPC_RMID, NULL);
ICUNIT_ASSERT_EQUAL(ret, 0, ret); ICUNIT_ASSERT_EQUAL(ret, 0, ret);
} }
for (i = 0; i < SHMID_MAX; i++) { for (i = 0; i < leftShmIds; i++) {
ret = shmctl(shmid[i], IPC_RMID, NULL); ret = shmctl(shmid[i], IPC_RMID, NULL);
ICUNIT_ASSERT_EQUAL(ret, -1, ret); ICUNIT_ASSERT_EQUAL(ret, -1, ret);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册