diff options
Diffstat (limited to 'tmac/tests/an_AT-and-UC-footer-saved-and-restored.sh')
-rwxr-xr-x | tmac/tests/an_AT-and-UC-footer-saved-and-restored.sh | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/tmac/tests/an_AT-and-UC-footer-saved-and-restored.sh b/tmac/tests/an_AT-and-UC-footer-saved-and-restored.sh new file mode 100755 index 0000000..fd3164f --- /dev/null +++ b/tmac/tests/an_AT-and-UC-footer-saved-and-restored.sh @@ -0,0 +1,106 @@ +#!/bin/sh +# +# Copyright (C) 2020 Free Software Foundation, Inc. +# +# This file is part of groff. +# +# groff 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 3 of the License, or +# (at your option) any later version. +# +# groff 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, see <http://www.gnu.org/licenses/>. +# + +groff="${abs_top_builddir:-.}/test-groff" + +# Regression-test Savannah #57416. +# +# The (deprecated) macros .AT and .UC, intended only for rendering of +# legacy man pages, alter strings used in man page footers. Verify that +# they modify and restore these strings correctly. + +EXAMPLE_ATT_PAGE='.TH att 1 2020-01-16 "groff test suite" +.AT +.SH Name +att \- aim Death Star at planet' + +EXAMPLE_FSF_PAGE='.TH fsf 1 2020-01-16 "groff test suite" +.SH Name +fsf \- liberate laser printer firmware' + +EXAMPLE_WFJ_PAGE='.TH wfj 1 2020-01-16 "groff test suite" +.UC +.SH Name +wfj \- call 1-800-ITS-UNIX' + +EXAMPLE_GNU_PAGE='.TH gnu 1 2020-01-16 "groff test suite" +.SH Name +gnu \- join us now and share the software' + +EXAMPLE_UCB_PAGE='.TH ucb 1 2020-01-16 "groff test suite" +.UC 7 +.SH Name +ucb \- blow up Death Star' + +# We turn off continuous rendering (-rcR=0) so that the page footers are +# numbered. We turn on continuous page numbering (-rC1) so we can tell +# that the footers are on the expected pages. +INPUT=$(printf "%s\n" \ + "$EXAMPLE_ATT_PAGE" \ + "$EXAMPLE_FSF_PAGE" \ + "$EXAMPLE_WFJ_PAGE" \ + "$EXAMPLE_GNU_PAGE" \ + "$EXAMPLE_UCB_PAGE" \ + "$EXAMPLE_GNU_PAGE" \ +) + +OUTPUT=$(echo "$INPUT" | "$groff" -Tascii -P-cbou -man -rcR=0 -rC1) + +FAIL= + +if ! echo "$OUTPUT" | grep -qE '7th Edition +2020-01-16 +1' +then + FAIL=yes + echo "AT&T (.AT) footer test failed" >&2 +fi + +if ! echo "$OUTPUT" | grep -qE 'groff test suite +2020-01-16 +2' +then + FAIL=yes + echo "FSF test footer failed" >&2 +fi + +if ! echo "$OUTPUT" | grep -qE '3rd Berkeley Distribution +2020-01-16 +3' +then + FAIL=yes + echo "WFJ (.UC) footer test failed" >&2 +fi + +if ! echo "$OUTPUT" | grep -qE 'groff test suite +2020-01-16 +4' +then + FAIL=yes + echo "1st GNU footer test failed" >&2 +fi + +if ! echo "$OUTPUT" | grep -qE '4.4 Berkeley Distribution +2020-01-16 +5' +then + FAIL=yes + echo "UCB (.UC) footer test failed" >&2 +fi + +if ! echo "$OUTPUT" | grep -qE 'groff test suite +2020-01-16 +6' +then + FAIL=yes + echo "2nd GNU footer test failed" >&2 +fi + +test -z "$FAIL" + +# vim:set ai et sw=4 ts=4 tw=80: |