From 0676578aae09c101d79e7a276823e849df293e29 Mon Sep 17 00:00:00 2001 From: lnlan Date: Thu, 3 Jun 2021 20:01:51 +0800 Subject: [PATCH] =?UTF-8?q?fix(kernel=5Ftest):=20=E5=86=85=E6=A0=B8mem/shm?= =?UTF-8?q?=E5=86=92=E7=83=9F=E7=94=A8=E4=BE=8B=E9=87=8D=E5=A4=8D=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【背景】内核mem/shm冒烟用例概率性失败门禁中shm冒烟用例失败,经验证 与构建,不符合预期 【修改方案】 原内核用例的源文件是通过框架自带的source_set(一种虚拟静态库)的方式组织的, 不受unittests(自定义的一种方式)控制,修改为文件列表直接加入到unittest中。 【影响】 对现有的产品编译不会有影响。 re #I3TH4W Signed-off-by: lnlanc Change-Id: If5452adb033c17ee0d7c7f683968fe53013ee289 --- testsuites/unittest/mem/shm/BUILD.gn | 26 ++++++------ .../shm/{smoke => full}/it_test_mem_100.cpp | 0 .../mem/shm/{smoke => full}/shm_test_001.cpp | 0 .../mem/shm/{smoke => full}/shm_test_002.cpp | 0 .../mem/shm/{smoke => full}/shm_test_003.cpp | 0 .../mem/shm/{smoke => full}/shm_test_004.cpp | 40 +++++++++++-------- .../mem/shm/{smoke => full}/shm_test_005.cpp | 5 +-- .../mem/shm/{smoke => full}/shm_test_006.cpp | 0 .../mem/shm/{smoke => full}/shm_test_007.cpp | 0 .../mem/shm/{smoke => full}/shm_test_008.cpp | 0 .../mem/shm/{smoke => full}/shm_test_009.cpp | 0 .../mem/shm/{smoke => full}/shm_test_010.cpp | 0 .../mem/shm/{smoke => full}/shm_test_012.cpp | 0 .../mem/shm/{smoke => full}/shm_test_013.cpp | 0 .../mem/shm/{smoke => full}/shm_test_014.cpp | 0 testsuites/unittest/mem/shm/mem_shm_test.cpp | 4 +- .../unittest/mem/shm/smoke/shm_test_011.cpp | 7 +++- testsuites/unittest/signal/BUILD.gn | 2 +- .../signal/{smoke => full}/pipe_test_006.cpp | 0 testsuites/unittest/signal/signal_test.cpp | 22 +++++----- 20 files changed, 58 insertions(+), 48 deletions(-) rename testsuites/unittest/mem/shm/{smoke => full}/it_test_mem_100.cpp (100%) rename testsuites/unittest/mem/shm/{smoke => full}/shm_test_001.cpp (100%) rename testsuites/unittest/mem/shm/{smoke => full}/shm_test_002.cpp (100%) rename testsuites/unittest/mem/shm/{smoke => full}/shm_test_003.cpp (100%) rename testsuites/unittest/mem/shm/{smoke => full}/shm_test_004.cpp (68%) rename testsuites/unittest/mem/shm/{smoke => full}/shm_test_005.cpp (96%) rename testsuites/unittest/mem/shm/{smoke => full}/shm_test_006.cpp (100%) rename testsuites/unittest/mem/shm/{smoke => full}/shm_test_007.cpp (100%) rename testsuites/unittest/mem/shm/{smoke => full}/shm_test_008.cpp (100%) rename testsuites/unittest/mem/shm/{smoke => full}/shm_test_009.cpp (100%) rename testsuites/unittest/mem/shm/{smoke => full}/shm_test_010.cpp (100%) rename testsuites/unittest/mem/shm/{smoke => full}/shm_test_012.cpp (100%) rename testsuites/unittest/mem/shm/{smoke => full}/shm_test_013.cpp (100%) rename testsuites/unittest/mem/shm/{smoke => full}/shm_test_014.cpp (100%) rename testsuites/unittest/signal/{smoke => full}/pipe_test_006.cpp (100%) diff --git a/testsuites/unittest/mem/shm/BUILD.gn b/testsuites/unittest/mem/shm/BUILD.gn index 8f8b6006..0e677b46 100644 --- a/testsuites/unittest/mem/shm/BUILD.gn +++ b/testsuites/unittest/mem/shm/BUILD.gn @@ -42,23 +42,23 @@ sources_entry = [ ] 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_012.cpp", - "smoke/shm_test_013.cpp", - "smoke/shm_test_014.cpp", ] 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) { diff --git a/testsuites/unittest/mem/shm/smoke/it_test_mem_100.cpp b/testsuites/unittest/mem/shm/full/it_test_mem_100.cpp similarity index 100% rename from testsuites/unittest/mem/shm/smoke/it_test_mem_100.cpp rename to testsuites/unittest/mem/shm/full/it_test_mem_100.cpp diff --git a/testsuites/unittest/mem/shm/smoke/shm_test_001.cpp b/testsuites/unittest/mem/shm/full/shm_test_001.cpp similarity index 100% rename from testsuites/unittest/mem/shm/smoke/shm_test_001.cpp rename to testsuites/unittest/mem/shm/full/shm_test_001.cpp diff --git a/testsuites/unittest/mem/shm/smoke/shm_test_002.cpp b/testsuites/unittest/mem/shm/full/shm_test_002.cpp similarity index 100% rename from testsuites/unittest/mem/shm/smoke/shm_test_002.cpp rename to testsuites/unittest/mem/shm/full/shm_test_002.cpp diff --git a/testsuites/unittest/mem/shm/smoke/shm_test_003.cpp b/testsuites/unittest/mem/shm/full/shm_test_003.cpp similarity index 100% rename from testsuites/unittest/mem/shm/smoke/shm_test_003.cpp rename to testsuites/unittest/mem/shm/full/shm_test_003.cpp diff --git a/testsuites/unittest/mem/shm/smoke/shm_test_004.cpp b/testsuites/unittest/mem/shm/full/shm_test_004.cpp similarity index 68% rename from testsuites/unittest/mem/shm/smoke/shm_test_004.cpp rename to testsuites/unittest/mem/shm/full/shm_test_004.cpp index 4f34419f..3348ea39 100644 --- a/testsuites/unittest/mem/shm/smoke/shm_test_004.cpp +++ b/testsuites/unittest/mem/shm/full/shm_test_004.cpp @@ -42,42 +42,48 @@ static int Testcase(VOID) ICUNIT_ASSERT_NOT_EQUAL(shmid, -1, shmid); 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); ret = shmctl(shmid, IPC_STAT, &ds); - ICUNIT_ASSERT_EQUAL(ret, 0, ret); - ICUNIT_ASSERT_EQUAL(ds.shm_segsz, PAGE_SIZE, ds.shm_segsz); - ICUNIT_ASSERT_EQUAL(ds.shm_nattch, 1, ds.shm_nattch); - ICUNIT_ASSERT_EQUAL(ds.shm_cpid, getpid(), ds.shm_cpid); - ICUNIT_ASSERT_EQUAL(ds.shm_lpid, getpid(), ds.shm_lpid); - ICUNIT_ASSERT_EQUAL(ds.shm_perm.uid, getuid(), ds.shm_perm.uid); + ICUNIT_GOTO_EQUAL(ret, 0, ret, ERROR_OUT); + ICUNIT_GOTO_EQUAL(ds.shm_segsz, PAGE_SIZE, ds.shm_segsz, ERROR_OUT); + ICUNIT_GOTO_EQUAL(ds.shm_nattch, 1, ds.shm_nattch, ERROR_OUT); + ICUNIT_GOTO_EQUAL(ds.shm_cpid, getpid(), ds.shm_cpid, ERROR_OUT); + ICUNIT_GOTO_EQUAL(ds.shm_lpid, getpid(), ds.shm_lpid, ERROR_OUT); + ICUNIT_GOTO_EQUAL(ds.shm_perm.uid, getuid(), ds.shm_perm.uid, ERROR_OUT); 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.gid = getgid(); ds.shm_perm.mode = 0; 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); - ICUNIT_ASSERT_EQUAL(ret, 192, ret); - ICUNIT_ASSERT_EQUAL(info.shmmax, 0x1000000, info.shmmax); - ICUNIT_ASSERT_EQUAL(info.shmmin, 1, info.shmmin); - ICUNIT_ASSERT_EQUAL(info.shmmni, 192, info.shmmni); - ICUNIT_ASSERT_EQUAL(info.shmseg, 128, info.shmseg); - ICUNIT_ASSERT_EQUAL(info.shmall, 0x1000, info.shmall); + ICUNIT_GOTO_EQUAL(ret, 192, ret, ERROR_OUT); + ICUNIT_GOTO_EQUAL(info.shmmax, 0x1000000, info.shmmax, ERROR_OUT); + ICUNIT_GOTO_EQUAL(info.shmmin, 1, info.shmmin, ERROR_OUT); + ICUNIT_GOTO_EQUAL(info.shmmni, 192, info.shmmni, ERROR_OUT); + ICUNIT_GOTO_EQUAL(info.shmseg, 128, info.shmseg, ERROR_OUT); + ICUNIT_GOTO_EQUAL(info.shmall, 0x1000, info.shmall, ERROR_OUT); 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); ICUNIT_ASSERT_EQUAL(ret, 0, ret); - return 0; + +ERROR_OUT: + ret = shmctl(shmid, IPC_RMID, NULL); + ICUNIT_ASSERT_EQUAL(ret, 0, ret); + return -1; } void ItTestShm004(void) diff --git a/testsuites/unittest/mem/shm/smoke/shm_test_005.cpp b/testsuites/unittest/mem/shm/full/shm_test_005.cpp similarity index 96% rename from testsuites/unittest/mem/shm/smoke/shm_test_005.cpp rename to testsuites/unittest/mem/shm/full/shm_test_005.cpp index cc57eb99..2e0da0ce 100644 --- a/testsuites/unittest/mem/shm/smoke/shm_test_005.cpp +++ b/testsuites/unittest/mem/shm/full/shm_test_005.cpp @@ -38,9 +38,6 @@ static int Testcase(VOID) void *vaddrPageAlign = NULL; void *vaddr = NULL; - shmid = shmget(IPC_PRIVATE, PAGE_SIZE, 0); - ICUNIT_ASSERT_EQUAL(errno, EINVAL, errno); - errno = 0; shmid = shmget(0x111, PAGE_SIZE, 0777 | IPC_EXCL); ICUNIT_ASSERT_EQUAL(shmid, -1, shmid); @@ -59,6 +56,7 @@ static int Testcase(VOID) ICUNIT_ASSERT_NOT_EQUAL(shm, (void *)-1, shm); ret = shmdt((const void *)0x100); + ICUNIT_ASSERT_EQUAL(ret, -1, shmid); ICUNIT_ASSERT_EQUAL(errno, EINVAL, errno); ret = shmdt(shm); @@ -71,6 +69,7 @@ static int Testcase(VOID) ICUNIT_ASSERT_EQUAL(ret, 0, ret); ret = shmctl(shmid, IPC_RMID, NULL); + ICUNIT_ASSERT_EQUAL(ret, -1, shmid); ICUNIT_ASSERT_EQUAL(errno, EIDRM, errno); return 0; diff --git a/testsuites/unittest/mem/shm/smoke/shm_test_006.cpp b/testsuites/unittest/mem/shm/full/shm_test_006.cpp similarity index 100% rename from testsuites/unittest/mem/shm/smoke/shm_test_006.cpp rename to testsuites/unittest/mem/shm/full/shm_test_006.cpp diff --git a/testsuites/unittest/mem/shm/smoke/shm_test_007.cpp b/testsuites/unittest/mem/shm/full/shm_test_007.cpp similarity index 100% rename from testsuites/unittest/mem/shm/smoke/shm_test_007.cpp rename to testsuites/unittest/mem/shm/full/shm_test_007.cpp diff --git a/testsuites/unittest/mem/shm/smoke/shm_test_008.cpp b/testsuites/unittest/mem/shm/full/shm_test_008.cpp similarity index 100% rename from testsuites/unittest/mem/shm/smoke/shm_test_008.cpp rename to testsuites/unittest/mem/shm/full/shm_test_008.cpp diff --git a/testsuites/unittest/mem/shm/smoke/shm_test_009.cpp b/testsuites/unittest/mem/shm/full/shm_test_009.cpp similarity index 100% rename from testsuites/unittest/mem/shm/smoke/shm_test_009.cpp rename to testsuites/unittest/mem/shm/full/shm_test_009.cpp diff --git a/testsuites/unittest/mem/shm/smoke/shm_test_010.cpp b/testsuites/unittest/mem/shm/full/shm_test_010.cpp similarity index 100% rename from testsuites/unittest/mem/shm/smoke/shm_test_010.cpp rename to testsuites/unittest/mem/shm/full/shm_test_010.cpp diff --git a/testsuites/unittest/mem/shm/smoke/shm_test_012.cpp b/testsuites/unittest/mem/shm/full/shm_test_012.cpp similarity index 100% rename from testsuites/unittest/mem/shm/smoke/shm_test_012.cpp rename to testsuites/unittest/mem/shm/full/shm_test_012.cpp diff --git a/testsuites/unittest/mem/shm/smoke/shm_test_013.cpp b/testsuites/unittest/mem/shm/full/shm_test_013.cpp similarity index 100% rename from testsuites/unittest/mem/shm/smoke/shm_test_013.cpp rename to testsuites/unittest/mem/shm/full/shm_test_013.cpp diff --git a/testsuites/unittest/mem/shm/smoke/shm_test_014.cpp b/testsuites/unittest/mem/shm/full/shm_test_014.cpp similarity index 100% rename from testsuites/unittest/mem/shm/smoke/shm_test_014.cpp rename to testsuites/unittest/mem/shm/full/shm_test_014.cpp diff --git a/testsuites/unittest/mem/shm/mem_shm_test.cpp b/testsuites/unittest/mem/shm/mem_shm_test.cpp index 17d91275..de30f043 100644 --- a/testsuites/unittest/mem/shm/mem_shm_test.cpp +++ b/testsuites/unittest/mem/shm/mem_shm_test.cpp @@ -41,7 +41,7 @@ public: static void TearDownTestCase(void) {} }; -#if defined(LOSCFG_USER_TEST_SMOKE) +#if defined(LOSCFG_USER_TEST_FULL) /* * * @tc.name: it_test_shm_001 * @tc.desc: function for MemShmTest @@ -151,7 +151,9 @@ HWTEST_F(MemShmTest, ItTestShm010, TestSize.Level0) { ItTestShm010(); } +#endif +#if defined(LOSCFG_USER_TEST_SMOKE) /* * * @tc.name: it_test_shm_011 * @tc.desc: function for MemShmTest diff --git a/testsuites/unittest/mem/shm/smoke/shm_test_011.cpp b/testsuites/unittest/mem/shm/smoke/shm_test_011.cpp index 8838e190..9f8e4865 100644 --- a/testsuites/unittest/mem/shm/smoke/shm_test_011.cpp +++ b/testsuites/unittest/mem/shm/smoke/shm_test_011.cpp @@ -49,6 +49,8 @@ static int Testcase(void) exit(1); } *shared = 2; + ret = shmdt(shared); + ICUNIT_ASSERT_NOT_EQUAL(ret, -1, ret); exit(0); } else { usleep(20000); @@ -59,12 +61,13 @@ static int Testcase(void) ret = shmdt(shared); ICUNIT_ASSERT_NOT_EQUAL(ret, -1, ret); - ret = shmctl(shmid, IPC_RMID, NULL); - ICUNIT_ASSERT_NOT_EQUAL(ret, -1, ret); wait(&status); status = WEXITSTATUS(status); ICUNIT_ASSERT_EQUAL(status, 0, status); + + ret = shmctl(shmid, IPC_RMID, NULL); + ICUNIT_ASSERT_NOT_EQUAL(ret, -1, ret); } return 0; diff --git a/testsuites/unittest/signal/BUILD.gn b/testsuites/unittest/signal/BUILD.gn index 10b3ddf2..d157f594 100644 --- a/testsuites/unittest/signal/BUILD.gn +++ b/testsuites/unittest/signal/BUILD.gn @@ -52,7 +52,6 @@ sources_smoke = [ "smoke/pipe_test_002.cpp", "smoke/pipe_test_004.cpp", "smoke/pipe_test_005.cpp", - "smoke/pipe_test_006.cpp", "smoke/signal_test_002.cpp", "smoke/signal_test_009.cpp", "smoke/signal_test_013.cpp", @@ -108,6 +107,7 @@ sources_full = [ "full/It_ipc_pipe_003.cpp", "full/pipe_test_001.cpp", "full/pipe_test_003.cpp", + "full/pipe_test_006.cpp", ] diff --git a/testsuites/unittest/signal/smoke/pipe_test_006.cpp b/testsuites/unittest/signal/full/pipe_test_006.cpp similarity index 100% rename from testsuites/unittest/signal/smoke/pipe_test_006.cpp rename to testsuites/unittest/signal/full/pipe_test_006.cpp diff --git a/testsuites/unittest/signal/signal_test.cpp b/testsuites/unittest/signal/signal_test.cpp index 4794ed42..5fc18d45 100644 --- a/testsuites/unittest/signal/signal_test.cpp +++ b/testsuites/unittest/signal/signal_test.cpp @@ -229,17 +229,6 @@ HWTEST_F(SignalTest, ItPosixPipe005, TestSize.Level0) 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.desc: function for SignalTest @@ -649,5 +638,16 @@ HWTEST_F(SignalTest, ItPosixPipe003, TestSize.Level0) ItPosixPipe003(); } +/* * + * @tc.name: ItPosixPipe006 + * @tc.desc: function for SignalTest + * @tc.type: FUNC + * @tc.require: AR000EEMQ9 + */ +HWTEST_F(SignalTest, ItPosixPipe006, TestSize.Level0) +{ + ItPosixPipe006(); +} + #endif } // namespace OHOS