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