1*973ed75fSchristos /* $NetBSD: t_inttypes.c,v 1.3 2013/10/19 17:44:37 christos Exp $ */
26cbeb05cSjmmv
36cbeb05cSjmmv /*-
46cbeb05cSjmmv * Copyright (c) 2001 The NetBSD Foundation, Inc.
56cbeb05cSjmmv * All rights reserved.
66cbeb05cSjmmv *
76cbeb05cSjmmv * Redistribution and use in source and binary forms, with or without
86cbeb05cSjmmv * modification, are permitted provided that the following conditions
96cbeb05cSjmmv * are met:
106cbeb05cSjmmv * 1. Redistributions of source code must retain the above copyright
116cbeb05cSjmmv * notice, this list of conditions and the following disclaimer.
126cbeb05cSjmmv * 2. Redistributions in binary form must reproduce the above copyright
136cbeb05cSjmmv * notice, this list of conditions and the following disclaimer in the
146cbeb05cSjmmv * documentation and/or other materials provided with the distribution.
156cbeb05cSjmmv *
166cbeb05cSjmmv * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
176cbeb05cSjmmv * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
186cbeb05cSjmmv * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
196cbeb05cSjmmv * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
206cbeb05cSjmmv * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
216cbeb05cSjmmv * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
226cbeb05cSjmmv * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
236cbeb05cSjmmv * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
246cbeb05cSjmmv * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
256cbeb05cSjmmv * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
266cbeb05cSjmmv * POSSIBILITY OF SUCH DAMAGE.
276cbeb05cSjmmv */
286cbeb05cSjmmv
296cbeb05cSjmmv #include <inttypes.h>
306cbeb05cSjmmv #include <stdio.h>
316cbeb05cSjmmv #include <stdlib.h>
326cbeb05cSjmmv
336cbeb05cSjmmv #include <atf-c.h>
346cbeb05cSjmmv
352f0d3880Sjmmv ATF_TC_WITHOUT_HEAD(int_fmtio);
ATF_TC_BODY(int_fmtio,tc)362f0d3880Sjmmv ATF_TC_BODY(int_fmtio, tc)
376cbeb05cSjmmv {
386cbeb05cSjmmv char buf[64];
396cbeb05cSjmmv
40*973ed75fSchristos int8_t i8 = 0;
41*973ed75fSchristos int16_t i16 = 0;
42*973ed75fSchristos int32_t i32 = 0;
43*973ed75fSchristos int64_t i64 = 0;
44*973ed75fSchristos int_least8_t il8 = 0;
45*973ed75fSchristos int_least16_t il16 = 0;
46*973ed75fSchristos int_least32_t il32 = 0;
47*973ed75fSchristos int_least64_t il64 = 0;
48*973ed75fSchristos int_fast8_t if8 = 0;
49*973ed75fSchristos int_fast16_t if16 = 0;
50*973ed75fSchristos int_fast32_t if32 = 0;
51*973ed75fSchristos int_fast64_t if64 = 0;
52*973ed75fSchristos intmax_t im = 0;
53*973ed75fSchristos intptr_t ip = 0;
54*973ed75fSchristos uint8_t ui8 = 0;
55*973ed75fSchristos uint16_t ui16 = 0;
56*973ed75fSchristos uint32_t ui32 = 0;
57*973ed75fSchristos uint64_t ui64 = 0;
58*973ed75fSchristos uint_least8_t uil8 = 0;
59*973ed75fSchristos uint_least16_t uil16 = 0;
60*973ed75fSchristos uint_least32_t uil32 = 0;
61*973ed75fSchristos uint_least64_t uil64 = 0;
62*973ed75fSchristos uint_fast8_t uif8 = 0;
63*973ed75fSchristos uint_fast16_t uif16 = 0;
64*973ed75fSchristos uint_fast32_t uif32 = 0;
65*973ed75fSchristos uint_fast64_t uif64 = 0;
66*973ed75fSchristos uintmax_t uim = 0;
67*973ed75fSchristos uintptr_t uip = 0;
686cbeb05cSjmmv
696cbeb05cSjmmv #define PRINT(fmt, var) \
702f0d3880Sjmmv snprintf(buf, sizeof(buf), "%" fmt, var)
716cbeb05cSjmmv #define SCAN(fmt, var) \
722f0d3880Sjmmv sscanf(buf, "%" fmt, &var)
736cbeb05cSjmmv
746cbeb05cSjmmv PRINT(PRId8, i8);
756cbeb05cSjmmv PRINT(PRId16, i16);
766cbeb05cSjmmv PRINT(PRId32, i32);
776cbeb05cSjmmv PRINT(PRId64, i64);
786cbeb05cSjmmv PRINT(PRIdLEAST8, il8);
796cbeb05cSjmmv PRINT(PRIdLEAST16, il16);
806cbeb05cSjmmv PRINT(PRIdLEAST32, il32);
816cbeb05cSjmmv PRINT(PRIdLEAST64, il64);
826cbeb05cSjmmv PRINT(PRIdFAST8, if8);
836cbeb05cSjmmv PRINT(PRIdFAST16, if16);
846cbeb05cSjmmv PRINT(PRIdFAST32, if32);
856cbeb05cSjmmv PRINT(PRIdFAST64, if64);
866cbeb05cSjmmv PRINT(PRIdMAX, im);
876cbeb05cSjmmv PRINT(PRIdPTR, ip);
886cbeb05cSjmmv
896cbeb05cSjmmv PRINT(PRIi8, i8);
906cbeb05cSjmmv PRINT(PRIi16, i16);
916cbeb05cSjmmv PRINT(PRIi32, i32);
926cbeb05cSjmmv PRINT(PRIi64, i64);
936cbeb05cSjmmv PRINT(PRIiLEAST8, il8);
946cbeb05cSjmmv PRINT(PRIiLEAST16, il16);
956cbeb05cSjmmv PRINT(PRIiLEAST32, il32);
966cbeb05cSjmmv PRINT(PRIiLEAST64, il64);
976cbeb05cSjmmv PRINT(PRIiFAST8, if8);
986cbeb05cSjmmv PRINT(PRIiFAST16, if16);
996cbeb05cSjmmv PRINT(PRIiFAST32, if32);
1006cbeb05cSjmmv PRINT(PRIiFAST64, if64);
1016cbeb05cSjmmv PRINT(PRIiMAX, im);
1026cbeb05cSjmmv PRINT(PRIiPTR, ip);
1036cbeb05cSjmmv
1046cbeb05cSjmmv PRINT(PRIo8, ui8);
1056cbeb05cSjmmv PRINT(PRIo16, ui16);
1066cbeb05cSjmmv PRINT(PRIo32, ui32);
1076cbeb05cSjmmv PRINT(PRIo64, ui64);
1086cbeb05cSjmmv PRINT(PRIoLEAST8, uil8);
1096cbeb05cSjmmv PRINT(PRIoLEAST16, uil16);
1106cbeb05cSjmmv PRINT(PRIoLEAST32, uil32);
1116cbeb05cSjmmv PRINT(PRIoLEAST64, uil64);
1126cbeb05cSjmmv PRINT(PRIoFAST8, uif8);
1136cbeb05cSjmmv PRINT(PRIoFAST16, uif16);
1146cbeb05cSjmmv PRINT(PRIoFAST32, uif32);
1156cbeb05cSjmmv PRINT(PRIoFAST64, uif64);
1166cbeb05cSjmmv PRINT(PRIoMAX, uim);
1176cbeb05cSjmmv PRINT(PRIoPTR, uip);
1186cbeb05cSjmmv
1196cbeb05cSjmmv PRINT(PRIu8, ui8);
1206cbeb05cSjmmv PRINT(PRIu16, ui16);
1216cbeb05cSjmmv PRINT(PRIu32, ui32);
1226cbeb05cSjmmv PRINT(PRIu64, ui64);
1236cbeb05cSjmmv PRINT(PRIuLEAST8, uil8);
1246cbeb05cSjmmv PRINT(PRIuLEAST16, uil16);
1256cbeb05cSjmmv PRINT(PRIuLEAST32, uil32);
1266cbeb05cSjmmv PRINT(PRIuLEAST64, uil64);
1276cbeb05cSjmmv PRINT(PRIuFAST8, uif8);
1286cbeb05cSjmmv PRINT(PRIuFAST16, uif16);
1296cbeb05cSjmmv PRINT(PRIuFAST32, uif32);
1306cbeb05cSjmmv PRINT(PRIuFAST64, uif64);
1316cbeb05cSjmmv PRINT(PRIuMAX, uim);
1326cbeb05cSjmmv PRINT(PRIuPTR, uip);
1336cbeb05cSjmmv
1346cbeb05cSjmmv PRINT(PRIx8, ui8);
1356cbeb05cSjmmv PRINT(PRIx16, ui16);
1366cbeb05cSjmmv PRINT(PRIx32, ui32);
1376cbeb05cSjmmv PRINT(PRIx64, ui64);
1386cbeb05cSjmmv PRINT(PRIxLEAST8, uil8);
1396cbeb05cSjmmv PRINT(PRIxLEAST16, uil16);
1406cbeb05cSjmmv PRINT(PRIxLEAST32, uil32);
1416cbeb05cSjmmv PRINT(PRIxLEAST64, uil64);
1426cbeb05cSjmmv PRINT(PRIxFAST8, uif8);
1436cbeb05cSjmmv PRINT(PRIxFAST16, uif16);
1446cbeb05cSjmmv PRINT(PRIxFAST32, uif32);
1456cbeb05cSjmmv PRINT(PRIxFAST64, uif64);
1466cbeb05cSjmmv PRINT(PRIxMAX, uim);
1476cbeb05cSjmmv PRINT(PRIxPTR, uip);
1486cbeb05cSjmmv
1496cbeb05cSjmmv PRINT(PRIX8, ui8);
1506cbeb05cSjmmv PRINT(PRIX16, ui16);
1516cbeb05cSjmmv PRINT(PRIX32, ui32);
1526cbeb05cSjmmv PRINT(PRIX64, ui64);
1536cbeb05cSjmmv PRINT(PRIXLEAST8, uil8);
1546cbeb05cSjmmv PRINT(PRIXLEAST16, uil16);
1556cbeb05cSjmmv PRINT(PRIXLEAST32, uil32);
1566cbeb05cSjmmv PRINT(PRIXLEAST64, uil64);
1576cbeb05cSjmmv PRINT(PRIXFAST8, uif8);
1586cbeb05cSjmmv PRINT(PRIXFAST16, uif16);
1596cbeb05cSjmmv PRINT(PRIXFAST32, uif32);
1606cbeb05cSjmmv PRINT(PRIXFAST64, uif64);
1616cbeb05cSjmmv PRINT(PRIXMAX, uim);
1626cbeb05cSjmmv PRINT(PRIXPTR, uip);
1636cbeb05cSjmmv
1646cbeb05cSjmmv
1656cbeb05cSjmmv SCAN(SCNd8, i8);
1666cbeb05cSjmmv SCAN(SCNd16, i16);
1676cbeb05cSjmmv SCAN(SCNd32, i32);
1686cbeb05cSjmmv SCAN(SCNd64, i64);
1696cbeb05cSjmmv SCAN(SCNdLEAST8, il8);
1706cbeb05cSjmmv SCAN(SCNdLEAST16, il16);
1716cbeb05cSjmmv SCAN(SCNdLEAST32, il32);
1726cbeb05cSjmmv SCAN(SCNdLEAST64, il64);
1736cbeb05cSjmmv SCAN(SCNdFAST8, if8);
1746cbeb05cSjmmv SCAN(SCNdFAST16, if16);
1756cbeb05cSjmmv SCAN(SCNdFAST32, if32);
1766cbeb05cSjmmv SCAN(SCNdFAST64, if64);
1776cbeb05cSjmmv SCAN(SCNdMAX, im);
1786cbeb05cSjmmv SCAN(SCNdPTR, ip);
1796cbeb05cSjmmv
1806cbeb05cSjmmv SCAN(SCNi8, i8);
1816cbeb05cSjmmv SCAN(SCNi16, i16);
1826cbeb05cSjmmv SCAN(SCNi32, i32);
1836cbeb05cSjmmv SCAN(SCNi64, i64);
1846cbeb05cSjmmv SCAN(SCNiLEAST8, il8);
1856cbeb05cSjmmv SCAN(SCNiLEAST16, il16);
1866cbeb05cSjmmv SCAN(SCNiLEAST32, il32);
1876cbeb05cSjmmv SCAN(SCNiLEAST64, il64);
1886cbeb05cSjmmv SCAN(SCNiFAST8, if8);
1896cbeb05cSjmmv SCAN(SCNiFAST16, if16);
1906cbeb05cSjmmv SCAN(SCNiFAST32, if32);
1916cbeb05cSjmmv SCAN(SCNiFAST64, if64);
1926cbeb05cSjmmv SCAN(SCNiMAX, im);
1936cbeb05cSjmmv SCAN(SCNiPTR, ip);
1946cbeb05cSjmmv
1956cbeb05cSjmmv SCAN(SCNo8, ui8);
1966cbeb05cSjmmv SCAN(SCNo16, ui16);
1976cbeb05cSjmmv SCAN(SCNo32, ui32);
1986cbeb05cSjmmv SCAN(SCNo64, ui64);
1996cbeb05cSjmmv SCAN(SCNoLEAST8, uil8);
2006cbeb05cSjmmv SCAN(SCNoLEAST16, uil16);
2016cbeb05cSjmmv SCAN(SCNoLEAST32, uil32);
2026cbeb05cSjmmv SCAN(SCNoLEAST64, uil64);
2036cbeb05cSjmmv SCAN(SCNoFAST8, uif8);
2046cbeb05cSjmmv SCAN(SCNoFAST16, uif16);
2056cbeb05cSjmmv SCAN(SCNoFAST32, uif32);
2066cbeb05cSjmmv SCAN(SCNoFAST64, uif64);
2076cbeb05cSjmmv SCAN(SCNoMAX, uim);
2086cbeb05cSjmmv SCAN(SCNoPTR, uip);
2096cbeb05cSjmmv
2106cbeb05cSjmmv SCAN(SCNu8, ui8);
2116cbeb05cSjmmv SCAN(SCNu16, ui16);
2126cbeb05cSjmmv SCAN(SCNu32, ui32);
2136cbeb05cSjmmv SCAN(SCNu64, ui64);
2146cbeb05cSjmmv SCAN(SCNuLEAST8, uil8);
2156cbeb05cSjmmv SCAN(SCNuLEAST16, uil16);
2166cbeb05cSjmmv SCAN(SCNuLEAST32, uil32);
2176cbeb05cSjmmv SCAN(SCNuLEAST64, uil64);
2186cbeb05cSjmmv SCAN(SCNuFAST8, uif8);
2196cbeb05cSjmmv SCAN(SCNuFAST16, uif16);
2206cbeb05cSjmmv SCAN(SCNuFAST32, uif32);
2216cbeb05cSjmmv SCAN(SCNuFAST64, uif64);
2226cbeb05cSjmmv SCAN(SCNuMAX, uim);
2236cbeb05cSjmmv SCAN(SCNuPTR, uip);
2246cbeb05cSjmmv
2256cbeb05cSjmmv SCAN(SCNx8, ui8);
2266cbeb05cSjmmv SCAN(SCNx16, ui16);
2276cbeb05cSjmmv SCAN(SCNx32, ui32);
2286cbeb05cSjmmv SCAN(SCNx64, ui64);
2296cbeb05cSjmmv SCAN(SCNxLEAST8, uil8);
2306cbeb05cSjmmv SCAN(SCNxLEAST16, uil16);
2316cbeb05cSjmmv SCAN(SCNxLEAST32, uil32);
2326cbeb05cSjmmv SCAN(SCNxLEAST64, uil64);
2336cbeb05cSjmmv SCAN(SCNxFAST8, uif8);
2346cbeb05cSjmmv SCAN(SCNxFAST16, uif16);
2356cbeb05cSjmmv SCAN(SCNxFAST32, uif32);
2366cbeb05cSjmmv SCAN(SCNxFAST64, uif64);
2376cbeb05cSjmmv SCAN(SCNxMAX, uim);
2386cbeb05cSjmmv SCAN(SCNxPTR, uip);
2396cbeb05cSjmmv
2406cbeb05cSjmmv #undef SCAN
2416cbeb05cSjmmv #undef PRINT
2426cbeb05cSjmmv }
2436cbeb05cSjmmv
ATF_TP_ADD_TCS(tp)2446cbeb05cSjmmv ATF_TP_ADD_TCS(tp)
2456cbeb05cSjmmv {
2466cbeb05cSjmmv
2472f0d3880Sjmmv ATF_TP_ADD_TC(tp, int_fmtio);
2486cbeb05cSjmmv
2496cbeb05cSjmmv return atf_no_error();
2506cbeb05cSjmmv }
251