From 9f6c1fc4947e0b6d007cff159166bc0373386c61 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 27 Oct 2000 23:37:52 +0000 Subject: Update. * stdlib/fmtmsg.c (fmtmsg): Change output format slightly to make it look better and bring it closer to SysV behavior. * stdlib/Makefile (distribute): Add tst-fmtmsg.sh. (test-srcs): Add tst-fmtmsg. (tests): Add $(objpfx)tst-fmtmsg.out. Add rule to generate it. * stdlib/tst-fmtmsg.sh: New file. * stdlib/tst-fmtmsg.c: New file. --- stdlib/Makefile | 8 +- stdlib/fmtmsg.c | 22 ++-- stdlib/tst-fmtmsg.c | 52 ++++++++ stdlib/tst-fmtmsg.sh | 336 +++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 405 insertions(+), 13 deletions(-) create mode 100644 stdlib/tst-fmtmsg.c create mode 100755 stdlib/tst-fmtmsg.sh (limited to 'stdlib') diff --git a/stdlib/Makefile b/stdlib/Makefile index 19e88f3aca..e9cef42f2c 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -49,7 +49,8 @@ routines := \ strtoimax strtoumax wcstoimax wcstoumax \ getcontext setcontext makecontext swapcontext -distribute := exit.h grouping.h abort-instr.h isomac.c +distribute := exit.h grouping.h abort-instr.h isomac.c tst-fmtmsg.sh +test-srcs := tst-fmtmsg tests := tst-strtol tst-strtod testmb testrand testsort testdiv \ test-canon test-canon2 tst-strtoll tst-environ \ tst-xpg-basename tst-random tst-bsearch tst-limits @@ -130,10 +131,13 @@ endif test-canon-ARGS = --test-dir=${common-objpfx}stdlib # Run a test on the header files we use. -tests: $(objpfx)isomac.out +tests: $(objpfx)isomac.out $(objpfx)tst-fmtmsg.out $(objpfx)isomac.out: $(objpfx)isomac $(dir $<)$(notdir $<) '$(CC)' '-I../include -I.. $(+sysdep-includes)' > $<.out $(objpfx)isomac: isomac.c $(native-compile) + +$(objpfx)tst-fmtmsg.out: tst-fmtmsg.sh $(objpfx)tst-fmtmsg + $(SHELL) -e $< $(common-objpfx) $(common-objpfx)stdlib/ diff --git a/stdlib/fmtmsg.c b/stdlib/fmtmsg.c index 126132d859..1c9e4298cd 100644 --- a/stdlib/fmtmsg.c +++ b/stdlib/fmtmsg.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1999 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -145,15 +145,15 @@ fmtmsg (long int classification, const char *label, int severity, if (fprintf (stderr, "%s%s%s%s%s%s%s%s%s%s\n", do_label ? label : "", - do_label && (do_severity | do_text) ? ": " : "", + do_label && (do_severity | do_text | do_action | do_tag) + ? ": " : "", do_severity ? severity_rec->string : "", - do_severity && do_text ? ": " : "", + do_severity && (do_text | do_action | do_tag) ? ": " : "", do_text ? text : "", - (do_label | do_severity | do_text) && (do_action | do_tag) - ? "\n" : "", + do_text && (do_action | do_tag) ? "\n" : "", do_action ? "TO FIX: " : "", do_action ? action : "", - do_action && do_tag ? " " : "", + do_action && do_tag ? " " : "", do_tag ? tag : "") == EOF) /* Oh, oh. An error occurred during the output. */ result = MM_NOMSG; @@ -169,15 +169,15 @@ fmtmsg (long int classification, const char *label, int severity, syslog (LOG_ERR, "%s%s%s%s%s%s%s%s%s%s\n", do_label ? label : "", - do_label && (do_severity | do_text) ? ": " : "", + do_label && (do_severity | do_text | do_action | do_tag) + ? ": " : "", do_severity ? severity_rec->string : "", - do_severity && do_text ? ": " : "", + do_severity && (do_text | do_action | do_tag) ? ": " : "", do_text ? text : "", - (do_label | do_severity | do_text) && (do_action | do_tag) - ? "\n" : "", + do_text && (do_action | do_tag) ? "\n" : "", do_action ? "TO FIX: " : "", do_action ? action : "", - do_action && do_tag ? " " : "", + do_action && do_tag ? " " : "", do_tag ? tag : ""); } diff --git a/stdlib/tst-fmtmsg.c b/stdlib/tst-fmtmsg.c new file mode 100644 index 0000000000..d5369bda62 --- /dev/null +++ b/stdlib/tst-fmtmsg.c @@ -0,0 +1,52 @@ +#include +#include +#include + + +#define MM_TEST 10 + +int +main (void) +{ + int result = 0; + + mtrace (); + + if (addseverity (MM_TEST, "TEST") != MM_OK) + { + puts ("addseverity failed"); + result = 1; + } + + if (fmtmsg (MM_PRINT, "GLIBC:tst-fmtmsg", MM_HALT, "halt", + "should print message for MM_HALT", "GLIBC:tst-fmtmsg:1") + != MM_OK) + result = 1; + + if (fmtmsg (MM_PRINT, "GLIBC:tst-fmtmsg", MM_ERROR, "halt", + "should print message for MM_ERROR", "GLIBC:tst-fmtmsg:2") + != MM_OK) + result = 1; + + if (fmtmsg (MM_PRINT, "GLIBC:tst-fmtmsg", MM_WARNING, "halt", + "should print message for MM_WARNING", "GLIBC:tst-fmtmsg:3") + != MM_OK) + result = 1; + + if (fmtmsg (MM_PRINT, "GLIBC:tst-fmtmsg", MM_INFO, "halt", + "should print message for MM_INFO", "GLIBC:tst-fmtmsg:4") + != MM_OK) + result = 1; + + if (fmtmsg (MM_PRINT, "GLIBC:tst-fmtmsg", MM_NOSEV, "halt", + "should print message for MM_NOSEV", "GLIBC:tst-fmtmsg:5") + != MM_OK) + result = 1; + + if (fmtmsg (MM_PRINT, "GLIBC:tst-fmtmsg", MM_TEST, "halt", + "should print message for MM_TEST", "GLIBC:tst-fmtmsg:6") + != MM_OK) + result = 1; + + return result; +} diff --git a/stdlib/tst-fmtmsg.sh b/stdlib/tst-fmtmsg.sh new file mode 100755 index 0000000000..6f083cab15 --- /dev/null +++ b/stdlib/tst-fmtmsg.sh @@ -0,0 +1,336 @@ +#! /bin/sh +# Test of fmtmsg function family. +# Copyright (C) 2000 Free Software Foundation, Inc. +# This file is part of the GNU C Library. +# +# The GNU C Library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# The GNU C Library 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 +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with the GNU C Library; see the file COPYING.LIB. If +# not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +common_objpfx=$1 +objpfx=$2 + +test="${common_objpfx}elf/ld.so --library-path $common_objpfx \ +${objpfx}tst-fmtmsg" +out=${objpfx}tst-fmtmsg.out + +LC_ALL=C +export LC_ALL + +(MSGVERB= $test || exit 1; + MSGVERB=label $test || exit 1; + MSGVERB=severity $test || exit 1; + MSGVERB=severity:label $test || exit 1; + MSGVERB=text $test || exit 1; + MSGVERB=text:label $test || exit 1; + MSGVERB=text:severity $test || exit 1; + MSGVERB=text:severity:label $test || exit 1; + MSGVERB=action $test || exit 1; + MSGVERB=action:label $test || exit 1; + MSGVERB=action:severity $test || exit 1; + MSGVERB=action:severity:label $test || exit 1; + MSGVERB=action:text $test || exit 1; + MSGVERB=action:text:label $test || exit 1; + MSGVERB=action:text:severity $test || exit 1; + MSGVERB=action:text:severity:label $test || exit 1; + MSGVERB=tag $test || exit 1; + MSGVERB=tag:label $test || exit 1; + MSGVERB=tag:severity $test || exit 1; + MSGVERB=tag:severity:label $test || exit 1; + MSGVERB=tag:text $test || exit 1; + MSGVERB=tag:text:label $test || exit 1; + MSGVERB=tag:text:severity $test || exit 1; + MSGVERB=tag:text:severity:label $test || exit 1; + MSGVERB=tag:action $test || exit 1; + MSGVERB=tag:action:label $test || exit 1; + MSGVERB=tag:action:severity $test || exit 1; + MSGVERB=tag:action:severity:label $test || exit 1; + MSGVERB=tag:action:text $test || exit 1; + MSGVERB=tag:action:text:label $test || exit 1; + MSGVERB=tag:action:text:severity $test || exit 1; + MSGVERB=tag:action:text:severity:label $test || exit 1;) 2> $out + +cmp $out <