• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <arpa/inet.h>
2 #include <endian.h>
3 #include <gtest/gtest.h>
4 using namespace testing::ext;
5 
6 class FortifyTest : public testing::Test {
SetUp()7     void SetUp() override {}
TearDown()8     void TearDown() override {}
9 };
10 
11 /**
12  * @tc.name: __send_chk_001
13  * @tc.desc: Testing that the __send_chk function can be able to transmit data correctly
14  * @tc.type: FUNC
15  **/
16 HWTEST_F(FortifyTest, __send_chk_001, TestSize.Level1)
17 {
18     struct sockaddr_in addr;
19     int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
20     EXPECT_NE(-1, sockfd);
21     addr.sin_family = AF_INET;
22     addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
23     addr.sin_port = htons(1234);
24     EXPECT_NE(-1, connect(sockfd, reinterpret_cast<struct sockaddr*>(&addr), sizeof(addr)));
25     const void* buf[BUFSIZ];
26 
27     int retval = __send_chk(sockfd, buf, 0, sizeof(addr), 0);
28     EXPECT_NE(-1, retval);
29     close(sockfd);
30 }
31 
32 /**
33  * @tc.name: __send_chk_002
34  * @tc.desc: Return -1 when testing for incorrect parameters passed in
35  * @tc.type: FUNC
36  **/
37 HWTEST_F(FortifyTest, __send_chk_002, TestSize.Level1)
38 {
39     int result = __send_chk(-1, nullptr, 0, 0, 0);
40     EXPECT_EQ(-1, result);
41 }