From: Bruno Haible Date: Sat, 10 Mar 2007 01:21:30 +0000 (+0000) Subject: Tests for module 'printf-posix'. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7dfbd2504fc25649b478872b2f98705ec76a332e;p=pspp Tests for module 'printf-posix'. --- diff --git a/ChangeLog b/ChangeLog index e1aea6404f..c302a51e1e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2007-03-09 Bruno Haible + * modules/printf-posix-tests: New file. + * tests/test-printf-posix.sh: New file. + * tests/test-printf-posix.c: New file. + * modules/printf-posix: New file. * lib/printf.c: New file. * m4/printf-posix-rpl.m4: New file. diff --git a/modules/printf-posix-tests b/modules/printf-posix-tests new file mode 100644 index 0000000000..ea4f8f2ec0 --- /dev/null +++ b/modules/printf-posix-tests @@ -0,0 +1,16 @@ +Files: +tests/test-printf-posix.sh +tests/test-printf-posix.c +tests/test-printf-posix.h +tests/test-fprintf-posix.out + +Depends-on: +stdint + +configure.ac: + +Makefile.am: +TESTS += test-printf-posix.sh +TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' srcdir='$(srcdir)' +check_PROGRAMS += test-printf-posix +EXTRA_DIST += test-printf-posix.sh test-printf-posix.h test-fprintf-posix.out diff --git a/tests/test-printf-posix.c b/tests/test-printf-posix.c new file mode 100644 index 0000000000..d8e728a27b --- /dev/null +++ b/tests/test-printf-posix.c @@ -0,0 +1,52 @@ +/* Test of POSIX compatible fprintf() function. + Copyright (C) 2007 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Written by Bruno Haible , 2007. */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +#include +#include +#include +#include + +#define ASSERT(expr) if (!(expr)) abort (); + +#include "test-printf-posix.h" + +int +main (int argc, char *argv[]) +{ + test_function (printf); + return 0; +} + +/* Test whether __attribute__ (__format__ (...)) still works. */ +#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)) && !__STRICT_ANSI__ +extern int func1 (char *, size_t, const char *, ...) + __attribute__ ((__format__ (__printf__, 3, 4))); +extern int func2 (char *, size_t, const char *, ...) + __attribute__ ((__format__ (printf, 3, 4))); +extern int func3 (char *, size_t, const char *, ...) + __attribute__ ((format (__printf__, 3, 4))); +extern int func4 (char *, size_t, const char *, ...) + __attribute__ ((format (printf, 3, 4))); +#endif diff --git a/tests/test-printf-posix.sh b/tests/test-printf-posix.sh new file mode 100755 index 0000000000..e53658f4b5 --- /dev/null +++ b/tests/test-printf-posix.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles t-printf-posix.tmp" +./test-printf-posix${EXEEXT} > t-printf-posix.tmp || exit 1 + +: ${DIFF=diff} +${DIFF} "${srcdir}/test-fprintf-posix.out" t-printf-posix.tmp +result=$? + +rm -fr $tmpfiles + +exit $result