* 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.
This commit is contained in:
Ulrich Drepper 2000-10-27 23:37:52 +00:00
parent 6d5503b16a
commit 9f6c1fc494
5 changed files with 413 additions and 13 deletions

View file

@ -1,5 +1,13 @@
2000-10-27 Ulrich Drepper <drepper@redhat.com>
* 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.
* iconvdata/Makefile (modules): Add VISCII.
(gen-8bit-modules): Add viscii.
* iconvdata/viscii.c: New file.

View file

@ -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/

View file

@ -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 <drepper@cygnus.com>, 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 : "");
}

52
stdlib/tst-fmtmsg.c Normal file
View file

@ -0,0 +1,52 @@
#include <fmtmsg.h>
#include <mcheck.h>
#include <stdio.h>
#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;
}

336
stdlib/tst-fmtmsg.sh Executable file
View file

@ -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 <<EOF
GLIBC:tst-fmtmsg: HALT: halt
TO FIX: should print message for MM_HALT GLIBC:tst-fmtmsg:1
GLIBC:tst-fmtmsg: ERROR: halt
TO FIX: should print message for MM_ERROR GLIBC:tst-fmtmsg:2
GLIBC:tst-fmtmsg: WARNING: halt
TO FIX: should print message for MM_WARNING GLIBC:tst-fmtmsg:3
GLIBC:tst-fmtmsg: INFO: halt
TO FIX: should print message for MM_INFO GLIBC:tst-fmtmsg:4
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_NOSEV GLIBC:tst-fmtmsg:5
GLIBC:tst-fmtmsg: TEST: halt
TO FIX: should print message for MM_TEST GLIBC:tst-fmtmsg:6
GLIBC:tst-fmtmsg
GLIBC:tst-fmtmsg
GLIBC:tst-fmtmsg
GLIBC:tst-fmtmsg
GLIBC:tst-fmtmsg
GLIBC:tst-fmtmsg
HALT
ERROR
WARNING
INFO
TEST
GLIBC:tst-fmtmsg: HALT
GLIBC:tst-fmtmsg: ERROR
GLIBC:tst-fmtmsg: WARNING
GLIBC:tst-fmtmsg: INFO
GLIBC:tst-fmtmsg
GLIBC:tst-fmtmsg: TEST
halt
halt
halt
halt
halt
halt
GLIBC:tst-fmtmsg: halt
GLIBC:tst-fmtmsg: halt
GLIBC:tst-fmtmsg: halt
GLIBC:tst-fmtmsg: halt
GLIBC:tst-fmtmsg: halt
GLIBC:tst-fmtmsg: halt
HALT: halt
ERROR: halt
WARNING: halt
INFO: halt
halt
TEST: halt
GLIBC:tst-fmtmsg: HALT: halt
GLIBC:tst-fmtmsg: ERROR: halt
GLIBC:tst-fmtmsg: WARNING: halt
GLIBC:tst-fmtmsg: INFO: halt
GLIBC:tst-fmtmsg: halt
GLIBC:tst-fmtmsg: TEST: halt
TO FIX: should print message for MM_HALT
TO FIX: should print message for MM_ERROR
TO FIX: should print message for MM_WARNING
TO FIX: should print message for MM_INFO
TO FIX: should print message for MM_NOSEV
TO FIX: should print message for MM_TEST
GLIBC:tst-fmtmsg: TO FIX: should print message for MM_HALT
GLIBC:tst-fmtmsg: TO FIX: should print message for MM_ERROR
GLIBC:tst-fmtmsg: TO FIX: should print message for MM_WARNING
GLIBC:tst-fmtmsg: TO FIX: should print message for MM_INFO
GLIBC:tst-fmtmsg: TO FIX: should print message for MM_NOSEV
GLIBC:tst-fmtmsg: TO FIX: should print message for MM_TEST
HALT: TO FIX: should print message for MM_HALT
ERROR: TO FIX: should print message for MM_ERROR
WARNING: TO FIX: should print message for MM_WARNING
INFO: TO FIX: should print message for MM_INFO
TO FIX: should print message for MM_NOSEV
TEST: TO FIX: should print message for MM_TEST
GLIBC:tst-fmtmsg: HALT: TO FIX: should print message for MM_HALT
GLIBC:tst-fmtmsg: ERROR: TO FIX: should print message for MM_ERROR
GLIBC:tst-fmtmsg: WARNING: TO FIX: should print message for MM_WARNING
GLIBC:tst-fmtmsg: INFO: TO FIX: should print message for MM_INFO
GLIBC:tst-fmtmsg: TO FIX: should print message for MM_NOSEV
GLIBC:tst-fmtmsg: TEST: TO FIX: should print message for MM_TEST
halt
TO FIX: should print message for MM_HALT
halt
TO FIX: should print message for MM_ERROR
halt
TO FIX: should print message for MM_WARNING
halt
TO FIX: should print message for MM_INFO
halt
TO FIX: should print message for MM_NOSEV
halt
TO FIX: should print message for MM_TEST
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_HALT
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_ERROR
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_WARNING
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_INFO
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_NOSEV
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_TEST
HALT: halt
TO FIX: should print message for MM_HALT
ERROR: halt
TO FIX: should print message for MM_ERROR
WARNING: halt
TO FIX: should print message for MM_WARNING
INFO: halt
TO FIX: should print message for MM_INFO
halt
TO FIX: should print message for MM_NOSEV
TEST: halt
TO FIX: should print message for MM_TEST
GLIBC:tst-fmtmsg: HALT: halt
TO FIX: should print message for MM_HALT
GLIBC:tst-fmtmsg: ERROR: halt
TO FIX: should print message for MM_ERROR
GLIBC:tst-fmtmsg: WARNING: halt
TO FIX: should print message for MM_WARNING
GLIBC:tst-fmtmsg: INFO: halt
TO FIX: should print message for MM_INFO
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_NOSEV
GLIBC:tst-fmtmsg: TEST: halt
TO FIX: should print message for MM_TEST
GLIBC:tst-fmtmsg:1
GLIBC:tst-fmtmsg:2
GLIBC:tst-fmtmsg:3
GLIBC:tst-fmtmsg:4
GLIBC:tst-fmtmsg:5
GLIBC:tst-fmtmsg:6
GLIBC:tst-fmtmsg: GLIBC:tst-fmtmsg:1
GLIBC:tst-fmtmsg: GLIBC:tst-fmtmsg:2
GLIBC:tst-fmtmsg: GLIBC:tst-fmtmsg:3
GLIBC:tst-fmtmsg: GLIBC:tst-fmtmsg:4
GLIBC:tst-fmtmsg: GLIBC:tst-fmtmsg:5
GLIBC:tst-fmtmsg: GLIBC:tst-fmtmsg:6
HALT: GLIBC:tst-fmtmsg:1
ERROR: GLIBC:tst-fmtmsg:2
WARNING: GLIBC:tst-fmtmsg:3
INFO: GLIBC:tst-fmtmsg:4
GLIBC:tst-fmtmsg:5
TEST: GLIBC:tst-fmtmsg:6
GLIBC:tst-fmtmsg: HALT: GLIBC:tst-fmtmsg:1
GLIBC:tst-fmtmsg: ERROR: GLIBC:tst-fmtmsg:2
GLIBC:tst-fmtmsg: WARNING: GLIBC:tst-fmtmsg:3
GLIBC:tst-fmtmsg: INFO: GLIBC:tst-fmtmsg:4
GLIBC:tst-fmtmsg: GLIBC:tst-fmtmsg:5
GLIBC:tst-fmtmsg: TEST: GLIBC:tst-fmtmsg:6
halt
GLIBC:tst-fmtmsg:1
halt
GLIBC:tst-fmtmsg:2
halt
GLIBC:tst-fmtmsg:3
halt
GLIBC:tst-fmtmsg:4
halt
GLIBC:tst-fmtmsg:5
halt
GLIBC:tst-fmtmsg:6
GLIBC:tst-fmtmsg: halt
GLIBC:tst-fmtmsg:1
GLIBC:tst-fmtmsg: halt
GLIBC:tst-fmtmsg:2
GLIBC:tst-fmtmsg: halt
GLIBC:tst-fmtmsg:3
GLIBC:tst-fmtmsg: halt
GLIBC:tst-fmtmsg:4
GLIBC:tst-fmtmsg: halt
GLIBC:tst-fmtmsg:5
GLIBC:tst-fmtmsg: halt
GLIBC:tst-fmtmsg:6
HALT: halt
GLIBC:tst-fmtmsg:1
ERROR: halt
GLIBC:tst-fmtmsg:2
WARNING: halt
GLIBC:tst-fmtmsg:3
INFO: halt
GLIBC:tst-fmtmsg:4
halt
GLIBC:tst-fmtmsg:5
TEST: halt
GLIBC:tst-fmtmsg:6
GLIBC:tst-fmtmsg: HALT: halt
GLIBC:tst-fmtmsg:1
GLIBC:tst-fmtmsg: ERROR: halt
GLIBC:tst-fmtmsg:2
GLIBC:tst-fmtmsg: WARNING: halt
GLIBC:tst-fmtmsg:3
GLIBC:tst-fmtmsg: INFO: halt
GLIBC:tst-fmtmsg:4
GLIBC:tst-fmtmsg: halt
GLIBC:tst-fmtmsg:5
GLIBC:tst-fmtmsg: TEST: halt
GLIBC:tst-fmtmsg:6
TO FIX: should print message for MM_HALT GLIBC:tst-fmtmsg:1
TO FIX: should print message for MM_ERROR GLIBC:tst-fmtmsg:2
TO FIX: should print message for MM_WARNING GLIBC:tst-fmtmsg:3
TO FIX: should print message for MM_INFO GLIBC:tst-fmtmsg:4
TO FIX: should print message for MM_NOSEV GLIBC:tst-fmtmsg:5
TO FIX: should print message for MM_TEST GLIBC:tst-fmtmsg:6
GLIBC:tst-fmtmsg: TO FIX: should print message for MM_HALT GLIBC:tst-fmtmsg:1
GLIBC:tst-fmtmsg: TO FIX: should print message for MM_ERROR GLIBC:tst-fmtmsg:2
GLIBC:tst-fmtmsg: TO FIX: should print message for MM_WARNING GLIBC:tst-fmtmsg:3
GLIBC:tst-fmtmsg: TO FIX: should print message for MM_INFO GLIBC:tst-fmtmsg:4
GLIBC:tst-fmtmsg: TO FIX: should print message for MM_NOSEV GLIBC:tst-fmtmsg:5
GLIBC:tst-fmtmsg: TO FIX: should print message for MM_TEST GLIBC:tst-fmtmsg:6
HALT: TO FIX: should print message for MM_HALT GLIBC:tst-fmtmsg:1
ERROR: TO FIX: should print message for MM_ERROR GLIBC:tst-fmtmsg:2
WARNING: TO FIX: should print message for MM_WARNING GLIBC:tst-fmtmsg:3
INFO: TO FIX: should print message for MM_INFO GLIBC:tst-fmtmsg:4
TO FIX: should print message for MM_NOSEV GLIBC:tst-fmtmsg:5
TEST: TO FIX: should print message for MM_TEST GLIBC:tst-fmtmsg:6
GLIBC:tst-fmtmsg: HALT: TO FIX: should print message for MM_HALT GLIBC:tst-fmtmsg:1
GLIBC:tst-fmtmsg: ERROR: TO FIX: should print message for MM_ERROR GLIBC:tst-fmtmsg:2
GLIBC:tst-fmtmsg: WARNING: TO FIX: should print message for MM_WARNING GLIBC:tst-fmtmsg:3
GLIBC:tst-fmtmsg: INFO: TO FIX: should print message for MM_INFO GLIBC:tst-fmtmsg:4
GLIBC:tst-fmtmsg: TO FIX: should print message for MM_NOSEV GLIBC:tst-fmtmsg:5
GLIBC:tst-fmtmsg: TEST: TO FIX: should print message for MM_TEST GLIBC:tst-fmtmsg:6
halt
TO FIX: should print message for MM_HALT GLIBC:tst-fmtmsg:1
halt
TO FIX: should print message for MM_ERROR GLIBC:tst-fmtmsg:2
halt
TO FIX: should print message for MM_WARNING GLIBC:tst-fmtmsg:3
halt
TO FIX: should print message for MM_INFO GLIBC:tst-fmtmsg:4
halt
TO FIX: should print message for MM_NOSEV GLIBC:tst-fmtmsg:5
halt
TO FIX: should print message for MM_TEST GLIBC:tst-fmtmsg:6
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_HALT GLIBC:tst-fmtmsg:1
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_ERROR GLIBC:tst-fmtmsg:2
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_WARNING GLIBC:tst-fmtmsg:3
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_INFO GLIBC:tst-fmtmsg:4
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_NOSEV GLIBC:tst-fmtmsg:5
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_TEST GLIBC:tst-fmtmsg:6
HALT: halt
TO FIX: should print message for MM_HALT GLIBC:tst-fmtmsg:1
ERROR: halt
TO FIX: should print message for MM_ERROR GLIBC:tst-fmtmsg:2
WARNING: halt
TO FIX: should print message for MM_WARNING GLIBC:tst-fmtmsg:3
INFO: halt
TO FIX: should print message for MM_INFO GLIBC:tst-fmtmsg:4
halt
TO FIX: should print message for MM_NOSEV GLIBC:tst-fmtmsg:5
TEST: halt
TO FIX: should print message for MM_TEST GLIBC:tst-fmtmsg:6
GLIBC:tst-fmtmsg: HALT: halt
TO FIX: should print message for MM_HALT GLIBC:tst-fmtmsg:1
GLIBC:tst-fmtmsg: ERROR: halt
TO FIX: should print message for MM_ERROR GLIBC:tst-fmtmsg:2
GLIBC:tst-fmtmsg: WARNING: halt
TO FIX: should print message for MM_WARNING GLIBC:tst-fmtmsg:3
GLIBC:tst-fmtmsg: INFO: halt
TO FIX: should print message for MM_INFO GLIBC:tst-fmtmsg:4
GLIBC:tst-fmtmsg: halt
TO FIX: should print message for MM_NOSEV GLIBC:tst-fmtmsg:5
GLIBC:tst-fmtmsg: TEST: halt
TO FIX: should print message for MM_TEST GLIBC:tst-fmtmsg:6
EOF
exit $?