1 #include <gtest/gtest.h> 2 #include <pthread.h> 3 #include <threads.h> 4 5 using namespace testing::ext; 6 class ThreadBarrierTest : public testing::Test { 7 protected: 8 pthread_barrierattr_t barrierAttrMusl; 9 int pthreadBarrierShareAttr; 10 SetUp()11 void SetUp() override 12 { 13 EXPECT_EQ(0, pthread_barrierattr_init(&barrierAttrMusl)); 14 } TearDown()15 void TearDown() override 16 { 17 EXPECT_EQ(0, pthread_barrierattr_destroy(&barrierAttrMusl)); 18 } 19 }; 20 21 /** 22 * @tc.name: pthread_barrierattr_setpshared_001 23 * @tc.desc: Obtain correct initial attribute judgment, set PTHREAD_PROCESS_SHARED attribute to obtain equal judgment, 24 * and destroy attribute successfully 25 * @tc.type: FUNC 26 * */ 27 HWTEST_F(ThreadBarrierTest, pthread_barrierattr_setpshared_001, TestSize.Level1) 28 { 29 EXPECT_EQ(0, pthread_barrierattr_setpshared(&barrierAttrMusl, PTHREAD_PROCESS_SHARED)); 30 EXPECT_EQ(0, pthread_barrierattr_getpshared(&barrierAttrMusl, &pthreadBarrierShareAttr)); 31 EXPECT_EQ(PTHREAD_PROCESS_SHARED, pthreadBarrierShareAttr); 32 EXPECT_EQ(EINVAL, pthread_barrierattr_setpshared(&barrierAttrMusl, -1)); 33 EXPECT_EQ(0, pthread_barrierattr_getpshared(&barrierAttrMusl, &pthreadBarrierShareAttr)); 34 EXPECT_EQ(PTHREAD_PROCESS_SHARED, pthreadBarrierShareAttr); 35 } 36 37 /** 38 * @tc.name: pthread_barrierattr_getpshared_001 39 * @tc.desc: Obtain correct initial attribute judgment, set PTHREAD_PROCESS_SHARED attribute to obtain equal judgment, 40 * and destroy attribute successfully 41 * @tc.type: FUNC 42 * */ 43 HWTEST_F(ThreadBarrierTest, pthread_barrierattr_getpshared_001, TestSize.Level1) 44 { 45 EXPECT_EQ(0, pthread_barrierattr_getpshared(&barrierAttrMusl, &pthreadBarrierShareAttr)); 46 EXPECT_EQ(PTHREAD_PROCESS_PRIVATE, pthreadBarrierShareAttr); 47 }