• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (c) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *   http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <sys/socket.h>
17 #include "functionalext.h"
18 #define IPPROTO_IP 0
19 #define IP_HDRINCL 3
20 #define IP_TTL 2
21 #define TCP_MAXSEG 2
22 #define TCP_NODELAY 1
23 #define IP_TOS 1
24 #define IP_OPTIONS 4
25 
26 /**
27  * @tc.name      : getsockopt_0100
28  * @tc.desc      : SOL_SOCKET,SO_DEBUG
29  * @tc.level     : Level 0
30  */
getsockopt_0100(void)31 void getsockopt_0100(void)
32 {
33     int optval;
34     int optlen = 0;
35     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
36     int content = getsockopt(sockfd, SOL_SOCKET, SO_DEBUG, &optval, (socklen_t *)(&optlen));
37     EXPECT_EQ("getsockopt_0100", content, 0);
38 }
39 
40 /**
41  * @tc.name      : getsockopt_0200
42  * @tc.desc      : SOL_SOCKET,SO_REUSEADDR
43  * @tc.level     : Level 0
44  */
getsockopt_0200(void)45 void getsockopt_0200(void)
46 {
47     int optval;
48     int optlen = 0;
49     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
50     int content = getsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &optval, (socklen_t *)(&optlen));
51     EXPECT_EQ("getsockopt_0200", content, 0);
52 }
53 
54 /**
55  * @tc.name      : getsockopt_0300
56  * @tc.desc      : SOL_SOCKET,SO_TYPE
57  * @tc.level     : Level 0
58  */
getsockopt_0300(void)59 void getsockopt_0300(void)
60 {
61     int optval;
62     int optlen = 0;
63     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
64     int content = getsockopt(sockfd, SOL_SOCKET, SO_TYPE, &optval, (socklen_t *)(&optlen));
65     EXPECT_EQ("getsockopt_0300", content, 0);
66 }
67 
68 /**
69  * @tc.name      : getsockopt_0400
70  * @tc.desc      : SOL_SOCKET,SO_ERROR
71  * @tc.level     : Level 0
72  */
getsockopt_0400(void)73 void getsockopt_0400(void)
74 {
75     int optval;
76     int optlen = 0;
77     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
78     int content = getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &optval, (socklen_t *)(&optlen));
79     EXPECT_EQ("getsockopt_0400", content, 0);
80 }
81 
82 /**
83  * @tc.name      : getsockopt_0500
84  * @tc.desc      : SOL_SOCKET,SO_DONTROUTE
85  * @tc.level     : Level 0
86  */
getsockopt_0500(void)87 void getsockopt_0500(void)
88 {
89     int optval;
90     int optlen = 0;
91     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
92     int content = getsockopt(sockfd, SOL_SOCKET, SO_DONTROUTE, &optval, (socklen_t *)(&optlen));
93     EXPECT_EQ("getsockopt_0500", content, 0);
94 }
95 
96 /**
97  * @tc.name      : getsockopt_0600
98  * @tc.desc      : SOL_SOCKET,SO_BROADCAST
99  * @tc.level     : Level 0
100  */
getsockopt_0600(void)101 void getsockopt_0600(void)
102 {
103     int optval;
104     int optlen = 0;
105     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
106     int content = getsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &optval, (socklen_t *)(&optlen));
107     EXPECT_EQ("getsockopt_0600", content, 0);
108 }
109 
110 /**
111  * @tc.name      : getsockopt_0700
112  * @tc.desc      : SOL_SOCKET,SO_SNDBUF
113  * @tc.level     : Level 0
114  */
getsockopt_0700(void)115 void getsockopt_0700(void)
116 {
117     int optval;
118     int optlen = 0;
119     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
120     int content = getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, &optval, (socklen_t *)(&optlen));
121     EXPECT_EQ("getsockopt_0700", content, 0);
122 }
123 
124 /**
125  * @tc.name      : getsockopt_0800
126  * @tc.desc      : SOL_SOCKET,SO_RCVBUF
127  * @tc.level     : Level 0
128  */
getsockopt_0800(void)129 void getsockopt_0800(void)
130 {
131     int optval;
132     int optlen = 0;
133     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
134     int content = getsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, &optval, (socklen_t *)(&optlen));
135     EXPECT_EQ("getsockopt_0800", content, 0);
136 }
137 
138 /**
139  * @tc.name      : getsockopt_0900
140  * @tc.desc      : SOL_SOCKET,SO_KEEPALIVE
141  * @tc.level     : Level 0
142  */
getsockopt_0900(void)143 void getsockopt_0900(void)
144 {
145     int optval;
146     int optlen = 0;
147     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
148     int content = getsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, &optval, (socklen_t *)(&optlen));
149     EXPECT_EQ("getsockopt_0900", content, 0);
150 }
151 
152 /**
153  * @tc.name      : getsockopt_1000
154  * @tc.desc      : SOL_SOCKET,SO_OOBINLINE
155  * @tc.level     : Level 0
156  */
getsockopt_1000(void)157 void getsockopt_1000(void)
158 {
159     int optval;
160     int optlen = 0;
161     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
162     int content = getsockopt(sockfd, SOL_SOCKET, SO_OOBINLINE, &optval, (socklen_t *)(&optlen));
163     EXPECT_EQ("getsockopt_1000", content, 0);
164 }
165 
166 /**
167  * @tc.name      : getsockopt_1100
168  * @tc.desc      : SOL_SOCKET,SO_LINGER
169  * @tc.level     : Level 0
170  */
getsockopt_1100(void)171 void getsockopt_1100(void)
172 {
173     int optval;
174     int optlen = 0;
175     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
176     int content = getsockopt(sockfd, SOL_SOCKET, SO_LINGER, &optval, (socklen_t *)(&optlen));
177     EXPECT_EQ("getsockopt_1100", content, 0);
178 }
179 
180 /**
181  * @tc.name      : getsockopt_1200
182  * @tc.desc      : SOL_SOCKET,SO_RCVLOWAT
183  * @tc.level     : Level 0
184  */
getsockopt_1200(void)185 void getsockopt_1200(void)
186 {
187     int optval;
188     int optlen = 0;
189     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
190     int content = getsockopt(sockfd, SOL_SOCKET, SO_RCVLOWAT, &optval, (socklen_t *)(&optlen));
191     EXPECT_EQ("getsockopt_1200", content, 0);
192 }
193 
194 /**
195  * @tc.name      : getsockopt_1300
196  * @tc.desc      : SOL_SOCKET,SO_SNDLOWAT
197  * @tc.level     : Level 0
198  */
getsockopt_1300(void)199 void getsockopt_1300(void)
200 {
201     int optval;
202     int optlen = 0;
203     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
204     int content = getsockopt(sockfd, SOL_SOCKET, SO_SNDLOWAT, &optval, (socklen_t *)(&optlen));
205     EXPECT_EQ("getsockopt_1300", content, 0);
206 }
207 
208 /**
209  * @tc.name      : getsockopt_1400
210  * @tc.desc      : SOL_SOCKET,O_RCVTIMEO
211  * @tc.level     : Level 1
212  */
getsockopt_1400(void)213 void getsockopt_1400(void)
214 {
215     int optval;
216     int optlen = 0;
217     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
218     int content = getsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &optval, (socklen_t *)(&optlen));
219     EXPECT_EQ("getsockopt_1400", content, 0);
220 }
221 
222 /**
223  * @tc.name      : getsockopt_1500
224  * @tc.desc      : SOL_SOCKET,SO_SNDTIMEO
225  * @tc.level     : Level 1
226  */
getsockopt_1500(void)227 void getsockopt_1500(void)
228 {
229     int optval;
230     int optlen = 0;
231     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
232     int content = getsockopt(sockfd, SOL_SOCKET, SO_SNDTIMEO, &optval, (socklen_t *)(&optlen));
233     EXPECT_EQ("getsockopt_1500", content, 0);
234 }
235 
236 /**
237  * @tc.name      : getsockopt_1600
238  * @tc.desc      : SOL_SOCKET,SO_TIMESTAMP
239  * @tc.level     : Level 1
240  */
getsockopt_1600(void)241 void getsockopt_1600(void)
242 {
243     int optval;
244     int optlen = 0;
245     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
246     int content = getsockopt(sockfd, SOL_SOCKET, SO_TIMESTAMP, &optval, (socklen_t *)(&optlen));
247     EXPECT_EQ("getsockopt_1600", content, 0);
248 }
249 
250 /**
251  * @tc.name      : getsockopt_1700
252  * @tc.desc      : SOL_SOCKET,SO_TIMESTAMPNS
253  * @tc.level     : Level 1
254  */
getsockopt_1700(void)255 void getsockopt_1700(void)
256 {
257     int optval;
258     int optlen = 0;
259     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
260     int content = getsockopt(sockfd, SOL_SOCKET, SO_TIMESTAMPNS, &optval, (socklen_t *)(&optlen));
261     EXPECT_EQ("getsockopt_1700", content, 0);
262 }
263 
264 /**
265  * @tc.name      : getsockopt_1800
266  * @tc.desc      : IPPROTO_IP,IP_HDRINCL
267  * @tc.level     : Level 1
268  */
getsockopt_1800(void)269 void getsockopt_1800(void)
270 {
271     int optval;
272     int optlen = 0;
273     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
274     int content = getsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &optval, (socklen_t *)(&optlen));
275     EXPECT_EQ("getsockopt_1800", content, 0);
276 }
277 
278 /**
279  * @tc.name      : getsockopt_1900
280  * @tc.desc      : IPPROTO_IP,IP_OPTIONS
281  * @tc.level     : Level 1
282  */
getsockopt_1900(void)283 void getsockopt_1900(void)
284 {
285     int optval;
286     int optlen = 0;
287     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
288     int content = getsockopt(sockfd, IPPROTO_IP, IP_OPTIONS, &optval, (socklen_t *)(&optlen));
289     EXPECT_EQ("getsockopt_1900", content, 0);
290 }
291 
292 /**
293  * @tc.name      : getsockopt_2000
294  * @tc.desc      : IPPROTO_IP,IP_TOS
295  * @tc.level     : Level 1
296  */
getsockopt_2000(void)297 void getsockopt_2000(void)
298 {
299     int optval;
300     int optlen = 0;
301     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
302     int content = getsockopt(sockfd, IPPROTO_IP, IP_TOS, &optval, (socklen_t *)(&optlen));
303     EXPECT_EQ("getsockopt_2000", content, 0);
304 }
305 
306 /**
307  * @tc.name      : getsockopt_2100
308  * @tc.desc      : IPPROTO_IP,IP_TTL
309  * @tc.level     : Level 1
310  */
getsockopt_2100(void)311 void getsockopt_2100(void)
312 {
313     int optval;
314     int optlen = 0;
315     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
316     int content = getsockopt(sockfd, IPPROTO_IP, IP_TTL, &optval, (socklen_t *)(&optlen));
317     EXPECT_EQ("getsockopt_2100", content, 0);
318 }
319 
320 /**
321  * @tc.name      : getsockopt_2200
322  * @tc.desc      : IPPROTO_IP,TCP_MAXSEGs
323  * @tc.level     : Level 1
324  */
getsockopt_2200(void)325 void getsockopt_2200(void)
326 {
327     int optval;
328     int optlen = 0;
329     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
330     int content = getsockopt(sockfd, IPPROTO_IP, TCP_MAXSEG, &optval, (socklen_t *)(&optlen));
331     EXPECT_EQ("getsockopt_2200", content, 0);
332 }
333 
334 /**
335  * @tc.name      : getsockopt_2300
336  * @tc.desc      : IPPROTO_IP,TCP_NODELAY
337  * @tc.level     : Level 1
338  */
getsockopt_2300(void)339 void getsockopt_2300(void)
340 {
341     int optval;
342     int optlen = 0;
343     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
344     int content = getsockopt(sockfd, IPPROTO_IP, TCP_NODELAY, &optval, (socklen_t *)(&optlen));
345     EXPECT_EQ("getsockopt_2200", content, 0);
346 }
347 
348 /**
349  * @tc.name      : getsockopt_2400
350  * @tc.desc      : SOL_SOCKET,SO_RCVBUF
351  * @tc.level     : Level 2
352  */
getsockopt_2400(void)353 void getsockopt_2400(void)
354 {
355     int optval;
356     int optlen = 0;
357     int content = getsockopt(0, SOL_SOCKET, SO_RCVBUF, &optval, (socklen_t *)(&optlen));
358     EXPECT_EQ("getsockopt_2400", content, -1);
359 }
360 
361 /**
362  * @tc.name      : getsockopt_2500
363  * @tc.desc      : SOL_SOCKET,SO_DEBUG NULL
364  * @tc.level     : Level 2
365  */
getsockopt_2500(void)366 void getsockopt_2500(void)
367 {
368     int optval;
369     int sockfd = socket(AF_INET, SOCK_STREAM, 0);
370     int content = getsockopt(sockfd, SOL_SOCKET, SO_DEBUG, &optval, NULL);
371     EXPECT_EQ("getsockopt_2500", content, -1);
372 }
373 
main(void)374 int main(void)
375 {
376     getsockopt_0100();
377     getsockopt_0200();
378     getsockopt_0300();
379     getsockopt_0400();
380     getsockopt_0500();
381     getsockopt_0600();
382     getsockopt_0700();
383     getsockopt_0800();
384     getsockopt_0900();
385     getsockopt_1000();
386     getsockopt_1100();
387     getsockopt_1200();
388     getsockopt_1300();
389     getsockopt_1400();
390     getsockopt_1500();
391     getsockopt_1600();
392     getsockopt_1700();
393     getsockopt_1800();
394     getsockopt_1900();
395     getsockopt_2000();
396     getsockopt_2100();
397     getsockopt_2200();
398     getsockopt_2300();
399     getsockopt_2400();
400     getsockopt_2500();
401     return t_status;
402 }
403