1272343Sngie/* $NetBSD: t_inttypes.c,v 1.3 2013/10/19 17:44:37 christos Exp $ */ 2272343Sngie 3272343Sngie/*- 4272343Sngie * Copyright (c) 2001 The NetBSD Foundation, Inc. 5272343Sngie * All rights reserved. 6272343Sngie * 7272343Sngie * Redistribution and use in source and binary forms, with or without 8272343Sngie * modification, are permitted provided that the following conditions 9272343Sngie * are met: 10272343Sngie * 1. Redistributions of source code must retain the above copyright 11272343Sngie * notice, this list of conditions and the following disclaimer. 12272343Sngie * 2. Redistributions in binary form must reproduce the above copyright 13272343Sngie * notice, this list of conditions and the following disclaimer in the 14272343Sngie * documentation and/or other materials provided with the distribution. 15272343Sngie * 16272343Sngie * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 17272343Sngie * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 18272343Sngie * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19272343Sngie * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 20272343Sngie * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21272343Sngie * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22272343Sngie * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23272343Sngie * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24272343Sngie * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25272343Sngie * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26272343Sngie * POSSIBILITY OF SUCH DAMAGE. 27272343Sngie */ 28272343Sngie 29272343Sngie#include <inttypes.h> 30272343Sngie#include <stdio.h> 31272343Sngie#include <stdlib.h> 32272343Sngie 33272343Sngie#include <atf-c.h> 34272343Sngie 35272343SngieATF_TC_WITHOUT_HEAD(int_fmtio); 36272343SngieATF_TC_BODY(int_fmtio, tc) 37272343Sngie{ 38272343Sngie char buf[64]; 39272343Sngie 40272343Sngie int8_t i8 = 0; 41272343Sngie int16_t i16 = 0; 42272343Sngie int32_t i32 = 0; 43272343Sngie int64_t i64 = 0; 44272343Sngie int_least8_t il8 = 0; 45272343Sngie int_least16_t il16 = 0; 46272343Sngie int_least32_t il32 = 0; 47272343Sngie int_least64_t il64 = 0; 48272343Sngie int_fast8_t if8 = 0; 49272343Sngie int_fast16_t if16 = 0; 50272343Sngie int_fast32_t if32 = 0; 51272343Sngie int_fast64_t if64 = 0; 52272343Sngie intmax_t im = 0; 53272343Sngie intptr_t ip = 0; 54272343Sngie uint8_t ui8 = 0; 55272343Sngie uint16_t ui16 = 0; 56272343Sngie uint32_t ui32 = 0; 57272343Sngie uint64_t ui64 = 0; 58272343Sngie uint_least8_t uil8 = 0; 59272343Sngie uint_least16_t uil16 = 0; 60272343Sngie uint_least32_t uil32 = 0; 61272343Sngie uint_least64_t uil64 = 0; 62272343Sngie uint_fast8_t uif8 = 0; 63272343Sngie uint_fast16_t uif16 = 0; 64272343Sngie uint_fast32_t uif32 = 0; 65272343Sngie uint_fast64_t uif64 = 0; 66272343Sngie uintmax_t uim = 0; 67272343Sngie uintptr_t uip = 0; 68272343Sngie 69272343Sngie#define PRINT(fmt, var) \ 70272343Sngie snprintf(buf, sizeof(buf), "%" fmt, var) 71272343Sngie#define SCAN(fmt, var) \ 72272343Sngie sscanf(buf, "%" fmt, &var) 73272343Sngie 74272343Sngie PRINT(PRId8, i8); 75272343Sngie PRINT(PRId16, i16); 76272343Sngie PRINT(PRId32, i32); 77272343Sngie PRINT(PRId64, i64); 78272343Sngie PRINT(PRIdLEAST8, il8); 79272343Sngie PRINT(PRIdLEAST16, il16); 80272343Sngie PRINT(PRIdLEAST32, il32); 81272343Sngie PRINT(PRIdLEAST64, il64); 82272343Sngie PRINT(PRIdFAST8, if8); 83272343Sngie PRINT(PRIdFAST16, if16); 84272343Sngie PRINT(PRIdFAST32, if32); 85272343Sngie PRINT(PRIdFAST64, if64); 86272343Sngie PRINT(PRIdMAX, im); 87272343Sngie PRINT(PRIdPTR, ip); 88272343Sngie 89272343Sngie PRINT(PRIi8, i8); 90272343Sngie PRINT(PRIi16, i16); 91272343Sngie PRINT(PRIi32, i32); 92272343Sngie PRINT(PRIi64, i64); 93272343Sngie PRINT(PRIiLEAST8, il8); 94272343Sngie PRINT(PRIiLEAST16, il16); 95272343Sngie PRINT(PRIiLEAST32, il32); 96272343Sngie PRINT(PRIiLEAST64, il64); 97272343Sngie PRINT(PRIiFAST8, if8); 98272343Sngie PRINT(PRIiFAST16, if16); 99272343Sngie PRINT(PRIiFAST32, if32); 100272343Sngie PRINT(PRIiFAST64, if64); 101272343Sngie PRINT(PRIiMAX, im); 102272343Sngie PRINT(PRIiPTR, ip); 103272343Sngie 104272343Sngie PRINT(PRIo8, ui8); 105272343Sngie PRINT(PRIo16, ui16); 106272343Sngie PRINT(PRIo32, ui32); 107272343Sngie PRINT(PRIo64, ui64); 108272343Sngie PRINT(PRIoLEAST8, uil8); 109272343Sngie PRINT(PRIoLEAST16, uil16); 110272343Sngie PRINT(PRIoLEAST32, uil32); 111272343Sngie PRINT(PRIoLEAST64, uil64); 112272343Sngie PRINT(PRIoFAST8, uif8); 113272343Sngie PRINT(PRIoFAST16, uif16); 114272343Sngie PRINT(PRIoFAST32, uif32); 115272343Sngie PRINT(PRIoFAST64, uif64); 116272343Sngie PRINT(PRIoMAX, uim); 117272343Sngie PRINT(PRIoPTR, uip); 118272343Sngie 119272343Sngie PRINT(PRIu8, ui8); 120272343Sngie PRINT(PRIu16, ui16); 121272343Sngie PRINT(PRIu32, ui32); 122272343Sngie PRINT(PRIu64, ui64); 123272343Sngie PRINT(PRIuLEAST8, uil8); 124272343Sngie PRINT(PRIuLEAST16, uil16); 125272343Sngie PRINT(PRIuLEAST32, uil32); 126272343Sngie PRINT(PRIuLEAST64, uil64); 127272343Sngie PRINT(PRIuFAST8, uif8); 128272343Sngie PRINT(PRIuFAST16, uif16); 129272343Sngie PRINT(PRIuFAST32, uif32); 130272343Sngie PRINT(PRIuFAST64, uif64); 131272343Sngie PRINT(PRIuMAX, uim); 132272343Sngie PRINT(PRIuPTR, uip); 133272343Sngie 134272343Sngie PRINT(PRIx8, ui8); 135272343Sngie PRINT(PRIx16, ui16); 136272343Sngie PRINT(PRIx32, ui32); 137272343Sngie PRINT(PRIx64, ui64); 138272343Sngie PRINT(PRIxLEAST8, uil8); 139272343Sngie PRINT(PRIxLEAST16, uil16); 140272343Sngie PRINT(PRIxLEAST32, uil32); 141272343Sngie PRINT(PRIxLEAST64, uil64); 142272343Sngie PRINT(PRIxFAST8, uif8); 143272343Sngie PRINT(PRIxFAST16, uif16); 144272343Sngie PRINT(PRIxFAST32, uif32); 145272343Sngie PRINT(PRIxFAST64, uif64); 146272343Sngie PRINT(PRIxMAX, uim); 147272343Sngie PRINT(PRIxPTR, uip); 148272343Sngie 149272343Sngie PRINT(PRIX8, ui8); 150272343Sngie PRINT(PRIX16, ui16); 151272343Sngie PRINT(PRIX32, ui32); 152272343Sngie PRINT(PRIX64, ui64); 153272343Sngie PRINT(PRIXLEAST8, uil8); 154272343Sngie PRINT(PRIXLEAST16, uil16); 155272343Sngie PRINT(PRIXLEAST32, uil32); 156272343Sngie PRINT(PRIXLEAST64, uil64); 157272343Sngie PRINT(PRIXFAST8, uif8); 158272343Sngie PRINT(PRIXFAST16, uif16); 159272343Sngie PRINT(PRIXFAST32, uif32); 160272343Sngie PRINT(PRIXFAST64, uif64); 161272343Sngie PRINT(PRIXMAX, uim); 162272343Sngie PRINT(PRIXPTR, uip); 163272343Sngie 164272343Sngie 165272343Sngie SCAN(SCNd8, i8); 166272343Sngie SCAN(SCNd16, i16); 167272343Sngie SCAN(SCNd32, i32); 168272343Sngie SCAN(SCNd64, i64); 169272343Sngie SCAN(SCNdLEAST8, il8); 170272343Sngie SCAN(SCNdLEAST16, il16); 171272343Sngie SCAN(SCNdLEAST32, il32); 172272343Sngie SCAN(SCNdLEAST64, il64); 173272343Sngie SCAN(SCNdFAST8, if8); 174272343Sngie SCAN(SCNdFAST16, if16); 175272343Sngie SCAN(SCNdFAST32, if32); 176272343Sngie SCAN(SCNdFAST64, if64); 177272343Sngie SCAN(SCNdMAX, im); 178272343Sngie SCAN(SCNdPTR, ip); 179272343Sngie 180272343Sngie SCAN(SCNi8, i8); 181272343Sngie SCAN(SCNi16, i16); 182272343Sngie SCAN(SCNi32, i32); 183272343Sngie SCAN(SCNi64, i64); 184272343Sngie SCAN(SCNiLEAST8, il8); 185272343Sngie SCAN(SCNiLEAST16, il16); 186272343Sngie SCAN(SCNiLEAST32, il32); 187272343Sngie SCAN(SCNiLEAST64, il64); 188272343Sngie SCAN(SCNiFAST8, if8); 189272343Sngie SCAN(SCNiFAST16, if16); 190272343Sngie SCAN(SCNiFAST32, if32); 191272343Sngie SCAN(SCNiFAST64, if64); 192272343Sngie SCAN(SCNiMAX, im); 193272343Sngie SCAN(SCNiPTR, ip); 194272343Sngie 195272343Sngie SCAN(SCNo8, ui8); 196272343Sngie SCAN(SCNo16, ui16); 197272343Sngie SCAN(SCNo32, ui32); 198272343Sngie SCAN(SCNo64, ui64); 199272343Sngie SCAN(SCNoLEAST8, uil8); 200272343Sngie SCAN(SCNoLEAST16, uil16); 201272343Sngie SCAN(SCNoLEAST32, uil32); 202272343Sngie SCAN(SCNoLEAST64, uil64); 203272343Sngie SCAN(SCNoFAST8, uif8); 204272343Sngie SCAN(SCNoFAST16, uif16); 205272343Sngie SCAN(SCNoFAST32, uif32); 206272343Sngie SCAN(SCNoFAST64, uif64); 207272343Sngie SCAN(SCNoMAX, uim); 208272343Sngie SCAN(SCNoPTR, uip); 209272343Sngie 210272343Sngie SCAN(SCNu8, ui8); 211272343Sngie SCAN(SCNu16, ui16); 212272343Sngie SCAN(SCNu32, ui32); 213272343Sngie SCAN(SCNu64, ui64); 214272343Sngie SCAN(SCNuLEAST8, uil8); 215272343Sngie SCAN(SCNuLEAST16, uil16); 216272343Sngie SCAN(SCNuLEAST32, uil32); 217272343Sngie SCAN(SCNuLEAST64, uil64); 218272343Sngie SCAN(SCNuFAST8, uif8); 219272343Sngie SCAN(SCNuFAST16, uif16); 220272343Sngie SCAN(SCNuFAST32, uif32); 221272343Sngie SCAN(SCNuFAST64, uif64); 222272343Sngie SCAN(SCNuMAX, uim); 223272343Sngie SCAN(SCNuPTR, uip); 224272343Sngie 225272343Sngie SCAN(SCNx8, ui8); 226272343Sngie SCAN(SCNx16, ui16); 227272343Sngie SCAN(SCNx32, ui32); 228272343Sngie SCAN(SCNx64, ui64); 229272343Sngie SCAN(SCNxLEAST8, uil8); 230272343Sngie SCAN(SCNxLEAST16, uil16); 231272343Sngie SCAN(SCNxLEAST32, uil32); 232272343Sngie SCAN(SCNxLEAST64, uil64); 233272343Sngie SCAN(SCNxFAST8, uif8); 234272343Sngie SCAN(SCNxFAST16, uif16); 235272343Sngie SCAN(SCNxFAST32, uif32); 236272343Sngie SCAN(SCNxFAST64, uif64); 237272343Sngie SCAN(SCNxMAX, uim); 238272343Sngie SCAN(SCNxPTR, uip); 239272343Sngie 240272343Sngie#undef SCAN 241272343Sngie#undef PRINT 242272343Sngie} 243272343Sngie 244272343SngieATF_TP_ADD_TCS(tp) 245272343Sngie{ 246272343Sngie 247272343Sngie ATF_TP_ADD_TC(tp, int_fmtio); 248272343Sngie 249272343Sngie return atf_no_error(); 250272343Sngie} 251