diff options
Diffstat (limited to 'Build/source/utils/texinfo/util/defs.in')
-rw-r--r-- | Build/source/utils/texinfo/util/defs.in | 364 |
1 files changed, 364 insertions, 0 deletions
diff --git a/Build/source/utils/texinfo/util/defs.in b/Build/source/utils/texinfo/util/defs.in new file mode 100644 index 00000000000..f70b1e71a84 --- /dev/null +++ b/Build/source/utils/texinfo/util/defs.in @@ -0,0 +1,364 @@ +# -*- shell-script -*- +# @configure_input@ +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# +# (This file was originally part of GNU Automake.) +# +# 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 3 of the License, 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, see <http://www.gnu.org/licenses/>. + +# Defines for Automake testing environment. +# Tom Tromey <tromey@cygnus.com> + +# Be Bourne compatible. +# (Snippet copied from configure's initialization in Autoconf 2.57.) +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Ensure we are running from the right directory. +test -f ./defs || { + echo "defs: not found in current directory" 1>&2 + exit 1 +} + +# If srcdir is not set, then we are not running from `make check', be verbose. +if test -z "$srcdir"; then + VERBOSE=x + # compute $srcdir. + srcdir=`echo "$0" | sed -e 's,/[^\\/]*$,,'` + test $srcdir = $0 && srcdir=. +fi + +# Ensure $srcdir is set correctly. +test -f $srcdir/defs.in || { + echo "$srcdir/defs.in not found, check \$srcdir" 1>&2 + exit 1 +} + +me=`echo "$0" | sed -e 's,.*[\\/],,;s/\.test$//'` + +# See how redirections should work. User can set VERBOSE to see all +# output. +test -z "$VERBOSE" && { + exec > /dev/null 2>&1 +} + +# Make sure we override the user shell. +SHELL='@SHELL@' +export SHELL + +srcdir_abs=`cd $srcdir && pwd` +test -z "$TEXI2DVI" && TEXI2DVI=$srcdir_abs/texi2dvi + +# be sure we use texi2dvi and texindex from our own directory, not +# whatever happens to be in the path. +echo "defs: prepending $srcdir_abs to PATH for testing." +PATH="@abs_builddir@:@abs_srcdir@:$PATH" + +# Some shells forget to export modified environment variables. +# (See note about `export' in the Autoconf manual.) +export PATH + +# User can override various tools used. +test -z "$PERL" && PERL='@PERL@' + +if test -n "$required" +then + for tool in $required + do + # Check that each required tool is present. + case $tool in + hevea) + # HeVeA supports -version only. Use configure to find it. + test -n "@HEVEA@" || exit 77 + ;; + tex) + # No all versions of Tex support `--version', so we use + # a configure check. + test -n "@TEX@" || exit 77 + ;; + # Generic case: the tool must support --version. + *) + echo "$me: running $tool --version" + ( $tool --version ) || exit 77 + ;; + esac + done +fi + + +# Always use an absolute srcdir. Otherwise symlinks made in subdirs +# of the test dir just won't work. +case "$srcdir" in + [\\/]* | ?:[\\/]*) + ;; + + *) + srcdir=`CDPATH=: && cd "$srcdir" && pwd` + ;; +esac + +chmod -R a+rwx testSubDir > /dev/null 2>&1 +rm -rf testSubDir > /dev/null 2>&1 +mkdir testSubDir + +# Copy in some files we need. +cp $srcdir/../doc/texinfo.tex testSubDir || exit 1 + +cd ./testSubDir + + +# Unset the user's envvars that might change the behavior. +unset TEXI2DVI_BUILD_MODE +unset TEXI2DVI_BUILD_DIRECTORY + +echo "=== Running test $0" + +# POSIX no longer requires 'egrep' and 'fgrep', +# but some hosts lack 'grep -E' and 'grep -F'. +EGREP='@EGREP@' +FGREP='@FGREP@' + +# The amount we should wait after modifying files depends on the platform. +# For instance, Windows '95, '98 and ME have 2-second granularity +# and can be up to 3 seconds in the future w.r.t. the system clock. +sleep='sleep @MODIFICATION_DELAY@' + +# The tests call `make -e' but we do not want $srcdir from the environment +# to override the definition from the Makefile. +testsrcdir=$srcdir +unset srcdir + + +# create_input_texi < INPUT +# ------------------------- +# Create input.texi adding stdin inside a default prologue/epilogue +create_input_texi () +{ + { + cat << END +\input texinfo @c -*-texinfo-*- +@setfilename input +@settitle input + +@ifnottex +@node Top +@top input +@end ifnottex + +END + cat + cat << END +@bye +END + } >input.texi +} + + +# create_input_tex < INPUT +# ------------------------ +# Create input.tex adding stdin inside a default prologue/epilogue +create_input_tex () +{ + { + cat << END +\documentclass{article} + +\begin{document} +END + cat + cat << END +\end{document} +END + } >input.tex +} + + +# TEXI2DVI_run status [options...] +# -------------------------------- +# Run texi2dvi with OPTIONS, and fail if does not exit with STATUS. +TEXI2DVI_run () +{ + expected_exitcode=$1 + shift + exitcode=0 + if test -n "$VERBOSE"; then + set x --debug --verbose ${1+"$@"} + shift + fi + texi2dvi ${1+"$@"} 2>stderr >stdout || exitcode=$? + cat stderr + cat stdout + test $exitcode = $expected_exitcode || exit 1 +} + + +# TEXI2DVI_fail [options...] +# --------------------------- +# Run texi2dvi with OPTIONS, and fail if does not exit with failure. +TEXI2DVI_fail () +{ + TEXI2DVI_run 1 ${1+"$@"} +} + + +# TEXI2DVI_pass [options...] +# --------------------------- +# Run texi2dvi with OPTIONS, and fail if does not exit with failure. +TEXI2DVI_pass () +{ + TEXI2DVI_run 0 ${1+"$@"} +} + + +# optionset_get N OPTIONSET<1> -- OPTIONSET<2> -- ... +# --------------------------------------------------- +# Return OPTIONSET<N> +optionset_get () +{ + n=$1 + shift + # Find the optionset. + while test $n != 1; do + case $1 in + --) n=`expr $n - 1`;; + esac + shift + done + # Return the optionset. + while true; do + case $#:$1 in + 0:) break;; + *:--) shift; break;; + *) echo "$1"; shift;; + esac + done +} + +# list_files () +# ------------- +# Return the sorted list of files in this directory, except the "invisible" ones. +list_files () +{ + for f in * + do + case $f in + texinfo.tex | stdout | stderr | ls.expected | ls.value );; + *) echo $f;; + esac + done | sort +} + + +# assert_files (EXPECTED-FILES) +# ----------------------------- +# Only those files are valid in the current directory. +assert_files () +{ + if test -n "$VERBOSE"; then + ls + fi + list_files > ls.value + echo "$*" | tr ' ' '\n' | sort > ls.expected + diff -u ls.expected ls.value +} + + +# assert_and_remove_files (EXPECTED-FILES) +# ---------------------------------------- +# Only those files are valid in the current directory. Remove them +# afterwards. +assert_and_remove_files () +{ + assert_files "$@" + rm -rf "$@" +} + + +# title TITLE... +# -------------- +# Make a huge title to ease the reading of the output. +title () +{ + ( + set +x + echo " $@ " | sed -e 's/./=/g' + echo " $@ " + echo " $@ " | sed -e 's/./=/g' + ) +} + +# $latex_paragraph +# ---------------- +# Some lengthy LaTeX. +# grep -E '^[a-zA-Z]+$' /usr/share/dict/words | sed 200q | pr --page-width=76 --column=5 --omit-header +latex_paragraph=' +A Acrux Aegean Ahmad Albany +AOL Actaeon Aelfric Ahmadabad Albee +Aachen Acton Aeneas Ahmed Alberio +Aaliyah Acts Aeneid Ahriman Albert +Aaron Acuff Aeolus Aida Alberta +Abbas Ada Aeroflot Aiken Alberto +Abbasid Adam Aeschylus Aileen Albigensian +Abbott Adams Aesculapius Aimee Albion +Abby Adan Aesop Ainu Albireo +Abdul Adana Afghan Airedale Albuquerque +Abe Adar Afghanistan Airedales Alcatraz +Abel Addams Afghans Aisha Alcestis +Abelard Adderley Africa Ajax Alcibiades +Abelson Addie African Akbar Alcmena +Aberdeen Addison Africans Akhmatova Alcoa +Abernathy Adela Afrikaans Akihito Alcott +Abidjan Adelaide Afrikaner Akita Alcuin +Abigail Adele Afrikaners Akkad Alcyone +Abilene Adeline Afro Akron Aldan +Abner Aden Afrocentrism Al Aldebaran +Abraham Adenauer Afros Ala Alden +Abram Adhara Ag Alabama Alderamin +Abrams Adidas Agamemnon Alabaman Aldo +Absalom Adirondack Agassi Alabamans Aldrin +Abuja Adirondacks Agassiz Alabamian Alec +Abyssinia Adkins Agatha Alabamians Aleichem +Abyssinian Adler Aggie Aladdin Alejandra +Ac Adolf Aglaia Alamo Alejandro +Acadia Adolfo Agnes Alamogordo Alembert +Acapulco Adolph Agnew Alan Aleppo +Accra Adonis Agni Alana Aleut +Acevedo Adonises Agra Alar Aleutian +Achaean Adrian Agricola Alaric Alex +Achebe Adriana Agrippa Alaska Alexander +Achernar Adriatic Agrippina Alaskan Alexandra +Acheson Adrienne Aguilar Alaskans Alexandria +Achilles Advent Aguinaldo Alba Alexei +Aconcagua Adventist Aguirre Albania Alexis +Acosta Advents Agustin Albanian Alfonso +Acropolis Advil Ahab Albanians Alfonzo +' + + +# Turn on shell traces when VERBOSE is set. +if test -n "$VERBOSE"; then + set -x +else + : +fi +pwd |