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
37ATF_TC(netdb_constants);
38ATF_TC_HEAD(netdb_constants, tc)
39{
40	atf_tc_set_md_var(tc, "descr", "Test constants in <netdb.h>");
41}
42
43ATF_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
238ATF_TP_ADD_TCS(tp)
239{
240
241	ATF_TP_ADD_TC(tp, netdb_constants);
242
243	return atf_no_error();
244}
245