1 /*	$NetBSD: t_netdb.c,v 1.2 2011/04/25 20:51:14 njoly Exp $ */
2 
3 /*-
4  * Copyright (c) 2011 The NetBSD Foundation, Inc.
5  * All rights reserved.
6  *
7  * This code is derived from software contributed to The NetBSD Foundation
8  * by Jukka Ruohonen.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in the
17  *    documentation and/or other materials provided with the distribution.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  * POSSIBILITY OF SUCH DAMAGE.
30  */
31 #include <sys/cdefs.h>
32 __RCSID("$NetBSD: t_netdb.c,v 1.2 2011/04/25 20:51:14 njoly Exp $");
33 
34 #include <atf-c.h>
35 #include <netdb.h>
36 
37 ATF_TC(netdb_constants);
38 ATF_TC_HEAD(netdb_constants, tc)
39 {
40 	atf_tc_set_md_var(tc, "descr", "Test constants in <netdb.h>");
41 }
42 
43 ATF_TC_BODY(netdb_constants, tc)
44 {
45 	bool fail;
46 
47 	/*
48 	 * The following definitions should be available
49 	 * according to IEEE Std 1003.1-2008, issue 7.
50 	 */
51 	atf_tc_expect_fail("PR standards/44777");
52 
53 	fail = true;
54 
55 #ifdef AI_PASSIVE
56 	fail = false;
57 #endif
58 	if (fail != false)
59 		atf_tc_fail_nonfatal("AI_PASSIVE not defined");
60 
61 	fail = true;
62 
63 #ifdef AI_CANONNAME
64 	fail = false;
65 #endif
66 	if (fail != false)
67 		atf_tc_fail_nonfatal("AI_CANONNAME not defined");
68 
69 	fail = true;
70 
71 #ifdef AI_NUMERICHOST
72 	fail = false;
73 #endif
74 	if (fail != false)
75 		atf_tc_fail_nonfatal("AI_NUMERICHOST not defined");
76 
77 	fail = true;
78 
79 #ifdef AI_NUMERICSERV
80 	fail = false;
81 #endif
82 	if (fail != false)
83 		atf_tc_fail_nonfatal("AI_NUMERICSERV not defined");
84 
85 	fail = true;
86 
87 #ifdef AI_V4MAPPED
88 	fail = false;
89 #endif
90 	if (fail != false)
91 		atf_tc_fail_nonfatal("AI_V4MAPPED not defined");
92 
93 	fail = true;
94 
95 #ifdef AI_ALL
96 	fail = false;
97 #endif
98 	if (fail != false)
99 		atf_tc_fail_nonfatal("AI_ALL not defined");
100 
101 	fail = true;
102 
103 #ifdef AI_ADDRCONFIG
104 	fail = false;
105 #endif
106 	if (fail != false)
107 		atf_tc_fail_nonfatal("AI_ADDRCONFIG not defined");
108 
109 	fail = true;
110 
111 #ifdef NI_NOFQDN
112 	fail = false;
113 #endif
114 	if (fail != false)
115 		atf_tc_fail_nonfatal("NI_NOFQDN not defined");
116 
117 	fail = true;
118 
119 #ifdef NI_NUMERICHOST
120 	fail = false;
121 #endif
122 	if (fail != false)
123 		atf_tc_fail_nonfatal("NI_NUMERICHOST not defined");
124 
125 	fail = true;
126 
127 #ifdef NI_NAMEREQD
128 	fail = false;
129 #endif
130 	if (fail != false)
131 		atf_tc_fail_nonfatal("NI_NAMEREQD not defined");
132 
133 	fail = true;
134 
135 #ifdef NI_NUMERICSERV
136 	fail = false;
137 #endif
138 	if (fail != false)
139 		atf_tc_fail_nonfatal("NI_NUMERICSERV not defined");
140 
141 	fail = true;
142 
143 #ifdef NI_NUMERICSCOPE
144 	fail = false;
145 #endif
146 	if (fail != false)
147 		atf_tc_fail_nonfatal("NI_NUMERICSCOPE not defined");
148 
149 	fail = true;
150 
151 #ifdef NI_DGRAM
152 	fail = false;
153 #endif
154 	if (fail != false)
155 		atf_tc_fail_nonfatal("NI_DGRAM not defined");
156 
157 	fail = true;
158 
159 #ifdef EAI_AGAIN
160 	fail = false;
161 #endif
162 	if (fail != false)
163 		atf_tc_fail_nonfatal("EAI_AGAIN not defined");
164 
165 	fail = true;
166 
167 #ifdef EAI_BADFLAGS
168 	fail = false;
169 #endif
170 	if (fail != false)
171 		atf_tc_fail_nonfatal("EAI_BADFLAGS not defined");
172 
173 	fail = true;
174 
175 #ifdef EAI_FAIL
176 	fail = false;
177 #endif
178 	if (fail != false)
179 		atf_tc_fail_nonfatal("EAI_FAIL not defined");
180 
181 	fail = true;
182 
183 #ifdef EAI_FAMILY
184 	fail = false;
185 #endif
186 	if (fail != false)
187 		atf_tc_fail_nonfatal("EAI_FAMILY not defined");
188 
189 	fail = true;
190 
191 #ifdef EAI_MEMORY
192 	fail = false;
193 #endif
194 	if (fail != false)
195 		atf_tc_fail_nonfatal("EAI_MEMORY not defined");
196 
197 	fail = true;
198 
199 #ifdef EAI_NONAME
200 	fail = false;
201 #endif
202 	if (fail != false)
203 		atf_tc_fail_nonfatal("EAI_NONAME not defined");
204 
205 	fail = true;
206 
207 #ifdef EAI_SERVICE
208 	fail = false;
209 #endif
210 	if (fail != false)
211 		atf_tc_fail_nonfatal("EAI_SERVICE not defined");
212 
213 	fail = true;
214 
215 #ifdef EAI_SOCKTYPE
216 	fail = false;
217 #endif
218 	if (fail != false)
219 		atf_tc_fail_nonfatal("EAI_SOCKTYPE not defined");
220 
221 	fail = true;
222 
223 #ifdef EAI_SYSTEM
224 	fail = false;
225 #endif
226 	if (fail != false)
227 		atf_tc_fail_nonfatal("EAI_SYSTEM not defined");
228 
229 	fail = true;
230 
231 #ifdef EAI_OVERFLOW
232 	fail = false;
233 #endif
234 	if (fail != false)
235 		atf_tc_fail_nonfatal("EAI_OVERFLOW not defined");
236 }
237 
238 ATF_TP_ADD_TCS(tp)
239 {
240 
241 	ATF_TP_ADD_TC(tp, netdb_constants);
242 
243 	return atf_no_error();
244 }
245