# -*- 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 . # Defines for Automake testing environment. # Tom Tromey # 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 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