1/* 2 * Copyright (c) 2001 Proofpoint, Inc. and its suppliers. 3 * All rights reserved. 4 * 5 * By using this file, you agree to the terms and conditions set 6 * forth in the LICENSE file which can be found at the top level of 7 * the sendmail distribution. 8 */ 9 10#include <sm/gen.h> 11SM_IDSTR(id, "@(#)$Id: t-scanf.c,v 1.6 2013-11-22 20:51:43 ca Exp $") 12 13#include <sm/limits.h> 14#include <sm/io.h> 15#include <sm/string.h> 16#include <sm/test.h> 17#include <sm/types.h> 18 19int 20main(argc, argv) 21 int argc; 22 char **argv; 23{ 24 int i, d, h; 25 char buf[128]; 26 char *r; 27 28 sm_test_begin(argc, argv, "test scanf point stuff"); 29#if !SM_CONF_BROKEN_SIZE_T 30 (void) sm_io_fprintf(smioout, SM_TIME_DEFAULT, 31"If tests for \"h == 2\" fail, check whether size_t is signed on your OS.\n\ 32If that is the case, add -DSM_CONF_BROKEN_SIZE_T to confENVDEF\n\ 33and start over. Otherwise contact sendmail.org.\n"); 34#endif 35 36 d = 2; 37 sm_snprintf(buf, sizeof(buf), "%d", d); 38 r = "2"; 39 if (!SM_TEST(strcmp(buf, r) == 0)) 40 (void) sm_io_fprintf(smioerr, SM_TIME_DEFAULT, 41 "got %s instead\n", buf); 42 43 i = sm_io_sscanf(buf, "%d", &h); 44 SM_TEST(i == 1); 45 SM_TEST(h == 2); 46 47 d = 2; 48 sm_snprintf(buf, sizeof(buf), "%d\n", d); 49 r = "2\n"; 50 if (!SM_TEST(strcmp(buf, r) == 0)) 51 (void) sm_io_fprintf(smioerr, SM_TIME_DEFAULT, 52 "got %s instead\n", buf); 53 54 i = sm_io_sscanf(buf, "%d", &h); 55 SM_TEST(i == 1); 56 SM_TEST(h == 2); 57 58 return sm_test_end(); 59} 60