190792Sgshapiro/*
2261363Sgshapiro * Copyright (c) 2000-2001 Proofpoint, Inc. and its suppliers.
390792Sgshapiro *	All rights reserved.
490792Sgshapiro *
590792Sgshapiro * By using this file, you agree to the terms and conditions set
690792Sgshapiro * forth in the LICENSE file which can be found at the top level of
790792Sgshapiro * the sendmail distribution.
890792Sgshapiro */
990792Sgshapiro
1090792Sgshapiro#include <sm/gen.h>
11266692SgshapiroSM_IDSTR(id, "@(#)$Id: t-string.c,v 1.12 2013-11-22 20:51:43 ca Exp $")
1290792Sgshapiro
1390792Sgshapiro#include <sm/exc.h>
1490792Sgshapiro#include <sm/io.h>
1590792Sgshapiro#include <sm/string.h>
1690792Sgshapiro#include <sm/test.h>
1790792Sgshapiro
1890792Sgshapiroint
1990792Sgshapiromain(argc, argv)
2090792Sgshapiro	int argc;
2190792Sgshapiro	char **argv;
2290792Sgshapiro{
2390792Sgshapiro	char *s;
2490792Sgshapiro	char buf[4096];
2590792Sgshapiro	char foo[4];
2690792Sgshapiro	char *r;
2790792Sgshapiro	int n;
2890792Sgshapiro
2990792Sgshapiro	sm_test_begin(argc, argv, "test string utilities");
3090792Sgshapiro
3190792Sgshapiro	s = sm_stringf_x("%.3s%03d", "foobar", 42);
3290792Sgshapiro	r = "foo042";
3390792Sgshapiro	SM_TEST(strcmp(s, r) == 0);
3490792Sgshapiro
3590792Sgshapiro	s = sm_stringf_x("+%*x+", 2000, 0xCAFE);
3690792Sgshapiro	sm_snprintf(buf, 4096, "+%*x+", 2000, 0xCAFE);
3790792Sgshapiro	SM_TEST(strcmp(s, buf) == 0);
3890792Sgshapiro
3990792Sgshapiro	foo[3] = 1;
4090792Sgshapiro	n = sm_snprintf(foo, sizeof(foo), "foobar%dbaz", 42);
4190792Sgshapiro	SM_TEST(n == 11);
4290792Sgshapiro	r = "foo";
4390792Sgshapiro	SM_TEST(strcmp(foo, r) == 0);
4490792Sgshapiro
4590792Sgshapiro	return sm_test_end();
4690792Sgshapiro}
47