提交 ebb1305b 编写于 作者: O openharmony_ci 提交者: Gitee

!288 修复shm用例多次执行时失败问题

Merge pull request !288 from lnlan/shm_test_fixed
...@@ -42,23 +42,23 @@ sources_entry = [ ...@@ -42,23 +42,23 @@ sources_entry = [
] ]
sources_smoke = [ sources_smoke = [
"smoke/shm_test_001.cpp",
"smoke/shm_test_002.cpp",
"smoke/shm_test_003.cpp",
"smoke/shm_test_004.cpp",
"smoke/shm_test_005.cpp",
"smoke/shm_test_006.cpp",
"smoke/shm_test_007.cpp",
"smoke/shm_test_008.cpp",
"smoke/shm_test_009.cpp",
"smoke/shm_test_010.cpp",
"smoke/shm_test_011.cpp", "smoke/shm_test_011.cpp",
"smoke/shm_test_012.cpp",
"smoke/shm_test_013.cpp",
"smoke/shm_test_014.cpp",
] ]
sources_full = [ sources_full = [
"full/shm_test_001.cpp",
"full/shm_test_002.cpp",
"full/shm_test_003.cpp",
"full/shm_test_004.cpp",
"full/shm_test_005.cpp",
"full/shm_test_006.cpp",
"full/shm_test_007.cpp",
"full/shm_test_008.cpp",
"full/shm_test_009.cpp",
"full/shm_test_010.cpp",
"full/shm_test_012.cpp",
"full/shm_test_013.cpp",
"full/shm_test_014.cpp",
] ]
if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) { if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
......
...@@ -42,42 +42,48 @@ static int Testcase(VOID) ...@@ -42,42 +42,48 @@ static int Testcase(VOID)
ICUNIT_ASSERT_NOT_EQUAL(shmid, -1, shmid); ICUNIT_ASSERT_NOT_EQUAL(shmid, -1, shmid);
shm = shmat(shmid, NULL, 0); shm = shmat(shmid, NULL, 0);
ICUNIT_ASSERT_NOT_EQUAL(shm, INVALID_PTR, shm); ICUNIT_GOTO_NOT_EQUAL(shm, INVALID_PTR, shm, ERROR_OUT);
(void)memset_s(shm, PAGE_SIZE, 0, PAGE_SIZE); (void)memset_s(shm, PAGE_SIZE, 0, PAGE_SIZE);
ret = shmctl(shmid, IPC_STAT, &ds); ret = shmctl(shmid, IPC_STAT, &ds);
ICUNIT_ASSERT_EQUAL(ret, 0, ret); ICUNIT_GOTO_EQUAL(ret, 0, ret, ERROR_OUT);
ICUNIT_ASSERT_EQUAL(ds.shm_segsz, PAGE_SIZE, ds.shm_segsz); ICUNIT_GOTO_EQUAL(ds.shm_segsz, PAGE_SIZE, ds.shm_segsz, ERROR_OUT);
ICUNIT_ASSERT_EQUAL(ds.shm_nattch, 1, ds.shm_nattch); ICUNIT_GOTO_EQUAL(ds.shm_nattch, 1, ds.shm_nattch, ERROR_OUT);
ICUNIT_ASSERT_EQUAL(ds.shm_cpid, getpid(), ds.shm_cpid); ICUNIT_GOTO_EQUAL(ds.shm_cpid, getpid(), ds.shm_cpid, ERROR_OUT);
ICUNIT_ASSERT_EQUAL(ds.shm_lpid, getpid(), ds.shm_lpid); ICUNIT_GOTO_EQUAL(ds.shm_lpid, getpid(), ds.shm_lpid, ERROR_OUT);
ICUNIT_ASSERT_EQUAL(ds.shm_perm.uid, getuid(), ds.shm_perm.uid); ICUNIT_GOTO_EQUAL(ds.shm_perm.uid, getuid(), ds.shm_perm.uid, ERROR_OUT);
ret = shmctl(shmid, SHM_STAT, &ds); ret = shmctl(shmid, SHM_STAT, &ds);
ICUNIT_ASSERT_EQUAL(ret, 0x10000, ret); // ICUNIT_GOTO_EQUAL(ret, 0x10000, ret, ERROR_OUT);
ICUNIT_GOTO_NOT_EQUAL(ret, -1, ret, ERROR_OUT);
ICUNIT_GOTO_NOT_EQUAL(ret, 0, ret, ERROR_OUT);
ds.shm_perm.uid = getuid(); ds.shm_perm.uid = getuid();
ds.shm_perm.gid = getgid(); ds.shm_perm.gid = getgid();
ds.shm_perm.mode = 0; ds.shm_perm.mode = 0;
ret = shmctl(shmid, IPC_SET, &ds); ret = shmctl(shmid, IPC_SET, &ds);
ICUNIT_ASSERT_EQUAL(ret, 0, ret); ICUNIT_GOTO_EQUAL(ret, 0, ret, ERROR_OUT);
ret = shmctl(shmid, IPC_INFO, (struct shmid_ds *)&info); ret = shmctl(shmid, IPC_INFO, (struct shmid_ds *)&info);
ICUNIT_ASSERT_EQUAL(ret, 192, ret); ICUNIT_GOTO_EQUAL(ret, 192, ret, ERROR_OUT);
ICUNIT_ASSERT_EQUAL(info.shmmax, 0x1000000, info.shmmax); ICUNIT_GOTO_EQUAL(info.shmmax, 0x1000000, info.shmmax, ERROR_OUT);
ICUNIT_ASSERT_EQUAL(info.shmmin, 1, info.shmmin); ICUNIT_GOTO_EQUAL(info.shmmin, 1, info.shmmin, ERROR_OUT);
ICUNIT_ASSERT_EQUAL(info.shmmni, 192, info.shmmni); ICUNIT_GOTO_EQUAL(info.shmmni, 192, info.shmmni, ERROR_OUT);
ICUNIT_ASSERT_EQUAL(info.shmseg, 128, info.shmseg); ICUNIT_GOTO_EQUAL(info.shmseg, 128, info.shmseg, ERROR_OUT);
ICUNIT_ASSERT_EQUAL(info.shmall, 0x1000, info.shmall); ICUNIT_GOTO_EQUAL(info.shmall, 0x1000, info.shmall, ERROR_OUT);
ret = shmdt(shm); ret = shmdt(shm);
ICUNIT_ASSERT_NOT_EQUAL(ret, -1, ret); ICUNIT_GOTO_NOT_EQUAL(ret, -1, ret, ERROR_OUT);
ret = shmctl(shmid, IPC_RMID, NULL); ret = shmctl(shmid, IPC_RMID, NULL);
ICUNIT_ASSERT_EQUAL(ret, 0, ret); ICUNIT_ASSERT_EQUAL(ret, 0, ret);
return 0; return 0;
ERROR_OUT:
ret = shmctl(shmid, IPC_RMID, NULL);
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
return -1;
} }
void ItTestShm004(void) void ItTestShm004(void)
......
...@@ -38,9 +38,6 @@ static int Testcase(VOID) ...@@ -38,9 +38,6 @@ static int Testcase(VOID)
void *vaddrPageAlign = NULL; void *vaddrPageAlign = NULL;
void *vaddr = NULL; void *vaddr = NULL;
shmid = shmget(IPC_PRIVATE, PAGE_SIZE, 0);
ICUNIT_ASSERT_EQUAL(errno, EINVAL, errno);
errno = 0; errno = 0;
shmid = shmget(0x111, PAGE_SIZE, 0777 | IPC_EXCL); shmid = shmget(0x111, PAGE_SIZE, 0777 | IPC_EXCL);
ICUNIT_ASSERT_EQUAL(shmid, -1, shmid); ICUNIT_ASSERT_EQUAL(shmid, -1, shmid);
...@@ -59,6 +56,7 @@ static int Testcase(VOID) ...@@ -59,6 +56,7 @@ static int Testcase(VOID)
ICUNIT_ASSERT_NOT_EQUAL(shm, (void *)-1, shm); ICUNIT_ASSERT_NOT_EQUAL(shm, (void *)-1, shm);
ret = shmdt((const void *)0x100); ret = shmdt((const void *)0x100);
ICUNIT_ASSERT_EQUAL(ret, -1, shmid);
ICUNIT_ASSERT_EQUAL(errno, EINVAL, errno); ICUNIT_ASSERT_EQUAL(errno, EINVAL, errno);
ret = shmdt(shm); ret = shmdt(shm);
...@@ -71,6 +69,7 @@ static int Testcase(VOID) ...@@ -71,6 +69,7 @@ static int Testcase(VOID)
ICUNIT_ASSERT_EQUAL(ret, 0, ret); ICUNIT_ASSERT_EQUAL(ret, 0, ret);
ret = shmctl(shmid, IPC_RMID, NULL); ret = shmctl(shmid, IPC_RMID, NULL);
ICUNIT_ASSERT_EQUAL(ret, -1, shmid);
ICUNIT_ASSERT_EQUAL(errno, EIDRM, errno); ICUNIT_ASSERT_EQUAL(errno, EIDRM, errno);
return 0; return 0;
......
...@@ -41,7 +41,7 @@ public: ...@@ -41,7 +41,7 @@ public:
static void TearDownTestCase(void) {} static void TearDownTestCase(void) {}
}; };
#if defined(LOSCFG_USER_TEST_SMOKE) #if defined(LOSCFG_USER_TEST_FULL)
/* * /* *
* @tc.name: it_test_shm_001 * @tc.name: it_test_shm_001
* @tc.desc: function for MemShmTest * @tc.desc: function for MemShmTest
...@@ -151,7 +151,9 @@ HWTEST_F(MemShmTest, ItTestShm010, TestSize.Level0) ...@@ -151,7 +151,9 @@ HWTEST_F(MemShmTest, ItTestShm010, TestSize.Level0)
{ {
ItTestShm010(); ItTestShm010();
} }
#endif
#if defined(LOSCFG_USER_TEST_SMOKE)
/* * /* *
* @tc.name: it_test_shm_011 * @tc.name: it_test_shm_011
* @tc.desc: function for MemShmTest * @tc.desc: function for MemShmTest
......
...@@ -49,6 +49,8 @@ static int Testcase(void) ...@@ -49,6 +49,8 @@ static int Testcase(void)
exit(1); exit(1);
} }
*shared = 2; *shared = 2;
ret = shmdt(shared);
ICUNIT_ASSERT_NOT_EQUAL(ret, -1, ret);
exit(0); exit(0);
} else { } else {
usleep(20000); usleep(20000);
...@@ -59,12 +61,13 @@ static int Testcase(void) ...@@ -59,12 +61,13 @@ static int Testcase(void)
ret = shmdt(shared); ret = shmdt(shared);
ICUNIT_ASSERT_NOT_EQUAL(ret, -1, ret); ICUNIT_ASSERT_NOT_EQUAL(ret, -1, ret);
ret = shmctl(shmid, IPC_RMID, NULL);
ICUNIT_ASSERT_NOT_EQUAL(ret, -1, ret);
wait(&status); wait(&status);
status = WEXITSTATUS(status); status = WEXITSTATUS(status);
ICUNIT_ASSERT_EQUAL(status, 0, status); ICUNIT_ASSERT_EQUAL(status, 0, status);
ret = shmctl(shmid, IPC_RMID, NULL);
ICUNIT_ASSERT_NOT_EQUAL(ret, -1, ret);
} }
return 0; return 0;
......
...@@ -52,7 +52,6 @@ sources_smoke = [ ...@@ -52,7 +52,6 @@ sources_smoke = [
"smoke/pipe_test_002.cpp", "smoke/pipe_test_002.cpp",
"smoke/pipe_test_004.cpp", "smoke/pipe_test_004.cpp",
"smoke/pipe_test_005.cpp", "smoke/pipe_test_005.cpp",
"smoke/pipe_test_006.cpp",
"smoke/signal_test_002.cpp", "smoke/signal_test_002.cpp",
"smoke/signal_test_009.cpp", "smoke/signal_test_009.cpp",
"smoke/signal_test_013.cpp", "smoke/signal_test_013.cpp",
...@@ -108,6 +107,7 @@ sources_full = [ ...@@ -108,6 +107,7 @@ sources_full = [
"full/It_ipc_pipe_003.cpp", "full/It_ipc_pipe_003.cpp",
"full/pipe_test_001.cpp", "full/pipe_test_001.cpp",
"full/pipe_test_003.cpp", "full/pipe_test_003.cpp",
"full/pipe_test_006.cpp",
] ]
......
...@@ -229,17 +229,6 @@ HWTEST_F(SignalTest, ItPosixPipe005, TestSize.Level0) ...@@ -229,17 +229,6 @@ HWTEST_F(SignalTest, ItPosixPipe005, TestSize.Level0)
ItPosixPipe005(); ItPosixPipe005();
} }
/* *
* @tc.name: ItPosixPipe006
* @tc.desc: function for SignalTest
* @tc.type: FUNC
* @tc.require: AR000EEMQ9
*/
HWTEST_F(SignalTest, ItPosixPipe006, TestSize.Level0)
{
ItPosixPipe006();
}
/* * /* *
* @tc.name: ItPosixMkfifo002 * @tc.name: ItPosixMkfifo002
* @tc.desc: function for SignalTest * @tc.desc: function for SignalTest
...@@ -649,5 +638,16 @@ HWTEST_F(SignalTest, ItPosixPipe003, TestSize.Level0) ...@@ -649,5 +638,16 @@ HWTEST_F(SignalTest, ItPosixPipe003, TestSize.Level0)
ItPosixPipe003(); ItPosixPipe003();
} }
/* *
* @tc.name: ItPosixPipe006
* @tc.desc: function for SignalTest
* @tc.type: FUNC
* @tc.require: AR000EEMQ9
*/
HWTEST_F(SignalTest, ItPosixPipe006, TestSize.Level0)
{
ItPosixPipe006();
}
#endif #endif
} // namespace OHOS } // namespace OHOS
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册