• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 }