• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <gtest/gtest.h>
2 #include <sys/mman.h>
3 
4 using namespace testing::ext;
5 
6 class HookMunmapTest : public testing::Test {
SetUp()7     void SetUp() override {}
TearDown()8     void TearDown() override {}
9 };
10 
11 #define MMAP_SIZE 2048
12 
13 /**
14  * @tc.name: munmap_001
15  * @tc.desc: Verify the use of the munmap function to release memory, and expect a return value of 0 to indicate
16  *           successful release of the specified memory block.
17  * @tc.type: FUNC
18  */
19 HWTEST_F(HookMunmapTest, munmap_001, TestSize.Level1)
20 {
21     void* ptr = mmap(nullptr, MMAP_SIZE, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0);
22     ASSERT_NE(MAP_FAILED, ptr);
23     EXPECT_TRUE(munmap(ptr, MMAP_SIZE) == 0);
24 }
25 
26 /**
27  * @tc.name: munmap_002
28  * @tc.desc: Verify the use of the munmap function to release memory, and expect a return value of 0 to indicate
29  *           successful release of the specified memory block.
30  * @tc.type: FUNC
31  */
32 HWTEST_F(HookMunmapTest, munmap_002, TestSize.Level1)
33 {
34     void* ptr = mmap64(nullptr, MMAP_SIZE, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0);
35     ASSERT_NE(MAP_FAILED, ptr);
36     EXPECT_TRUE(munmap(ptr, MMAP_SIZE) == 0);
37 }