xref: /freebsd/contrib/sendmail/libsm/t-scanf.c (revision e2c0e292e8a7ca00ba99bcfccc9e637f45c3e8b1)
140266059SGregory Neil Shapiro /*
25dd76dd0SGregory Neil Shapiro  * Copyright (c) 2001 Proofpoint, Inc. and its suppliers.
340266059SGregory Neil Shapiro  *	All rights reserved.
440266059SGregory Neil Shapiro  *
540266059SGregory Neil Shapiro  * By using this file, you agree to the terms and conditions set
640266059SGregory Neil Shapiro  * forth in the LICENSE file which can be found at the top level of
740266059SGregory Neil Shapiro  * the sendmail distribution.
840266059SGregory Neil Shapiro  */
940266059SGregory Neil Shapiro 
1040266059SGregory Neil Shapiro #include <sm/gen.h>
114313cc83SGregory Neil Shapiro SM_IDSTR(id, "@(#)$Id: t-scanf.c,v 1.6 2013-11-22 20:51:43 ca Exp $")
1240266059SGregory Neil Shapiro 
1340266059SGregory Neil Shapiro #include <sm/limits.h>
1440266059SGregory Neil Shapiro #include <sm/io.h>
1540266059SGregory Neil Shapiro #include <sm/string.h>
1640266059SGregory Neil Shapiro #include <sm/test.h>
1740266059SGregory Neil Shapiro #include <sm/types.h>
1840266059SGregory Neil Shapiro 
1940266059SGregory Neil Shapiro int
2040266059SGregory Neil Shapiro main(argc, argv)
2140266059SGregory Neil Shapiro 	int argc;
2240266059SGregory Neil Shapiro 	char **argv;
2340266059SGregory Neil Shapiro {
2440266059SGregory Neil Shapiro 	int i, d, h;
2540266059SGregory Neil Shapiro 	char buf[128];
2640266059SGregory Neil Shapiro 	char *r;
2740266059SGregory Neil Shapiro 
2840266059SGregory Neil Shapiro 	sm_test_begin(argc, argv, "test scanf point stuff");
2940266059SGregory Neil Shapiro #if !SM_CONF_BROKEN_SIZE_T
3040266059SGregory Neil Shapiro 	(void) sm_io_fprintf(smioout, SM_TIME_DEFAULT,
3140266059SGregory Neil Shapiro "If tests for \"h == 2\" fail, check whether size_t is signed on your OS.\n\
3240266059SGregory Neil Shapiro If that is the case, add -DSM_CONF_BROKEN_SIZE_T to confENVDEF\n\
3340266059SGregory Neil Shapiro and start over. Otherwise contact sendmail.org.\n");
34*5b0945b5SGregory Neil Shapiro #endif
3540266059SGregory Neil Shapiro 
3640266059SGregory Neil Shapiro 	d = 2;
3740266059SGregory Neil Shapiro 	sm_snprintf(buf, sizeof(buf), "%d", d);
3840266059SGregory Neil Shapiro 	r = "2";
3940266059SGregory Neil Shapiro 	if (!SM_TEST(strcmp(buf, r) == 0))
4040266059SGregory Neil Shapiro 		(void) sm_io_fprintf(smioerr, SM_TIME_DEFAULT,
4140266059SGregory Neil Shapiro 				     "got %s instead\n", buf);
4240266059SGregory Neil Shapiro 
4340266059SGregory Neil Shapiro 	i = sm_io_sscanf(buf, "%d", &h);
4440266059SGregory Neil Shapiro 	SM_TEST(i == 1);
4540266059SGregory Neil Shapiro 	SM_TEST(h == 2);
4640266059SGregory Neil Shapiro 
4740266059SGregory Neil Shapiro 	d = 2;
4840266059SGregory Neil Shapiro 	sm_snprintf(buf, sizeof(buf), "%d\n", d);
4940266059SGregory Neil Shapiro 	r = "2\n";
5040266059SGregory Neil Shapiro 	if (!SM_TEST(strcmp(buf, r) == 0))
5140266059SGregory Neil Shapiro 		(void) sm_io_fprintf(smioerr, SM_TIME_DEFAULT,
5240266059SGregory Neil Shapiro 				     "got %s instead\n", buf);
5340266059SGregory Neil Shapiro 
5440266059SGregory Neil Shapiro 	i = sm_io_sscanf(buf, "%d", &h);
5540266059SGregory Neil Shapiro 	SM_TEST(i == 1);
5640266059SGregory Neil Shapiro 	SM_TEST(h == 2);
5740266059SGregory Neil Shapiro 
5840266059SGregory Neil Shapiro 	return sm_test_end();
5940266059SGregory Neil Shapiro }
60