1*24732d67SEnji Cooper /*
2*24732d67SEnji Cooper * Copyright 2004 The Aerospace Corporation. All rights reserved.
3*24732d67SEnji Cooper *
4*24732d67SEnji Cooper * Redistribution and use in source and binary forms, with or without
5*24732d67SEnji Cooper * modification, are permitted provided that the following conditions
6*24732d67SEnji Cooper * are met:
7*24732d67SEnji Cooper *
8*24732d67SEnji Cooper * 1. Redistributions of source code must retain the above copyright
9*24732d67SEnji Cooper * notice, this list of conditions, and the following disclaimer.
10*24732d67SEnji Cooper * 2. Redistributions in binary form must reproduce the above copyright
11*24732d67SEnji Cooper * notice, this list of conditions, and the following disclaimer in the
12*24732d67SEnji Cooper * documentation and/or other materials provided with the distribution.
13*24732d67SEnji Cooper * 3. The name of The Aerospace Corporation may not be used to endorse or
14*24732d67SEnji Cooper * promote products derived from this software.
15*24732d67SEnji Cooper *
16*24732d67SEnji Cooper * THIS SOFTWARE IS PROVIDED BY THE AEROSPACE CORPORATION "AS IS" AND
17*24732d67SEnji Cooper * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18*24732d67SEnji Cooper * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19*24732d67SEnji Cooper * ARE DISCLAIMED. IN NO EVENT SHALL THE AEROSPACE CORPORATION BE LIABLE
20*24732d67SEnji Cooper * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21*24732d67SEnji Cooper * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22*24732d67SEnji Cooper * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23*24732d67SEnji Cooper * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24*24732d67SEnji Cooper * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25*24732d67SEnji Cooper * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26*24732d67SEnji Cooper * SUCH DAMAGE.
27*24732d67SEnji Cooper */
28*24732d67SEnji Cooper
29*24732d67SEnji Cooper #include <sys/types.h>
30*24732d67SEnji Cooper #include <sys/eui64.h>
31*24732d67SEnji Cooper #include <stdio.h>
32*24732d67SEnji Cooper #include <string.h>
33*24732d67SEnji Cooper
34*24732d67SEnji Cooper #include <atf-c.h>
35*24732d67SEnji Cooper
36*24732d67SEnji Cooper #include "test-eui64.h"
37*24732d67SEnji Cooper
38*24732d67SEnji Cooper static void
test_str(const char * str,const struct eui64 * eui)39*24732d67SEnji Cooper test_str(const char *str, const struct eui64 *eui)
40*24732d67SEnji Cooper {
41*24732d67SEnji Cooper char a[EUI64_SIZ];
42*24732d67SEnji Cooper
43*24732d67SEnji Cooper ATF_REQUIRE_MSG(eui64_ntoa(&test_eui64_id, a, sizeof(a)) == 0,
44*24732d67SEnji Cooper "eui64_ntoa failed");
45*24732d67SEnji Cooper ATF_REQUIRE_MSG(strcmp(a, test_eui64_id_ascii) == 0,
46*24732d67SEnji Cooper "the strings mismatched: `%s` != `%s`", a, test_eui64_id_ascii);
47*24732d67SEnji Cooper }
48*24732d67SEnji Cooper
49*24732d67SEnji Cooper ATF_TC_WITHOUT_HEAD(id_ascii);
ATF_TC_BODY(id_ascii,tc)50*24732d67SEnji Cooper ATF_TC_BODY(id_ascii, tc)
51*24732d67SEnji Cooper {
52*24732d67SEnji Cooper
53*24732d67SEnji Cooper test_str(test_eui64_id_ascii, &test_eui64_id);
54*24732d67SEnji Cooper }
55*24732d67SEnji Cooper
ATF_TP_ADD_TCS(tp)56*24732d67SEnji Cooper ATF_TP_ADD_TCS(tp)
57*24732d67SEnji Cooper {
58*24732d67SEnji Cooper
59*24732d67SEnji Cooper ATF_TP_ADD_TC(tp, id_ascii);
60*24732d67SEnji Cooper
61*24732d67SEnji Cooper return (atf_no_error());
62*24732d67SEnji Cooper }
63