diff options
136 files changed, 24562 insertions, 791 deletions
@@ -0,0 +1,39 @@ +# this is a list of files to keep +.clean +ChangeLog +AUTHORS +COPYING +ChangeLog +Clean.tcl +INSTALL +Makefile.am +Makefile.in +NEWS +README +TODO +acinclude.m4 +aclocal.m4 +baseboards +config +config.guess +config.sub +configure +configure.in +contrib +debian +doc +example +i960glue.c +install-sh +lib +missing +mkinstalldirs +redhat +runtest +runtest.exp +site.tmpl +stub-loader.c +tcl-mode.el +testglue.c +testsuite + @@ -1,9 +1,31 @@ -2001-01-24 Fernando Nasser <fnasser@redhat.com> +2001-02-17 Rob Savoye <rob@slipknot.welcomehome.org> + + * Most all files: Update copyright notices. + * Makefile.am: Add support for making RPMs. Force different + values for RUNTEST and RUNTESTFLAGS, so we can test ourselves. + * testsuite/Makefile.am: Force a different value for + RUNTESTFLAGS. + * acinclude.m4, configure.in: Find Tclsh, and Docbook. + * configure: Regenerated. + * doc/Makefile.am: Use $DOCBOOK to find the filters. + * doc/overview: Add the html version of the doc so one doesn't + need docbook to read the manual. + +2001-01-31 Rob Savoye <rob@slipknot.welcomehome.org> + + * Merge in latest snapshot from RedHat. + * example/calc/Makefile.am: New automake support. + * example/calc/Makefile.in: Generated. + * example/Makefile.am: Recursion support for make. + * example/calc/Makefile.in: Generated by automake. + * example/calc/calc.h.in: Move constants to calc.c, so we can use + autoheader. + * example/calc/calc.c: Add constants from calc.h.in. + * redhat/dejagnu.spec: New RPM packaging file. + * debian/{changelog,conffiles,control,copyright,postinst,preinst, + rules,site.exp}: New Debian packaging support. + - From Gabriel Dos Reis <gdr@codesourcery.com> - * lib/dg.exp (dg-trim-dirname): New function. - (dg-test): Use it to rip directory-name out of file name. - 2001-01-20 Ben Elliston <bje@redhat.com> * runtest.exp (usage): Replace --mail in usage output. @@ -15,6 +37,11 @@ * lib/target.exp (prune_warnings): Avoid ``.*'' in NetBSD warnings pattern. +2001-01-18 Gabriel Dos Reis <gdr@codesourcery.com> + + * lib/dg.exp (dg-trim-dirname): New function. + (dg-test): Use it to rip directory-name out of file name. + 2001-01-15 Ben Elliston <bje@redhat.com> * lib/framework.exp (record_test): Invoke a user-defined procedure diff --git a/Clean.tcl b/Clean.tcl new file mode 100755 index 0000000..a5366ad --- /dev/null +++ b/Clean.tcl @@ -0,0 +1,193 @@ +#!/usr/local/bin/tclsh + +# Clean.tcl +# This script is used to remove all unwanted files from a +# directory not in the .clean file list. This should only +# be used by maintainers when producing a release. + +# Copyright (C) 2000, 2001 Free Software Foundation, Inc. +# +# 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 2 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, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-dejagnu@gnu.org + +# This file was written by Rob Savoye. (rob@welcomehome.org) + +# default to no verbosity +if ![info exists verbose] { + set verbose 0 +} + +proc usage { } { + puts "USAGE: Clean.tcl \[options...\]" + puts "\t--verbose (-v)\t\tPrint all test output to screen" +} + +# print a message if it's verbosity is greater than the default +proc verbose { args } { + global verbose + set newline 1 + + set i 0 + if { [string index [lindex $args 0] 0] == "-" } { + for { set i 0 } { $i < [llength $args] } { incr i } { + if { [lindex $args $i] == "--" } { + incr i + break + } elseif { [lindex $args $i] == "-n" } { + set newline 0 + } elseif { [string index [lindex $args $i] 0] == "-" } { + puts "ERROR: verbose: illegal argument: [lindex $args $i]" + return + } else { + break + } + } + if { [llength $args] == $i } { + puts "ERROR: verbose: nothing to print" + return + } + } + + set level 1 + if { [llength $args] > $i + 1 } { + set level [lindex $args [expr $i+1]] + } + set message [lindex $args $i] + + if { $verbose >= $level } { + # There is no need for the "--" argument here, but play it safe. + # We assume send_user also sends the text to the log file (which + # appears to be the case though the docs aren't clear on this). + if { $newline } { + puts -nonewline "$message\n" + } else { + puts -nonewline "$message" + } + } +} + +# process the command line arguments +for { set i 0 } { $i < $argc } { incr i } { + set option [lindex $argv $i] + + # make all options have two hyphens + switch -glob -- $option { + "--*" { + } + "-*" { + set option "-$option" + } + } + + + switch -glob -- $option { + "--he*" { # (--help) help text + usage; + exit 0 + } + + "--v" - + "--verb*" { # (--verbose) verbose output + incr verbose + continue + } + } +} +verbose "Verbose level is $verbose" 2 + +proc cleanfiles { directory } { + set filelist "" + + # get a list of all the files in this directory + set allfiles [glob -nocomplain "$directory/*"] + regsub -all "$directory/" $allfiles "" allfiles + + # open the .clean file, which has the list of stuff we + # want to save + catch "set cleanfile [open "$directory/.clean" r]" + if ![info exists cleanfile] { + verbose "WARNING: no .clean file in $directory, removing the default set of \"*! core CVS RCS\"" 3 + set allfiles [glob -nocomplain "$directory/*~"] + append allfiles " [glob -nocomplain "$directory/core"]" + append allfiles " [glob -nocomplain "$directory/CVS"]" + append allfiles " [glob -nocomplain "$directory/RCS"]" + } else { + # read in the .clean file, line by line + while { [gets $cleanfile cur_line]>=0 } { + # ignore comments + if { [string index $cur_line 0] == "\#" } { + verbose "Ignoring comment" 2 + continue + } + # ignore blank lines + if { [string length $cur_line]<=0 } { + verbose "Ignoring blank line" 2 + continue + } + regsub -all "\[\+\]" $cur_line "\\+" cur_line + # remove the filename from the list + regsub -all " $cur_line " $allfiles " " allfiles + # also match the name if it's the last one in the file + regsub -all " $cur_line$" $allfiles " " allfiles + # also match if it's the only name in the list + regsub -all "^$cur_line" $allfiles " " allfiles + } + } + + # remove the leading and trailing blank spaces for cleanliness sake + set allfiles [string trimleft $allfiles] + set allfiles [string trimright $allfiles] + # nuke the files + if { [string length $allfiles] > 0 } { + verbose "Removing \"$allfiles\" from $directory" + catch "exec rm -f $allfiles" + } else { + verbose "Nothing to remove from $directory" 2 + } + + # close the .clean file + catch "close $cleanfile" +} + + +# now that we've removed everything we don't want from this +# directory, recur into the directories that are left to clean +# those as well. + +proc getdirs { directory } { + set dirs "" + set files [glob -nocomplain "$directory/*"] + if { [llength $files] != 0 } { + foreach j $files { + if [file isdirectory $j] { + append dirs " $j" + append dirs " [getdirs $j]" + } + } + } + return $dirs +} + +cleanfiles . +# now we actually do it all +foreach i [getdirs .] { + cleanfiles $i +} + + + + diff --git a/Makefile.am b/Makefile.am index f673015..4b93a73 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,15 +1,63 @@ ## Process this file with automake to generate Makefile.in -AUTOMAKE_OPTIONS = cygnus +AUTOMAKE_OPTIONS = dejagnu +# Install all the associated data files SUBDIRS = doc testsuite example -# driver script goes in /usr/local/bin +# Install the bourne shell script driver in the bindir bin_SCRIPTS = runtest -# auxiliary scripts go in /usr/local/share/dejagnu +# Install the main DejaGnu expect file in the datadir pkgdata_SCRIPTS = config.guess runtest.exp +# Install config.guess too, so we can use it to figure out +# what type of machine we're running on. +libexecdir = $(pkgdatadir)/libexec +libexec_SCRIPTS = config.guess + +TLCSH = @TCLSH@ + +RUNTESTDEFAULTFLAGS = --tool runtest --srcdir $(srcdir)/testsuite RUNTEST=$(RUNTEST) +RUNTEST = ` \ + if [ -f ${srcdir}/runtest$(EXEEXT) ] ; then \ + echo ${srcdir}/runtest$(EXEEXT) ; \ + else echo runtest ; fi` + +# Set ourselves up to build a RedHat package +dist2: rpmspec overview.html + -rm -fr dejagnu-${VERSION}.0 + cp -fpr $(srcdir) dejagnu-${VERSION}.0 + @echo "clean up stuff we don't want in the source file" + (cd dejagnu-${VERSION}.0 ; $(srcdir)/Clean.tcl) + -mkdir -p doc/overview + -cp -fr doc/overview dejagnu-${VERSION}.0/doc/ + tar cvf ../dejagnu-${VERSION}.tar dejagnu-${VERSION}.0 + gzip -9fv ../dejagnu-${VERSION}.tar + cp -f ../dejagnu-${VERSION}.tar.gz /usr/src/redhat/SOURCES/ + cp -f $(srcdir)/redhat/dejagnu.spec /usr/src/redhat/SPECS/ + +rpmspec: + cp -f $(srcdir)/redhat/dejagnu.spec /usr/src/redhat/SPECS/ + +rpm: dist rpmspec + cp -f $(distdir).tar.gz /usr/src/redhat/SOURCES/ + rpm -ba /usr/src/redhat/SPECS/dejagnu.spec + +overview.html install-doc doc html dvi ps pdf rtf: + cd doc && $(MAKE) $(FLAGS_TO_PASS) $@ + +# Automake sucks when it comes to building a distribution, so +# we just copy the source tree onto of what Automake did, and +# then we Clean it. Automake only includes the source files. +# We want all the testsuites, data files, and html versions of the doc. +dist-hook: rpmspec overview.html + -rm -fr $(distdir) + cp -fpr $(srcdir) $(distdir) + (cd $(distdir) ; $(TCLSH) $(srcdir)/Clean.tcl) + -cp -fr doc/overview $(distdir)/doc/ + + # Below, host-independent data files that need to get installed. # We do it this way so we can use globbing. @@ -48,3 +96,4 @@ uninstall-local: for f in $(baseboards_files); do \ test ! -f "$$f" || rm -f $(baseboards_dest)/`basename "$$f"`; \ done + diff --git a/Makefile.in b/Makefile.in index 8687693..bb345f8 100644 --- a/Makefile.in +++ b/Makefile.in @@ -21,7 +21,6 @@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ -libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ @@ -60,22 +59,37 @@ POST_UNINSTALL = : BOARDS = @BOARDS@ CC = @CC@ CONFIG = @CONFIG@ +DOCBOOK = @DOCBOOK@ EXEEXT = @EXEEXT@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ PACKAGE = @PACKAGE@ +TCLSH = @TCLSH@ VERSION = @VERSION@ +tclsh = @tclsh@ -AUTOMAKE_OPTIONS = cygnus +AUTOMAKE_OPTIONS = dejagnu +# Install all the associated data files SUBDIRS = doc testsuite example -# driver script goes in /usr/local/bin +# Install the bourne shell script driver in the bindir bin_SCRIPTS = runtest -# auxiliary scripts go in /usr/local/share/dejagnu +# Install the main DejaGnu expect file in the datadir pkgdata_SCRIPTS = config.guess runtest.exp +# Install config.guess too, so we can use it to figure out +# what type of machine we're running on. +libexecdir = $(pkgdatadir)/libexec +libexec_SCRIPTS = config.guess + +TLCSH = @TCLSH@ + +RUNTESTDEFAULTFLAGS = --tool runtest --srcdir $(srcdir)/testsuite RUNTEST=$(RUNTEST) +RUNTEST = ` if [ -f ${srcdir}/runtest$(EXEEXT) ] ; then echo ${srcdir}/runtest$(EXEEXT) ; else echo runtest ; fi` + + # Below, host-independent data files that need to get installed. # We do it this way so we can use globbing. @@ -88,29 +102,30 @@ baseboards_files = $(srcdir)/baseboards/README $(srcdir)/baseboards/*.exp config_dest = $(DESTDIR)$(pkgdatadir)/config config_files = $(srcdir)/config/README $(srcdir)/config/*.exp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = -SCRIPTS = $(bin_SCRIPTS) $(pkgdata_SCRIPTS) +SCRIPTS = $(bin_SCRIPTS) $(libexec_SCRIPTS) $(pkgdata_SCRIPTS) DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \ -Makefile.in NEWS TODO aclocal.m4 config.guess configure configure.in \ -install-sh mkinstalldirs +Makefile.in NEWS TODO acinclude.m4 aclocal.m4 config.guess config.sub \ +configure configure.in install-sh missing mkinstalldirs DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = gtar +TAR = tar GZIP_ENV = --best +EXPECT = expect all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) cd $(top_builddir) \ && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4 cd $(srcdir) && $(ACLOCAL) config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -137,6 +152,25 @@ uninstall-binSCRIPTS: rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \ done +install-libexecSCRIPTS: $(libexec_SCRIPTS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(libexecdir) + @list='$(libexec_SCRIPTS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_SCRIPT) $$p $(DESTDIR)$(libexecdir)/`echo $$p|sed '$(transform)'`"; \ + $(INSTALL_SCRIPT) $$p $(DESTDIR)$(libexecdir)/`echo $$p|sed '$(transform)'`; \ + else if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(libexecdir)/`echo $$p|sed '$(transform)'`"; \ + $(INSTALL_SCRIPT) $(srcdir)/$$p $(DESTDIR)$(libexecdir)/`echo $$p|sed '$(transform)'`; \ + else :; fi; fi; \ + done + +uninstall-libexecSCRIPTS: + @$(NORMAL_UNINSTALL) + list='$(libexec_SCRIPTS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(libexecdir)/`echo $$p|sed '$(transform)'`; \ + done + install-pkgdataSCRIPTS: $(pkgdata_SCRIPTS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) @@ -166,7 +200,7 @@ uninstall-pkgdataSCRIPTS: @SET_MAKE@ all-recursive install-data-recursive install-exec-recursive \ -installdirs-recursive install-recursive uninstall-recursive install-info-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive info-recursive dvi-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ @@ -283,10 +317,15 @@ distdir: $(DISTFILES) -rm -rf $(distdir) mkdir $(distdir) -chmod 777 $(distdir) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ + cp -pr $$/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ @@ -303,17 +342,43 @@ distdir: $(DISTFILES) || exit 1; \ fi; \ done + $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook + +RUNTESTFLAGS = + +DEJATOOL = $(PACKAGE) + +check-DEJAGNU: site.exp + srcdir=`cd $(srcdir) && pwd`; export srcdir; \ + EXPECT=$(EXPECT); export EXPECT; \ + runtest=$(RUNTEST); \ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + $$runtest $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \ + else echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi +site.exp: Makefile + @echo 'Making a new site.exp file...' + @test ! -f site.bak || rm -f site.bak + @echo '## these variables are automatically generated by make ##' > $@-t + @echo '# Do not edit here. If you wish to override these values' >> $@-t + @echo '# edit the last section' >> $@-t + @echo 'set tool $(DEJATOOL)' >> $@-t + @echo 'set srcdir $(srcdir)' >> $@-t + @echo 'set objdir' `pwd` >> $@-t + @echo '## All variables above are generated by configure. Do Not Edit ##' >> $@-t + @test ! -f site.exp || sed '1,/^## All variables above are.*##/ d' site.exp >> $@-t + @test ! -f site.exp || mv site.exp site.bak + @mv $@-t site.exp info-am: info: info-recursive dvi-am: dvi: dvi-recursive -check-am: +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU check: check-recursive installcheck-am: installcheck: installcheck-recursive -install-info-am: -install-info: install-info-recursive -install-exec-am: install-binSCRIPTS +install-exec-am: install-binSCRIPTS install-libexecSCRIPTS install-exec: install-exec-recursive install-data-am: install-pkgdataSCRIPTS install-data-local @@ -322,8 +387,8 @@ install-data: install-data-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am install: install-recursive -uninstall-am: uninstall-binSCRIPTS uninstall-pkgdataSCRIPTS \ - uninstall-local +uninstall-am: uninstall-binSCRIPTS uninstall-libexecSCRIPTS \ + uninstall-pkgdataSCRIPTS uninstall-local uninstall: uninstall-recursive all-am: Makefile $(SCRIPTS) all-redirect: all-recursive @@ -331,7 +396,8 @@ install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install installdirs: installdirs-recursive installdirs-am: - $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(pkgdatadir) + $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(libexecdir) \ + $(DESTDIR)$(pkgdatadir) mostlyclean-generic: @@ -364,21 +430,54 @@ maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ maintainer-clean: maintainer-clean-recursive -rm -f config.status -.PHONY: uninstall-binSCRIPTS install-binSCRIPTS uninstall-pkgdataSCRIPTS \ -install-pkgdataSCRIPTS install-data-recursive uninstall-data-recursive \ -install-exec-recursive uninstall-exec-recursive installdirs-recursive \ -uninstalldirs-recursive all-recursive check-recursive \ -installcheck-recursive info-recursive dvi-recursive \ -mostlyclean-recursive distclean-recursive clean-recursive \ +.PHONY: uninstall-binSCRIPTS install-binSCRIPTS uninstall-libexecSCRIPTS \ +install-libexecSCRIPTS uninstall-pkgdataSCRIPTS install-pkgdataSCRIPTS \ +install-data-recursive uninstall-data-recursive install-exec-recursive \ +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ +all-recursive check-recursive installcheck-recursive info-recursive \ +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ -distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ -dvi-am dvi check check-am installcheck-am installcheck install-info-am \ -install-info install-exec-am install-exec install-data-local \ -install-data-am install-data install-am install uninstall-local \ -uninstall-am uninstall all-redirect all-am all installdirs-am \ -installdirs mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean - +distclean-tags clean-tags maintainer-clean-tags distdir check-DEJAGNU \ +info-am info dvi-am dvi check check-am installcheck-am installcheck \ +install-exec-am install-exec install-data-local install-data-am \ +install-data install-am install uninstall-local uninstall-am uninstall \ +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +# Set ourselves up to build a RedHat package +dist2: rpmspec overview.html + -rm -fr dejagnu-${VERSION}.0 + cp -fpr $(srcdir) dejagnu-${VERSION}.0 + @echo "clean up stuff we don't want in the source file" + (cd dejagnu-${VERSION}.0 ; $(srcdir)/Clean.tcl) + -mkdir -p doc/overview + -cp -fr doc/overview dejagnu-${VERSION}.0/doc/ + tar cvf ../dejagnu-${VERSION}.tar dejagnu-${VERSION}.0 + gzip -9fv ../dejagnu-${VERSION}.tar + cp -f ../dejagnu-${VERSION}.tar.gz /usr/src/redhat/SOURCES/ + cp -f $(srcdir)/redhat/dejagnu.spec /usr/src/redhat/SPECS/ + +rpmspec: + cp -f $(srcdir)/redhat/dejagnu.spec /usr/src/redhat/SPECS/ + +rpm: dist rpmspec + cp -f $(distdir).tar.gz /usr/src/redhat/SOURCES/ + rpm -ba /usr/src/redhat/SPECS/dejagnu.spec + +overview.html install-doc doc html dvi ps pdf rtf: + cd doc && $(MAKE) $(FLAGS_TO_PASS) $@ + +# Automake sucks when it comes to building a distribution, so +# we just copy the source tree onto of what Automake did, and +# then we Clean it. Automake only includes the source files. +# We want all the testsuites, data files, and html versions of the doc. +dist-hook: rpmspec overview.html + -rm -fr $(distdir) + cp -fpr $(srcdir) $(distdir) + (cd $(distdir) ; $(TCLSH) $(srcdir)/Clean.tcl) + -cp -fr doc/overview $(distdir)/doc/ install-data-local: $(mkinstalldirs) $(lib_dest) @@ -19,7 +19,7 @@ several advantages for testing: the testing framework and the testsuites themselves. Tests are usually written in expect using Tcl. - Bugs can be reported to bug-dejagnu@prep.ai.mit.edu. + Bugs can be reported to bug-dejagnu@gnu.org. How To Configure and Build @@ -280,4 +280,6 @@ Andy Oram O'Reilly & Associates, Inc. andyo@ora.com There is a new listserv based mailing list for the FROST project. To subscribe, send email to "listserv@cygnus.com" and the body should contain "SUBSCRIBE FROST <your name>". Messages sent to -frost@cygnus.com go to the mailing list.
\ No newline at end of file +frost@cygnus.com go to the mailing list. + + @@ -6,3 +6,7 @@ record/playback. . Add a "testing methodologies" section to the manual. + +. Add a configure test to make sure Tcl and expect are installed. +. Add support to runtest to produce a better error message when expect + can't be found.
\ No newline at end of file diff --git a/acinclude.m4 b/acinclude.m4 new file mode 100644 index 0000000..20497d0 --- /dev/null +++ b/acinclude.m4 @@ -0,0 +1,87 @@ +AC_DEFUN(DJ_AC_PATH_TCLSH, [ +dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../ +../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../.. +/../../../../../.." +no_itcl=true +AC_MSG_CHECKING(for the tclsh program) +AC_ARG_WITH(tclinclude, [ --with-tclinclude directory where tcl header +s are], with_tclinclude=${withval}) +AC_CACHE_VAL(ac_cv_path_tclsh,[ +dnl first check to see if --with-itclinclude was specified +if test x"${with_tclinclude}" != x ; then + if test -f ${with_tclinclude}/tclsh ; then + ac_cv_path_tclsh=`(cd ${with_tclinclude}; pwd)` + elif test -f ${with_tclinclude}/src/tclsh ; then + ac_cv_path_tclsh=`(cd ${with_tclinclude}/src; pwd)` + else + AC_MSG_ERROR([${with_tclinclude} directory doesn't contain tclsh]) + fi +fi +]) + +dnl next check in private source directory +dnl since ls returns lowest version numbers first, reverse its output +if test x"${ac_cv_path_tclsh}" = x ; then + dnl find the top level Itcl source directory + for i in $dirlist; do + if test -n "`ls -dr $srcdir/$i/tcl* 2>/dev/null`" ; then + tclpath=$srcdir/$i + break + fi + done + + dnl find the exact Itcl source dir. We do it this way, cause there + dnl might be multiple version of Itcl, and we want the most recent one. + for i in `ls -dr $tclpath/tcl* 2>/dev/null ` ; do + if test -f $i/src/tclsh ; then + ac_cv_path_tclsh=`(cd $i/src; pwd)`/tclsh + break + fi + done +fi + +dnl see if one is installed +if test x"${ac_cv_path_tclsh}" = x ; then + AC_MSG_RESULT(none) + AC_PATH_PROG(tclsh, tclsh) +else + AC_MSG_RESULT(${ac_cv_path_tclsh}) +fi +TCLSH="${ac_cv_path_tclsh}" +AC_SUBST(TCLSH) +]) + + +AC_DEFUN(DJ_AC_PATH_DOCBOOK, [ +dirlist=".. ../../ ../../.. ../../../.. ../../../../.. ../../../../../.. ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." +AC_MSG_CHECKING(for docbook tools) +AC_ARG_WITH(oskith, [ --with-docbook directory where the db2 sgml tools are], with_docbook=${withval}) +AC_CACHE_VAL(ac_cv_c_docbook,[ +dnl first check to see if --with-docbook was specified +if test x"${with_docbook}" != x ; then + if test -f ${with_docbook}/db2html ; then + ac_cv_c_docbook=`(cd ${with_docbook}; pwd)` + else + AC_MSG_ERROR([${with_docbook} directory doesn't contain SGML tools]) + fi +fi +]) +if test x"${ac_cv_c_docbook}" = x ; then + for i in $ac_default_prefix/bin /usr/local/bin $OSKITHDIR/../bin /usr/bin /bin /opt /home; do + dnl See is we have an SGML tool in that directory. + if test -f $i/db2html ; then + ac_cv_c_docbook=$i + break + fi + done +fi + +if test x"${ac_cv_c_docbook}" = x ; then + AC_MSG_RESULT(none) +else + DOCBOOK="${ac_cv_c_docbook}" + AC_MSG_RESULT(${ac_cv_c_docbook}) +fi + +AC_SUBST(DOCBOOK) +]) @@ -10,6 +10,94 @@ dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A dnl PARTICULAR PURPOSE. +AC_DEFUN(DJ_AC_PATH_TCLSH, [ +dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../ +../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../.. +/../../../../../.." +no_itcl=true +AC_MSG_CHECKING(for the tclsh program) +AC_ARG_WITH(tclinclude, [ --with-tclinclude directory where tcl header +s are], with_tclinclude=${withval}) +AC_CACHE_VAL(ac_cv_path_tclsh,[ +dnl first check to see if --with-itclinclude was specified +if test x"${with_tclinclude}" != x ; then + if test -f ${with_tclinclude}/tclsh ; then + ac_cv_path_tclsh=`(cd ${with_tclinclude}; pwd)` + elif test -f ${with_tclinclude}/src/tclsh ; then + ac_cv_path_tclsh=`(cd ${with_tclinclude}/src; pwd)` + else + AC_MSG_ERROR([${with_tclinclude} directory doesn't contain tclsh]) + fi +fi +]) + +dnl next check in private source directory +dnl since ls returns lowest version numbers first, reverse its output +if test x"${ac_cv_path_tclsh}" = x ; then + dnl find the top level Itcl source directory + for i in $dirlist; do + if test -n "`ls -dr $srcdir/$i/tcl* 2>/dev/null`" ; then + tclpath=$srcdir/$i + break + fi + done + + dnl find the exact Itcl source dir. We do it this way, cause there + dnl might be multiple version of Itcl, and we want the most recent one. + for i in `ls -dr $tclpath/tcl* 2>/dev/null ` ; do + if test -f $i/src/tclsh ; then + ac_cv_path_tclsh=`(cd $i/src; pwd)`/tclsh + break + fi + done +fi + +dnl see if one is installed +if test x"${ac_cv_path_tclsh}" = x ; then + AC_MSG_RESULT(none) + AC_PATH_PROG(tclsh, tclsh) +else + AC_MSG_RESULT(${ac_cv_path_tclsh}) +fi +TCLSH="${ac_cv_path_tclsh}" +AC_SUBST(TCLSH) +]) + + +AC_DEFUN(DJ_AC_PATH_DOCBOOK, [ +dirlist=".. ../../ ../../.. ../../../.. ../../../../.. ../../../../../.. ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." +AC_MSG_CHECKING(for docbook tools) +AC_ARG_WITH(oskith, [ --with-docbook directory where the db2 sgml tools are], with_docbook=${withval}) +AC_CACHE_VAL(ac_cv_c_docbook,[ +dnl first check to see if --with-docbook was specified +if test x"${with_docbook}" != x ; then + if test -f ${with_docbook}/db2html ; then + ac_cv_c_docbook=`(cd ${with_docbook}; pwd)` + else + AC_MSG_ERROR([${with_docbook} directory doesn't contain SGML tools]) + fi +fi +]) +if test x"${ac_cv_c_docbook}" = x ; then + for i in $ac_default_prefix/bin /usr/local/bin $OSKITHDIR/../bin /usr/bin /bin /opt /home; do + dnl See is we have an SGML tool in that directory. + if test -f $i/db2html ; then + ac_cv_c_docbook=$i + break + fi + done +fi + +if test x"${ac_cv_c_docbook}" = x ; then + AC_MSG_RESULT(none) +else + DOCBOOK="${ac_cv_c_docbook}" + AC_MSG_RESULT(${ac_cv_c_docbook}) +fi + +AC_SUBST(DOCBOOK) +]) + # Do all the work for Automake. This macro actually does too much -- # some checks are only needed if your package does certain things. # But this isn't really a big deal. diff --git a/baseboards/arc-sim.exp b/baseboards/arc-sim.exp index 4bb9d4a..8ca7c2e 100644 --- a/baseboards/arc-sim.exp +++ b/baseboards/arc-sim.exp @@ -11,7 +11,7 @@ load_generic_config "sim" # basic-sim.exp is a basic description for the standard Cygnus simulator. load_base_board_description "basic-sim" -# "arc" is the name of the sim subdir in devo/sim. +# "arc" is the name of the sim subdir. setup_sim arc # No multilib options needed by default. diff --git a/baseboards/arm-sim.exp b/baseboards/arm-sim.exp index 9e96c1b..32b5eeb 100644 --- a/baseboards/arm-sim.exp +++ b/baseboards/arm-sim.exp @@ -26,15 +26,12 @@ setup_sim arm; # The compiler used to build for this board. This has *nothing* to do # with what compiler is tested if we're testing gcc. set_board_info compiler "[find_gcc]" - # The basic set of flags needed to build "hello world" for this # board. This board uses libgloss and newlib. set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]" set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags] $additional_options" - # This board doesn't use a linker script. set_board_info ldscript ""; - # The simulator doesn't return exit statuses and we need to indicate this. set_board_info needs_status_wrapper 1 diff --git a/baseboards/fr30-sim.exp b/baseboards/fr30-sim.exp index 73fad4c..aed4809 100644 --- a/baseboards/fr30-sim.exp +++ b/baseboards/fr30-sim.exp @@ -8,7 +8,7 @@ load_generic_config "sim" # basic-sim.exp is a basic description for the standard Cygnus simulator. load_base_board_description "basic-sim" -# "fr30" is the name of the sim subdir in devo/sim. +# "fr30" is the name of the sim subdir. setup_sim fr30 # No multilib options needed by default. diff --git a/baseboards/m32r-sim.exp b/baseboards/m32r-sim.exp index eaa7145..5bc73d4 100644 --- a/baseboards/m32r-sim.exp +++ b/baseboards/m32r-sim.exp @@ -8,7 +8,7 @@ load_generic_config "sim" # basic-sim.exp is a basic description for the standard Cygnus simulator. load_base_board_description "basic-sim" -# "m32r" is the name of the sim subdir in devo/sim. +# "m32r" is the name of the sim subdir. setup_sim m32r # No multilib options needed by default. diff --git a/baseboards/mcore-sim.exp b/baseboards/mcore-sim.exp index ae863ca..21ef68a 100644 --- a/baseboards/mcore-sim.exp +++ b/baseboards/mcore-sim.exp @@ -8,7 +8,7 @@ load_generic_config "sim" # basic-sim.exp is a basic description for the standard Cygnus simulator. load_base_board_description "basic-sim" -# "mcore" is the name of the sim subdir in devo/sim. +# "mcore" is the name of the sim subdir. setup_sim mcore # No multilib options needed by default. diff --git a/baseboards/mn10200-sim.exp b/baseboards/mn10200-sim.exp index 2356e3a..01c5673 100644 --- a/baseboards/mn10200-sim.exp +++ b/baseboards/mn10200-sim.exp @@ -9,7 +9,7 @@ load_generic_config "sim" # basic-sim.exp is a basic description for the standard Cygnus simulator. load_base_board_description "basic-sim" -# This is the name of the sim subdir in devo/sim (and in the build tree). +# This is the name of the sim subdir. setup_sim mn10200 # No multilib flags are set by default. diff --git a/baseboards/mn10300-sim.exp b/baseboards/mn10300-sim.exp index eff6a62..a4f3bfd 100644 --- a/baseboards/mn10300-sim.exp +++ b/baseboards/mn10300-sim.exp @@ -9,7 +9,7 @@ load_generic_config "sim" # basic-sim.exp is a basic description for the standard Cygnus simulator. load_base_board_description "basic-sim" -# This is the name of the sim subdir in devo/sim (and in the build tree). +# This is the name of the sim subdir. setup_sim mn10300 # No multilib flags are set by default. diff --git a/baseboards/tx39-sim.exp b/baseboards/tx39-sim.exp index 20fc722..8af9912 100644 --- a/baseboards/tx39-sim.exp +++ b/baseboards/tx39-sim.exp @@ -1,3 +1,8 @@ -# This file is unnecessary, but we'll keep it for now. -# We're the same as the standard MIPS simulator. +# We need mips16. +add_multilib_option "" + +# And we use the lsi linker script. +set_board_info ldscript "-Wl,-Tdve.ld" + +# Otherwise we're the same as the standard MIPS simulator. load_base_board_description "mips-sim"; diff --git a/config.sub b/config.sub new file mode 100755 index 0000000..edfef57 --- /dev/null +++ b/config.sub @@ -0,0 +1,1337 @@ +#! /bin/sh +# Configuration validation subroutine script, version 1.1. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 +# Free Software Foundation, Inc. + +version='2000-11-02' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file 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 2 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Please send patches to <config-patches@gnu.org>. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -V, --version print version number, then exit" + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case "$1" in + --version | --vers* | -V ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + exec >&2 + echo "$me: invalid option $1" + echo "$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit 0;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | storm-chaos*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm | xscale \ + | arme[lb] | armv[2345] | armv[345][lb] | pyramid | mn10200 | mn10300 | tron | a29k \ + | 580 | i960 | h8300 \ + | x86 | ppcbe | mipsbe | mipsle | shbe | shle | armbe | armle \ + | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ + | hppa64 \ + | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \ + | alphaev6[78] \ + | we32k | ns16k | clipper | i370 | sh | sh[34] \ + | powerpc | powerpcle \ + | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \ + | mips64orion | mips64orionel | mipstx39 | mipstx39el \ + | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \ + | mips64vr5000 | miprs64vr5000el | mcore \ + | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \ + | thumb | d10v | d30v | fr30 | avr) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl) + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i[234567]86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + # FIXME: clean up the formatting here. + vax-* | tahoe-* | i[234567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \ + | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ + | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \ + | xmp-* | ymp-* \ + | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* | armbe-* | armle-* \ + | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \ + | hppa2.0n-* | hppa64-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \ + | alphaev6[78]-* \ + | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ + | clipper-* | orion-* \ + | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ + | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \ + | mips64el-* | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \ + | mipstx39-* | mipstx39el-* | mcore-* \ + | f301-* | armv*-* | s390-* | s390x-* | sv1-* | t3e-* \ + | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \ + | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* \ + | bs2000-* | tic54x-* | c54x-* | x86_64-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | ymp) + basic_machine=ymp-cray + os=-unicos + ;; + cray2) + basic_machine=cray2-cray + os=-unicos + ;; + [ctj]90-cray) + basic_machine=c90-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i[34567]86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i[34567]86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i[34567]86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i[34567]86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + i386-go32 | go32) + basic_machine=i386-unknown + os=-go32 + ;; + i386-mingw32 | mingw32) + basic_machine=i386-unknown + os=-mingw32 + ;; + i[34567]86-pw32 | pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mipsel*-linux*) + basic_machine=mipsel-unknown + os=-linux-gnu + ;; + mips*-linux*) + basic_machine=mips-unknown + os=-linux-gnu + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + mmix*) + basic_machine=mmix-knuth + os=-mmixware + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + msdos) + basic_machine=i386-unknown + os=-msdos + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | k5 | k6 | nexen) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon) + basic_machine=i686-pc + ;; + pentiumii | pentium2) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexen-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=rs6000-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sparclite-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=t3e-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xmp) + basic_machine=xmp-cray + os=-unicos + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + mips) + if [ x$os = x-linux-gnu ]; then + basic_machine=mips-unknown + else + basic_machine=mips-mips + fi + ;; + romp) + basic_machine=romp-ibm + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh3 | sh4) + basic_machine=sh-unknown + ;; + sparc | sparcv9) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + c4x*) + basic_machine=c4x-none + os=-coff + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -storm-chaos*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i[34567]86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto*) + os=-nto-qnx + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -*MiNT) + os=-mint + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f301-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -vxsim* | -vxworks*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -*MiNT) + vendor=atari + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "version='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/config/arc.exp b/config/arc.exp index 3fffb06..e38e8e2 100644 --- a/config/arc.exp +++ b/config/arc.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,6 +15,6 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org load_generic_config "gdb-comm"; diff --git a/config/arm-ice.exp b/config/arm-ice.exp index 3fffb06..e38e8e2 100644 --- a/config/arm-ice.exp +++ b/config/arm-ice.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,6 +15,6 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org load_generic_config "gdb-comm"; diff --git a/config/base-config.exp b/config/base-config.exp index 2cd9581..8e16dcf 100644 --- a/config/base-config.exp +++ b/config/base-config.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # # reboot_hook -- called to reboot a target board. Returns 1 on diff --git a/config/base68k.exp b/config/base68k.exp index d105ce8..ca0afb2 100644 --- a/config/base68k.exp +++ b/config/base68k.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc. +# Copyright (C) 1994 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # This file was written by Bob Manson (manson@cygnus.com) # based on earlier work by JT Conklin (jtc@cygnus.com) @@ -80,8 +80,8 @@ proc base68k_ld { dest prog } { # dbug has problems if we go into binary mode, so this allows us to # disable entry into binary mode. if ![board_info $dest exists no_binary_mode] { - remote_binary $dest; - } + remote_binary $dest; + } } # if we built the srecord on a remote host, copy it back here so we diff --git a/config/bug.exp b/config/bug.exp index 881eccc..5155978 100644 --- a/config/bug.exp +++ b/config/bug.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org # This file was written by Bob Manson (manson@cygnus.com). diff --git a/config/cfdbug.exp b/config/cfdbug.exp index 2db0ac7..182f023 100644 --- a/config/cfdbug.exp +++ b/config/cfdbug.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1999 Free Software Foundation, Inc. +# Copyright (C) 1999 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org # This file was written by Bob Manson (manson@cygnus.com). diff --git a/config/cygmon.exp b/config/cygmon.exp index 2378a12..321fce7 100644 --- a/config/cygmon.exp +++ b/config/cygmon.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997, 1998 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org load_generic_config "gdb-comm"; diff --git a/config/d10v.exp b/config/d10v.exp index 3fffb06..e38e8e2 100644 --- a/config/d10v.exp +++ b/config/d10v.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,6 +15,6 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org load_generic_config "gdb-comm"; diff --git a/config/ddb-ether.exp b/config/ddb-ether.exp index 140c0d2..3a8716b 100644 --- a/config/ddb-ether.exp +++ b/config/ddb-ether.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997, 1998 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # This file was written by Bob Manson (manson@cygnus.com) diff --git a/config/ddb.exp b/config/ddb.exp index 13a18e0..f2ecf86 100644 --- a/config/ddb.exp +++ b/config/ddb.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # This file was written by Bob Manson (manson@cygnus.com) diff --git a/config/dos.exp b/config/dos.exp index d1b440d..f455acb 100644 --- a/config/dos.exp +++ b/config/dos.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # This file was written by Bob Manson (manson@cygnus.com) diff --git a/config/dve.exp b/config/dve.exp index 3582b5b..668f078 100644 --- a/config/dve.exp +++ b/config/dve.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1998 Free Software Foundation, Inc. +# Copyright (C) 1998 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-gcc@prep.ai.mit.edu +# bug-dejagnu@gnu.org # For Densan MIPS boards we use gdb to load and execute programs. diff --git a/config/gdb-comm.exp b/config/gdb-comm.exp index 3f4fffc..1f3fda7 100644 --- a/config/gdb-comm.exp +++ b/config/gdb-comm.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. +# Copyright (C) 1996 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # Note: some of this was cribbed from the gdb testsuite since we need # to use some pretty standard gdb features (breakpoints in particular). diff --git a/config/gdb_stub.exp b/config/gdb_stub.exp index 127c6eb..f1e7fc5 100644 --- a/config/gdb_stub.exp +++ b/config/gdb_stub.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1996-98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # This file was written by Michael Snyder <msnyder@cygnus.com>. @@ -494,7 +494,7 @@ proc gdb_stub_load { dest prog args } { if { $status == 0 } { return [list "pass" $output]; - } elseif { $status > 0 } { + } else if { $status > 0 } { return [list "fail" $output]; } else { global gdb_stub_retry; diff --git a/config/h8300.exp b/config/h8300.exp index 3fffb06..e38e8e2 100644 --- a/config/h8300.exp +++ b/config/h8300.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,6 +15,6 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org load_generic_config "gdb-comm"; diff --git a/config/i386-bozo.exp b/config/i386-bozo.exp index 563da32..9175d69 100644 --- a/config/i386-bozo.exp +++ b/config/i386-bozo.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org load_generic_config "gdb-comm"; diff --git a/config/i960.exp b/config/i960.exp index dcca835..07f1982 100644 --- a/config/i960.exp +++ b/config/i960.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # # Initialize the board on initial connection or after rebooting. diff --git a/config/m32r-stub.exp b/config/m32r-stub.exp index 7cdfd23..7952f4a 100644 --- a/config/m32r-stub.exp +++ b/config/m32r-stub.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,6 +15,6 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org load_generic_config "gdb_stub"; diff --git a/config/m32r.exp b/config/m32r.exp index 3fffb06..e38e8e2 100644 --- a/config/m32r.exp +++ b/config/m32r.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,6 +15,6 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org load_generic_config "gdb-comm"; diff --git a/config/mips-idt.exp b/config/mips-idt.exp index eacdb4d..8c566b8 100644 --- a/config/mips-idt.exp +++ b/config/mips-idt.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-gcc@prep.ai.mit.edu +# bug-dejagnu@gnu.org # For MIPS/IDT we use gdb to load and execute programs. diff --git a/config/mn10200-eval.exp b/config/mn10200-eval.exp index 9af6ae5..1f9c444 100644 --- a/config/mn10200-eval.exp +++ b/config/mn10200-eval.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1998 Free Software Foundation, Inc. +# Copyright (C) 1998 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-gcc@prep.ai.mit.edu +# bug-dejagnu@gnu.org # For MN10200 evaluation boards we use gdb to load and execute programs. diff --git a/config/mn10300-eval.exp b/config/mn10300-eval.exp index 1070b42..45b0e2a 100644 --- a/config/mn10300-eval.exp +++ b/config/mn10300-eval.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1998 Free Software Foundation, Inc. +# Copyright (C) 1998 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-gcc@prep.ai.mit.edu +# bug-dejagnu@gnu.org # For MN10300 evaluation boards we use gdb to load and execute programs. diff --git a/config/netware.exp b/config/netware.exp index 75d8149..ef47838 100644 --- a/config/netware.exp +++ b/config/netware.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc. +# Copyright (C) 1994 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-gcc@prep.ai.mit.edu +# bug-dejagnu@gnu.org # This file was written by J.T. Conklin. (jtc@cygnus.com) diff --git a/config/powerpc-bug.exp b/config/powerpc-bug.exp index 3fffb06..e38e8e2 100644 --- a/config/powerpc-bug.exp +++ b/config/powerpc-bug.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,6 +15,6 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org load_generic_config "gdb-comm"; diff --git a/config/proelf.exp b/config/proelf.exp index 310af21..4d822c5 100644 --- a/config/proelf.exp +++ b/config/proelf.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org load_generic_config "base68k"; set_board_info shell_prompt "#" diff --git a/config/rom68k.exp b/config/rom68k.exp index 63721f8..88257cd 100644 --- a/config/rom68k.exp +++ b/config/rom68k.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +# Copyright (C) 1995 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # This file was written by Bob Manson (manson@cygnus.com) # based on earlier work by J.T. Conklin (jtc@cygnus.com) diff --git a/config/sh.exp b/config/sh.exp index 3fffb06..e38e8e2 100644 --- a/config/sh.exp +++ b/config/sh.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,6 +15,6 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org load_generic_config "gdb-comm"; diff --git a/config/sim.exp b/config/sim.exp index 74edc6f..3143b31 100644 --- a/config/sim.exp +++ b/config/sim.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1993, 1994, 1996, 1997, 1998 Free Software Foundation, Inc. +# Copyright (C) 1993 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org # # sim_load -- load the program and execute it diff --git a/config/slite.exp b/config/slite.exp index 19bf612..52e9807 100644 --- a/config/slite.exp +++ b/config/slite.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1996, 1997 Free Software Foundation, Inc. +# Copyright (C) 1996 - 2001 Free Software Foundation, Inc. # 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 @@ -15,6 +15,6 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org load_generic_config "gdb_stub"; diff --git a/config/sparclet.exp b/config/sparclet.exp index 3f86098..c0b7296 100644 --- a/config/sparclet.exp +++ b/config/sparclet.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1996, 1997 Free Software Foundation, Inc. +# Copyright (C) 1996 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # This file was written by Michael Snyder <msnyder@cygnus.com>. diff --git a/config/udi.exp b/config/udi.exp index 4e10c4f..298ee83 100644 --- a/config/udi.exp +++ b/config/udi.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc. +# Copyright (C) 1994 - 2001 Free Software Foundation, Inc. # 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 @@ -15,9 +15,9 @@ # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org -# This file was originally written by Rob Savoye. (rob@cygnus.com) +# This file was originally written by Rob Savoye. (rob@welcomehome.org) # and modified by Bob Manson (manson@cygnus.com) # When using the simulator (-n iss) and running nice'd, things can naturally diff --git a/config/unix.exp b/config/unix.exp index d3e7fab..170ae94 100644 --- a/config/unix.exp +++ b/config/unix.exp @@ -1,4 +1,4 @@ -# Copyright (C) 92, 1993, 1994, 1996, 1997, 1998 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # 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 @@ -15,9 +15,9 @@ # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-gcc@prep.ai.mit.edu +# bug-dejagnu@gnu.org -# This file was written by Rob Savoye. (rob@cygnus.com) +# This file was written by Rob Savoye. (rob@welcomehome.org) if ![info exists board] { error "must set $board before loading unix.exp" diff --git a/config/vr4100.exp b/config/vr4100.exp index 16d20b8..49943ac 100644 --- a/config/vr4100.exp +++ b/config/vr4100.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # We're using a ddb monitor. load_generic_config "ddb"; diff --git a/config/vr4300.exp b/config/vr4300.exp index 16d20b8..49943ac 100644 --- a/config/vr4300.exp +++ b/config/vr4300.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # We're using a ddb monitor. load_generic_config "ddb"; diff --git a/config/vr5000.exp b/config/vr5000.exp index 01945cf..d52f1f8 100644 --- a/config/vr5000.exp +++ b/config/vr5000.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # We're using a ddb monitor, but we want to use the ethernet to load files. load_generic_config "ddb-ether"; diff --git a/config/vrtx.exp b/config/vrtx.exp index cff962c..ff0cd4a 100644 --- a/config/vrtx.exp +++ b/config/vrtx.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc. +# Copyright (C) 1994 - 2001 Free Software Foundation, Inc. # 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 @@ -15,9 +15,9 @@ # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-gcc@prep.ai.mit.edu +# bug-dejagnu@gnu.org -# This file was written by Rob Savoye. (rob@cygnus.com) +# This file was written by Rob Savoye. (rob@welcomehome.org) # This file uses the xsh protocol. diff --git a/config/vxworks.exp b/config/vxworks.exp index 3ab4a71..2b04e24 100644 --- a/config/vxworks.exp +++ b/config/vxworks.exp @@ -1,4 +1,4 @@ -# Copyright (C) 92, 93, 94, 95, 1996, 1997 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # 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 @@ -15,9 +15,9 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org -# This file was originally written by Rob Savoye. (rob@cygnus.com) +# This file was originally written by Rob Savoye. (rob@welcomehome.org) # and modified by Bob Manson (manson@cygnus.com) # @@ -14,6 +14,11 @@ ac_default_prefix=/usr/local ac_help="$ac_help --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer" +ac_help="$ac_help + --with-docbook directory where the db2 sgml tools are" +ac_help="$ac_help + --with-tclinclude directory where tcl header +s are" # Initialize some variables set by options. # The variables have the same names as the options, with @@ -31,7 +36,6 @@ program_suffix=NONE program_transform_name=s,x,x, silent= site= -sitefile= srcdir= target=NONE verbose= @@ -146,7 +150,6 @@ Configuration: --help print this message --no-create do not create output files --quiet, --silent do not print \`checking...' messages - --site-file=FILE use FILE as the site file --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX @@ -317,11 +320,6 @@ EOF -site=* | --site=* | --sit=*) site="$ac_optarg" ;; - -site-file | --site-file | --site-fil | --site-fi | --site-f) - ac_prev=sitefile ;; - -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) - sitefile="$ac_optarg" ;; - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) @@ -487,16 +485,12 @@ fi srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. -if test -z "$sitefile"; then - if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi -else - CONFIG_SITE="$sitefile" fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then @@ -535,8 +529,9 @@ else fi + ac_aux_dir= -for ac_dir in .. $srcdir/..; do +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" @@ -548,13 +543,12 @@ for ac_dir in .. $srcdir/..; do fi done if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in .. $srcdir/.." 1>&2; exit 1; } + { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess ac_config_sub=$ac_aux_dir/config.sub ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: @@ -567,7 +561,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:571: checking for a BSD compatible install" >&5 +echo "configure:565: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -620,7 +614,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:624: checking whether build environment is sane" >&5 +echo "configure:618: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile @@ -677,7 +671,7 @@ test "$program_suffix" != NONE && test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:681: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:675: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -706,7 +700,7 @@ fi PACKAGE=dejagnu -VERSION=20000518 +VERSION=1.4 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } @@ -723,7 +717,7 @@ EOF missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 -echo "configure:727: checking for working aclocal" >&5 +echo "configure:721: checking for working aclocal" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -736,7 +730,7 @@ else fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:740: checking for working autoconf" >&5 +echo "configure:734: checking for working autoconf" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -749,7 +743,7 @@ else fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:753: checking for working automake" >&5 +echo "configure:747: checking for working automake" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -762,7 +756,7 @@ else fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:766: checking for working autoheader" >&5 +echo "configure:760: checking for working autoheader" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -775,7 +769,7 @@ else fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:779: checking for working makeinfo" >&5 +echo "configure:773: checking for working makeinfo" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -789,7 +783,7 @@ fi echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:793: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:787: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" @@ -812,7 +806,7 @@ fi echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:816: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:810: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -838,106 +832,11 @@ else SET_MAKE="MAKE=${MAKE-make}" fi -echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:843: checking for Cygwin environment" >&5 -if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <<EOF -#line 848 "configure" -#include "confdefs.h" - -int main() { - -#ifndef __CYGWIN__ -#define __CYGWIN__ __CYGWIN32__ -#endif -return __CYGWIN__; -; return 0; } -EOF -if { (eval echo configure:859: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - ac_cv_cygwin=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_cygwin=no -fi -rm -f conftest* -rm -f conftest* -fi - -echo "$ac_t""$ac_cv_cygwin" 1>&6 -CYGWIN= -test "$ac_cv_cygwin" = yes && CYGWIN=yes -echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 -echo "configure:876: checking for mingw32 environment" >&5 -if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <<EOF -#line 881 "configure" -#include "confdefs.h" - -int main() { -return __MINGW32__; -; return 0; } -EOF -if { (eval echo configure:888: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - ac_cv_mingw32=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_mingw32=no -fi -rm -f conftest* -rm -f conftest* -fi - -echo "$ac_t""$ac_cv_mingw32" 1>&6 -MINGW32= -test "$ac_cv_mingw32" = yes && MINGW32=yes - - -echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:907: checking for executable suffix" >&5 -if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$CYGWIN" = yes || test "$MINGW32" = yes; then - ac_cv_exeext=.exe -else - rm -f conftest* - echo 'int main () { return 0; }' > conftest.$ac_ext - ac_cv_exeext= - if { (eval echo configure:917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then - for file in conftest.*; do - case $file in - *.c | *.o | *.obj | *.ilk | *.pdb) ;; - *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; - esac - done - else - { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } - fi - rm -f conftest* - test x"${ac_cv_exeext}" = x && ac_cv_exeext=no -fi -fi - -EXEEXT="" -test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} -echo "$ac_t""${ac_cv_exeext}" 1>&6 -ac_exeext=$EXEEXT - # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:941: checking for $ac_word" >&5 +echo "configure:840: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -967,7 +866,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:971: checking for $ac_word" >&5 +echo "configure:870: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1018,7 +917,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1022: checking for $ac_word" >&5 +echo "configure:921: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1050,7 +949,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1054: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:953: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -1061,12 +960,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 1065 "configure" +#line 964 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1092,12 +991,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1096: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:995: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1101: checking whether we are using GNU C" >&5 +echo "configure:1000: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1106,7 +1005,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1110: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1009: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1125,7 +1024,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1129: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1028: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1168,7 +1067,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1172: checking for a BSD compatible install" >&5 +echo "configure:1071: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1220,12 +1119,240 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:1124: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 1129 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:1140: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:1157: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 1162 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:1169: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1188: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + + + +dirlist=".. ../../ ../../.. ../../../.. ../../../../.. ../../../../../.. ../../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../../../../../../../.." +echo $ac_n "checking for docbook tools""... $ac_c" 1>&6 +echo "configure:1222: checking for docbook tools" >&5 +# Check whether --with-oskith or --without-oskith was given. +if test "${with_oskith+set}" = set; then + withval="$with_oskith" + with_docbook=${withval} +fi + +if eval "test \"`echo '$''{'ac_cv_c_docbook'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + +if test x"${with_docbook}" != x ; then + if test -f ${with_docbook}/db2html ; then + ac_cv_c_docbook=`(cd ${with_docbook}; pwd)` + else + { echo "configure: error: ${with_docbook} directory doesn't contain SGML tools" 1>&2; exit 1; } + fi +fi + +fi + +if test x"${ac_cv_c_docbook}" = x ; then + for i in $ac_default_prefix/bin /usr/local/bin $OSKITHDIR/../bin /usr/bin /bin /opt /home; do + if test -f $i/db2html ; then + ac_cv_c_docbook=$i + break + fi + done +fi + +if test x"${ac_cv_c_docbook}" = x ; then + echo "$ac_t""none" 1>&6 +else + DOCBOOK="${ac_cv_c_docbook}" + echo "$ac_t""${ac_cv_c_docbook}" 1>&6 +fi + + + + + +dirlist=".. ../../ ../../../ ../../../../ ../../../../../ ../../../../../../ ../ +../../../../../.. ../../../../../../../.. ../../../../../../../../.. ../../../.. +/../../../../../.." +no_itcl=true +echo $ac_n "checking for the tclsh program""... $ac_c" 1>&6 +echo "configure:1268: checking for the tclsh program" >&5 +# Check whether --with-tclinclude or --without-tclinclude was given. +if test "${with_tclinclude+set}" = set; then + withval="$with_tclinclude" + with_tclinclude=${withval} +fi + +if eval "test \"`echo '$''{'ac_cv_path_tclsh'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + +if test x"${with_tclinclude}" != x ; then + if test -f ${with_tclinclude}/tclsh ; then + ac_cv_path_tclsh=`(cd ${with_tclinclude}; pwd)` + elif test -f ${with_tclinclude}/src/tclsh ; then + ac_cv_path_tclsh=`(cd ${with_tclinclude}/src; pwd)` + else + { echo "configure: error: ${with_tclinclude} directory doesn't contain tclsh" 1>&2; exit 1; } + fi +fi + +fi + + +if test x"${ac_cv_path_tclsh}" = x ; then + for i in $dirlist; do + if test -n "`ls -dr $srcdir/$i/tcl* 2>/dev/null`" ; then + tclpath=$srcdir/$i + break + fi + done + + for i in `ls -dr $tclpath/tcl* 2>/dev/null ` ; do + if test -f $i/src/tclsh ; then + ac_cv_path_tclsh=`(cd $i/src; pwd)`/tclsh + break + fi + done +fi + +if test x"${ac_cv_path_tclsh}" = x ; then + echo "$ac_t""none" 1>&6 + # Extract the first word of "tclsh", so it can be a program name with args. +set dummy tclsh; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1313: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_tclsh'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$tclsh" in + /*) + ac_cv_path_tclsh="$tclsh" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_tclsh="$tclsh" # Let the user override the test with a dos path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_path_tclsh="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + ;; +esac +fi +tclsh="$ac_cv_path_tclsh" +if test -n "$tclsh"; then + echo "$ac_t""$tclsh" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + echo "$ac_t""${ac_cv_path_tclsh}" 1>&6 +fi +TCLSH="${ac_cv_path_tclsh}" + + BOARDS='$(boards)' CONFIG='$(config)' - + subdirs="example/calc" @@ -1342,7 +1469,7 @@ done ac_given_srcdir=$srcdir ac_given_INSTALL="$INSTALL" -trap 'rm -fr `echo "Makefile doc/Makefile example/Makefile testsuite/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +trap 'rm -fr `echo "Makefile doc/Makefile testsuite/Makefile example/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 EOF cat >> $CONFIG_STATUS <<EOF @@ -1388,8 +1515,11 @@ s%@SET_MAKE@%$SET_MAKE%g s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g s%@MAINT@%$MAINT%g -s%@EXEEXT@%$EXEEXT%g s%@CC@%$CC%g +s%@EXEEXT@%$EXEEXT%g +s%@DOCBOOK@%$DOCBOOK%g +s%@tclsh@%$tclsh%g +s%@TCLSH@%$TCLSH%g s%@BOARDS@%$BOARDS%g s%@CONFIG@%$CONFIG%g s%@subdirs@%$subdirs%g @@ -1434,7 +1564,7 @@ EOF cat >> $CONFIG_STATUS <<EOF -CONFIG_FILES=\${CONFIG_FILES-"Makefile doc/Makefile example/Makefile testsuite/Makefile"} +CONFIG_FILES=\${CONFIG_FILES-"Makefile doc/Makefile testsuite/Makefile example/Makefile"} EOF cat >> $CONFIG_STATUS <<\EOF for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then diff --git a/configure.in b/configure.in index 263f043..93bbc55 100644 --- a/configure.in +++ b/configure.in @@ -1,24 +1,30 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.13) AC_INIT(runtest.exp) -AC_CONFIG_AUX_DIR(..) +dnl AC_CONFIG_AUX_DIR(..) dnl These are required by automake -AM_INIT_AUTOMAKE(dejagnu, 20000518) +AM_INIT_AUTOMAKE(dejagnu, 1.4) AM_MAINTAINER_MODE AC_PROG_MAKE_SET -AC_EXEEXT AC_PROG_CC AC_PROG_INSTALL +AC_EXEEXT + +dnl we need the path to Docbook so we can build packages. +DJ_AC_PATH_DOCBOOK + +dnl we need the path to the tcl shell to build a release +DJ_AC_PATH_TCLSH dnl Level of indirection for automake macro (baseboards:boards_DATA) BOARDS='$(boards)' AC_SUBST(BOARDS) CONFIG='$(config)' AC_SUBST(CONFIG) - + AC_CONFIG_SUBDIRS(example/calc) -AC_OUTPUT(Makefile doc/Makefile example/Makefile testsuite/Makefile) +AC_OUTPUT(Makefile doc/Makefile testsuite/Makefile example/Makefile) diff --git a/doc/Makefile.am b/doc/Makefile.am index 9521a40..6e367d5 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,10 +1,9 @@ ## Process this file with automake to generate Makefile.in -AUTOMAKE_OPTIONS = cygnus +# AUTOMAKE_OPTIONS = -info_TEXINFOS = dejagnu.texi - -TARGETS = overview.rtf overview.html overview.dvi overview.ps +DOCBOOK = @DOCBOOK@ +TARGETS = overview.html overview.rtf # overview.dvi overview.ps docs: $(TARGETS) @@ -12,13 +11,13 @@ docs: $(TARGETS) dvips -o $@ $< %.pdf: %.sgml - db2pdf $< + $(DOCBOOK)/db2pdf $< %.dvi: %.sgml - db2dvi $< + $(DOCBOOK)/db2dvi $< %.rtf: %.sgml - db2rtf -o $@ $< + $(DOCBOOK)/db2rtf -o $@ $< %.gif: %.fig convert -transparency white $< $@ # .fig -> .gif @@ -30,18 +29,18 @@ docs: $(TARGETS) fig2dev -L ps -m 0.7 -p dummy $< > $@ # .fig -> .eps/portrait %.html: %.sgml - db2html $< + $(DOCBOOK)/db2html $< # now for some extra dependencies that the automatic rules will not # catch: -overview.pdf overview.ps overview.dvi overview.rtf overview.html: overview.sgml ref.sgml user.sgml +html rtf overview.pdf overview.ps overview.dvi overview.rtf overview.html: overview.sgml ref.sgml user.sgml clean: rm -f $(TARGETS) -# install-data-local: overview.pdf overview.html -# $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/html -# $(INSTALL_DATA) overview/*.html $(DESTDIR)$(pkgdatadir)/html +install-doc: $(TARGETS) + $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/html + $(INSTALL_DATA) overview/*.html $(DESTDIR)$(pkgdatadir)/html # $(INSTALL_DATA) overview.ps $(DESTDIR)$(pkgdatadir)/dejagnu.ps # $(INSTALL_DATA) overview.pdf $(DESTDIR)$(pkgdatadir)/dejagnu.pdf diff --git a/doc/Makefile.in b/doc/Makefile.in index 31d809b..0666f86 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -10,6 +10,8 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. +# AUTOMAKE_OPTIONS = + SHELL = @SHELL@ @@ -64,149 +66,30 @@ EXEEXT = @EXEEXT@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ PACKAGE = @PACKAGE@ +TCLSH = @TCLSH@ VERSION = @VERSION@ +tclsh = @tclsh@ -AUTOMAKE_OPTIONS = cygnus - -info_TEXINFOS = dejagnu.texi - -TARGETS = overview.rtf overview.html overview.dvi overview.ps -mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs +DOCBOOK = @DOCBOOK@ +TARGETS = overview.html overview.rtf # overview.dvi overview.ps +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = -TEXI2DVI = `if test -f $(top_srcdir)/../texinfo/util/texi2dvi; then echo $(top_srcdir)/../texinfo/util/texi2dvi; else echo texi2dvi; fi` -TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex -INFO_DEPS = dejagnu.info -DVIS = dejagnu.dvi -TEXINFOS = dejagnu.texi DIST_COMMON = README Makefile.am Makefile.in configure configure.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = gtar +TAR = tar GZIP_ENV = --best all: all-redirect .SUFFIXES: -.SUFFIXES: .dvi .info .ps .texi .texinfo .txi $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --cygnus doc/Makefile + cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status - -dejagnu.info: dejagnu.texi -dejagnu.dvi: dejagnu.texi - - -DVIPS = dvips - -.texi.info: - @rm -f $@ $@-[0-9] $@-[0-9][0-9] - $(MAKEINFO) -I $(srcdir) $< - -.texi.dvi: - TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \ - MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< - -.texi: - @rm -f $@ $@-[0-9] $@-[0-9][0-9] - $(MAKEINFO) -I $(srcdir) $< - -.texinfo.info: - @rm -f $@ $@-[0-9] $@-[0-9][0-9] - $(MAKEINFO) -I $(srcdir) $< - -.texinfo: - @rm -f $@ $@-[0-9] $@-[0-9][0-9] - $(MAKEINFO) -I $(srcdir) $< - -.texinfo.dvi: - TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \ - MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< - -.txi.info: - @rm -f $@ $@-[0-9] $@-[0-9][0-9] - $(MAKEINFO) -I $(srcdir) $< - -.txi.dvi: - TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \ - MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< - -.txi: - @rm -f $@ $@-[0-9] $@-[0-9][0-9] - $(MAKEINFO) -I $(srcdir) $< -.dvi.ps: - $(DVIPS) $< -o $@ - -install-info-am: $(INFO_DEPS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(infodir) - @list='$(INFO_DEPS)'; \ - for file in $$list; do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ - for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \ - if test -f $$d/$$ifile; then \ - echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \ - $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \ - else : ; fi; \ - done; \ - done - @$(POST_INSTALL) - @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ - list='$(INFO_DEPS)'; \ - for file in $$list; do \ - echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\ - install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\ - done; \ - else : ; fi - -uninstall-info: - $(PRE_UNINSTALL) - @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ - ii=yes; \ - else ii=; fi; \ - list='$(INFO_DEPS)'; \ - for file in $$list; do \ - test -z "$ii" \ - || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \ - done - @$(NORMAL_UNINSTALL) - list='$(INFO_DEPS)'; \ - for file in $$list; do \ - (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \ - done - -dist-info: $(INFO_DEPS) - list='$(INFO_DEPS)'; \ - for base in $$list; do \ - if test -f $$base; then d=.; else d=$(srcdir); fi; \ - for file in `cd $$d && eval echo $$base*`; do \ - test -f $(distdir)/$$file \ - || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ - || cp -p $$d/$$file $(distdir)/$$file; \ - done; \ - done - -mostlyclean-aminfo: - -rm -f dejagnu.aux dejagnu.cp dejagnu.cps dejagnu.dvi dejagnu.fn \ - dejagnu.fns dejagnu.ky dejagnu.kys dejagnu.ps dejagnu.log \ - dejagnu.pg dejagnu.toc dejagnu.tp dejagnu.tps dejagnu.vr \ - dejagnu.vrs dejagnu.op dejagnu.tr dejagnu.cv dejagnu.cn - -clean-aminfo: - -distclean-aminfo: - -maintainer-clean-aminfo: - for i in $(INFO_DEPS); do \ - rm -f $$i; \ - if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \ - rm -f $$i-[0-9]*; \ - fi; \ - done -clean-info: mostlyclean-aminfo tags: TAGS TAGS: @@ -216,27 +99,29 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = doc distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu doc/Makefile @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ + cp -pr $$/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done - $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info -info-am: $(INFO_DEPS) +info-am: info: info-am -dvi-am: $(DVIS) +dvi-am: dvi: dvi-am -check-am: +check-am: all-am check: check-am installcheck-am: installcheck: installcheck-am -install-info-am: -install-info: install-info-am install-exec-am: install-exec: install-exec-am @@ -264,29 +149,26 @@ distclean-generic: -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: -mostlyclean-am: mostlyclean-aminfo mostlyclean-generic +mostlyclean-am: mostlyclean-generic mostlyclean: mostlyclean-am -clean-am: clean-aminfo clean-generic mostlyclean-am +clean-am: clean-generic mostlyclean-am clean: clean-am -distclean-am: distclean-aminfo distclean-generic clean-am +distclean-am: distclean-generic clean-am distclean: distclean-am -maintainer-clean-am: maintainer-clean-aminfo maintainer-clean-generic \ - distclean-am +maintainer-clean-am: maintainer-clean-generic distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." maintainer-clean: maintainer-clean-am -.PHONY: install-info-am uninstall-info mostlyclean-aminfo \ -distclean-aminfo clean-aminfo maintainer-clean-aminfo tags distdir \ -info-am info dvi-am dvi check check-am installcheck-am installcheck \ -install-info-am install-info install-exec-am install-exec \ +.PHONY: tags distdir info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-exec-am install-exec \ install-data-am install-data install-am install uninstall-am uninstall \ all-redirect all-am all installdirs mostlyclean-generic \ distclean-generic clean-generic maintainer-clean-generic clean \ @@ -299,13 +181,13 @@ docs: $(TARGETS) dvips -o $@ $< %.pdf: %.sgml - db2pdf $< + $(DOCBOOK)/db2pdf $< %.dvi: %.sgml - db2dvi $< + $(DOCBOOK)/db2dvi $< %.rtf: %.sgml - db2rtf -o $@ $< + $(DOCBOOK)/db2rtf -o $@ $< %.gif: %.fig convert -transparency white $< $@ # .fig -> .gif @@ -317,19 +199,19 @@ docs: $(TARGETS) fig2dev -L ps -m 0.7 -p dummy $< > $@ # .fig -> .eps/portrait %.html: %.sgml - db2html $< + $(DOCBOOK)/db2html $< # now for some extra dependencies that the automatic rules will not # catch: -overview.pdf overview.ps overview.dvi overview.rtf overview.html: overview.sgml ref.sgml user.sgml +html rtf overview.pdf overview.ps overview.dvi overview.rtf overview.html: overview.sgml ref.sgml user.sgml clean: rm -f $(TARGETS) -# install-data-local: overview.pdf overview.html -# $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/html -# $(INSTALL_DATA) overview/*.html $(DESTDIR)$(pkgdatadir)/html +install-doc: $(TARGETS) + $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/html + $(INSTALL_DATA) overview/*.html $(DESTDIR)$(pkgdatadir)/html # $(INSTALL_DATA) overview.ps $(DESTDIR)$(pkgdatadir)/dejagnu.ps # $(INSTALL_DATA) overview.pdf $(DESTDIR)$(pkgdatadir)/dejagnu.pdf diff --git a/doc/dejagnu.texi b/doc/dejagnu.texi index 68c4008..0d06cea 100644 --- a/doc/dejagnu.texi +++ b/doc/dejagnu.texi @@ -4,7 +4,7 @@ o\input texinfo @c -*- Texinfo -*- @c @c This file documents the GNU Testing Framework ``DejaGnu'' @c -@c Copyright (C) 92, 93, 94, 95, 1996 Free Software Foundation, Inc. +@c Copyright (C) 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. @c @c This text may be freely distributed under the terms of the GNU @c General Public License. @@ -43,7 +43,7 @@ END-INFO-DIR-ENTRY @end tex @vskip 0pt plus 1filll -Copyright @copyright{} 92, 93, 94, 95, 1996 Free Software Foundation, Inc. +Copyright @copyright{} 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -60,7 +60,7 @@ into another language, under the above conditions for modified versions. @end titlepage @ifinfo -Copyright @copyright{} 92, 93, 94, 95, 1996 Free Software Foundation, Inc. +Copyright @copyright{} 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice diff --git a/doc/overview.sgml b/doc/overview.sgml index 58bce0c..4d86d25 100644 --- a/doc/overview.sgml +++ b/doc/overview.sgml @@ -4,18 +4,19 @@ <?Fm: Validation Off> -<!ENTITY version "0.5"> +<!ENTITY version "1.4"> <!ENTITY dj "DejaGnu"> <!ENTITY dejagnu-copyright " - <YEAR>1998</YEAR> + <YEAR>2000</YEAR> <HOLDER>Free Software Foundation, Inc.</HOLDER>"> <!ENTITY dejagnu-code-copyright " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% This file documents the GNU Testing Framework ``DejaGnu'' -Copyright (C) 92, 93, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. +Copyright (C) 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software +Foundation, Inc. This text may be freely distributed under the terms of the GNU General Public License. @@ -23,7 +24,8 @@ General Public License. "> <!ENTITY dejagnu-copyright " -Copyright 92, 93, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. +Copyright 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software +Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice @@ -51,7 +53,7 @@ into another language, under the above conditions for modified versions. <bookinfo> <title>&dj;</title> <subtitle>The GNU Testing Framework</subtitle> - <date>1998 Nov 24</date> + <date>2000 Jan 24</date> <edition> &version</edition> <releaseinfo> for circulation within Cygnus</releaseinfo> <authorgroup> @@ -83,8 +85,8 @@ into another language, under the above conditions for modified versions. <!-- </legalnotice> --> <revhistory> <revision> - <revnumber> 0.1</revnumber> - <date>1998-11</date> + <revnumber>0.5</revnumber> + <date>2000-1-24</date> <authorinitials>rob@welcomehome.org</authorinitials> <revremark>Initial version after conversion to DocBook.</revremark> </revision> @@ -226,7 +228,7 @@ into another language, under the above conditions for modified versions. <listitem><para>NT support. There is beta level support for NT that is still a work in progress. This requires the <ulink - URL=httpd://sourceware.cygnus.com>Cygwin</ulink> POSIX system + URL="http://sources.redhat.com">Cygwin</ulink> POSIX system for NT.</para></listitem> </itemizedlist> @@ -235,13 +237,13 @@ into another language, under the above conditions for modified versions. <title>NT Support</title> <para>To use DejaGnu on NT, you need to first install the - <ulink URL="http://sourceware.cygnus.com">Cygwin</ulink> + <ulink URL="http://sources.redhat.com">Cygwin</ulink> release. This works as of the B20.1 release. Cygwin is a POSIX system for NT. This covers both utility programs, and a libray that adds POSIX system calls to NT. Among them is pseudo tty support for NT that emulates the POSIX pty standard. The latest Cygwin is always available from <ulink - URL="http://sourceware.cygnus.com">this location</ulink>. This + URL="http://sources.redhat.com">this location</ulink>. This works well enough to run <emphasis>"make check"</emphasis> of the GNU development tree on NT after a native build. But the nature of pty's on NT is still evolving. Your mileage may @@ -259,16 +261,18 @@ into another language, under the above conditions for modified versions. in many different environments, and we needed a testing tool that:</para> <itemizedlist mark="bullet"> - <listitem><para>is useful to developers while fixing bugs.</para> + <listitem><para>is useful to developers while fixing + bugs.</para></listitem> <listitem><para>automates running many tests during a software - release process.</para> + release process.</para></listitem> <listitem><para>is portable among a variety of host - computers.</para> - <listitem><para>supports cross-development testing.</para> + computers.</para></listitem> + <listitem><para>supports cross-development + testing.</para></listitem> <listitem><para>permits testing interactive programs, like - <command>GDB</command>; and </para> + <command>GDB</command>; and </para></listitem> <listitem><para>permits testing batch oriented programs, like - <command>GCC</command>.</para> + <command>GCC</command>.</para></listitem> </itemizedlist> <para>Some of the requirements proved challenging. For example, @@ -323,7 +327,8 @@ into another language, under the above conditions for modified versions. POSIX conforming systems, and a fifth for a conditional feature. DejaGnu supports the use of all five output messages; in this sense a test suite that uses exactly these messages can be considered POSIX conforming. - These definitions specify the output of a test case:</para> + These definitions specify the output of a test + case:</para> <variablelist> <varlistentry> @@ -374,30 +379,38 @@ into another language, under the above conditions for modified versions. code.</para> <para>Here are some of the ways a test may wind up - <emphasis>UNRESOLVED</emphasis>:</para> + <emphasis>UNRESOLVED</emphasis>:</para></listitem> - <itemizedlist mark=bullet> - <listitem><para>A test's execution is interrupted.</listitem> + </varlistentry> + </variablelist> - <listitem><para>A test does not produce a clear result. This is - usually because there was an <emphasis>ERROR</emphasis> from - DejaGnu while processing the test, or because there were three or - more <emphasis>WARNING</emphasis> messages. Any - <emphasis>WARNING</emphasis> or <emphasis>ERROR</emphasis> messages - can invalidate the output of the test. This usually requires a - human being to examine the output to determine what really - happened---and to improve the test case.</para></listitem> + <itemizedlist mark=bullet> + <listitem><para>A test's execution is + interrupted.</para></listitem> + + <listitem><para>A test does not produce a clear + result. This is usually because there was an + <emphasis>ERROR</emphasis> from DejaGnu while processing + the test, or because there were three or more + <emphasis>WARNING</emphasis> messages. Any + <emphasis>WARNING</emphasis> or <emphasis>ERROR</emphasis> + messages can invalidate the output of the test. This + usually requires a human being to examine the output to + determine what really happened---and to improve the test + case.</para></listitem> <listitem><para>A test depends on a previous test, which fails.</para></listitem> - <listitem><para>The test was set up incorrectly.</para></listitem> + <listitem><para>The test was set up + incorrectly.</para></listitem> </itemizedlist> + <variablelist> <varlistentry> <term>UNTESTED</term> <listitem><para>A test was not run. This is a placeholder, used - when there is no real test case yet.</para> + when there is no real test case yet.</para></listitem> </varlistentry> </variablelist> @@ -414,7 +427,8 @@ into another language, under the above conditions for modified versions. a testing environment (often a ``bare board'' target) lacks basic support for compiling or running the test case. For example, a test for the system subroutine <emphasis>gethostname</emphasis> - would never work on a target board running only a boot monitor. + would never work on a target board running only a boot + monitor.</para></listitem> </varlistentry> </variablelist> @@ -425,7 +439,7 @@ into another language, under the above conditions for modified versions. described in the <emphasis>PASS</emphasis> section above, and you must be careful to return <emphasis>UNRESOLVED</emphasis> where appropriate, as described in the <emphasis>UNRESOLVED</emphasis> section - above.</para> + above.</para> </sect1> </chapter> diff --git a/doc/overview/addboard.html b/doc/overview/addboard.html new file mode 100644 index 0000000..37463c7 --- /dev/null +++ b/doc/overview/addboard.html @@ -0,0 +1,261 @@ +<HTML +><HEAD +><TITLE +>Adding A New Board</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Extending DejaGnu" +HREF="extending.html"><LINK +REL="PREVIOUS" +TITLE="Adding A New Target" +HREF="addtarget.html"><LINK +REL="NEXT" +TITLE="Board Config File Values" +HREF="boarddefs.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="addtarget.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 4. Extending DejaGnu</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="boarddefs.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="ADDBOARD" +>Adding A New Board</A +></H1 +><P +>Adding a new board consists of creating a new board config + file. Examples are in + <TT +CLASS="FILENAME" +>dejagnu/baseboards</TT +>. Usually to make a new + board file, it's easiest to copy an existing one. It is also + possible to have your file be based on a + <I +CLASS="EMPHASIS" +>baseboard</I +> file with only one or two + changes needed. Typically, this can be as simple as just + changing the linker script. Once the new baseboard file is done, + add it to the <SPAN +CLASS="SYMBOL" +>boards_DATA</SPAN +> list in the + <TT +CLASS="FILENAME" +>dejagnu/baseboards/Makefile.am</TT +>, and regenerate the + Makefile.in using automake. Then just rebuild and install DejaGnu. You + can test it by:</P +><P +>There is a crude inheritance scheme going on with board files, so + you can include one board file into another, The two main procedures used + to do this are <TT +CLASS="FUNCTION" +><B +>load_generic_config</B +></TT +> and + <TT +CLASS="FUNCTION" +><B +>load_base_board_description</B +></TT +>. The generic config file + contains other procedures used for a certain class of target. The + board description file is where the board specfic settings go. Commonly + there are similar target environments with just different + processors.</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 4-6. Testing a New Board Config File</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="SCREEN" +> make check RUNTESTFLAGS="--target_board=<I +CLASS="EMPHASIS" +>newboardfile</I +>". + </PRE +></TD +></TR +></TABLE +></DIV +><P +>Here's an example of a board config file. There are + several <I +CLASS="EMPHASIS" +>helper procedures</I +> used in this + example. A helper procedure is one that look for a tool of files + in commonly installed locations. These are mostly used when + testing in the build tree, because the executables to be tested + are in the same tree as the new dejagnu files. The helper + procedures are the ones in square braces + <I +CLASS="EMPHASIS" +>[]</I +>, which is the Tcl execution characters.</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 4-7. Example Board Config File</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> # Load the generic configuration for this board. This will define a basic + # set of routines needed by the tool to communicate with the board. + load_generic_config "sim" + + # basic-sim.exp is a basic description for the standard Cygnus simulator. + load_base_board_description "basic-sim" + + # The compiler used to build for this board. This has *nothing* to do + # with what compiler is tested if we're testing gcc. + set_board_info compiler "[find_gcc]" + + # We only support newlib on this target. + # However, we include libgloss so we can find the linker scripts. + set_board_info cflags "[newlib_include_flags] [libgloss_include_flags]" + set_board_info ldflags "[newlib_link_flags]" + + # No linker script for this board. + set_board_info ldscript "-Tsim.ld"; + + # The simulator doesn't return exit statuses and we need to indicate this. + set_board_info needs_status_wrapper 1 + + # Can't pass arguments to this target. + set_board_info noargs 1 + + # No signals. + set_board_info gdb,nosignals 1 + + # And it can't call functions. + set_board_info gdb,cannot_call_functions 1 + + </PRE +></TD +></TR +></TABLE +></DIV +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="addtarget.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="boarddefs.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Adding A New Target</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="extending.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Board Config File Values</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/adding.html b/doc/overview/adding.html new file mode 100644 index 0000000..cac339d --- /dev/null +++ b/doc/overview/adding.html @@ -0,0 +1,244 @@ +<HTML +><HEAD +><TITLE +>Adding A Test Case To A Test Suite.</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Extending DejaGnu" +HREF="extending.html"><LINK +REL="PREVIOUS" +TITLE="Debugging A Test Case" +HREF="debugging.html"><LINK +REL="NEXT" +TITLE="Hints On Writing A Test Case" +HREF="hints.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="debugging.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 4. Extending DejaGnu</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="hints.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="ADDING" +>Adding A Test Case To A Test Suite.</A +></H1 +><P +>There are two slightly different ways to add a test + case. One is to add the test case to an existing directory. The + other is to create a new directory to hold your test. The + existing test directories represent several styles of testing, + all of which are slightly different; examine the directories for + the tool of interest to see which (if any) is most suitable.</P +><P +>Adding a GCC test can be very simple: just add the C code + to any directory beginning with <TT +CLASS="FILENAME" +>gcc</TT +>. and it + runs on the next <TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>runtest --tool + gcc</PRE +></TD +></TR +></TABLE +>.</P +><P +>To add a test to GDB, first add any source code you will + need to the test directory. Then you can either create a new + expect file, or add your test to an existing one (any + file with a <I +CLASS="EMPHASIS" +>.exp</I +> suffix). Creating a new + .exp file is probably a better idea if the test is significantly + different from existing tests. Adding it as a separate file also + makes upgrading easier. If the C code has to be already compiled + before the test will run, then you'll have to add it to the + <TT +CLASS="FILENAME" +>Makefile.in</TT +> file for that test directory, + then run <B +CLASS="COMMAND" +>configure</B +> and + <B +CLASS="COMMAND" +>make</B +>.</P +><P +>Adding a test by creating a new directory is very + similar:</P +><P +></P +><UL +><LI +STYLE="list-style-type: disc" +><P +>Create the new directory. All subdirectory names + begin with the name of the tool to test; e.g. G++ tests might be + in a directory called <TT +CLASS="FILENAME" +>g++.other</TT +>. There can + be multiple test directories that start with the same tool name + (such as <I +CLASS="EMPHASIS" +>g++</I +>).</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Add the new directory name to the + <SPAN +CLASS="SYMBOL" +>configdirs</SPAN +> definition in the + <TT +CLASS="FILENAME" +>configure.in</TT +> file for the test suite + directory. This way when <B +CLASS="COMMAND" +>make</B +> and + <B +CLASS="COMMAND" +>configure</B +> next run, they include the new + directory.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Add the new test case to the directory, as + above. </P +></LI +><LI +STYLE="list-style-type: disc" +><P +>To add support in the new directory for + configure and make, you must also create a + <TT +CLASS="FILENAME" +>Makefile.in</TT +> and a + <TT +CLASS="FILENAME" +>configure.in</TT +>.</P +></LI +></UL +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="debugging.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="hints.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Debugging A Test Case</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="extending.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Hints On Writing A Test Case</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/addtarget.html b/doc/overview/addtarget.html new file mode 100644 index 0000000..609a6ac --- /dev/null +++ b/doc/overview/addtarget.html @@ -0,0 +1,206 @@ +<HTML +><HEAD +><TITLE +>Adding A New Target</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Extending DejaGnu" +HREF="extending.html"><LINK +REL="PREVIOUS" +TITLE="Adding A New Tool" +HREF="addtool.html"><LINK +REL="NEXT" +TITLE="Adding A New Board" +HREF="addboard.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="addtool.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 4. Extending DejaGnu</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="addboard.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="ADDTARGET" +>Adding A New Target</A +></H1 +><P +>DejaGnu has some additional requirements for target support, beyond + the general-purpose provisions of configure. DejaGnu must actively + communicate with the target, rather than simply generating or managing + code for the target architecture. Therefore, each tool requires an + initialization module for each target. For new targets, you must supply + a few Tcl procedures to adapt DejaGnu to the target. This permits + DejaGnu itself to remain target independent.</P +><P +>Usually the best way to write a new initialization module is to + edit an existing initialization module; some trial and error will be + required. If necessary, you can use the @samp{--debug} option to see what + is really going on.</P +><P +>When you code an initialization module, be generous in printing + information controlled by the <TT +CLASS="FUNCTION" +><B +>verbose</B +></TT +> + procedure.</P +><P +>For cross targets, most of the work is in getting the + communications right. Communications code (for several situations + involving IP networks or serial lines) is available in a DejaGnu library + file.</P +><P +>If you suspect a communication problem, try running the connection + interactively from <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +>. (There are three + ways of running <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> as an interactive + interpreter. You can run <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> with no + arguments, and control it completely interactively; or you can use + <B +CLASS="COMMAND" +>expect -i</B +> together with other command-line options and + arguments; or you can run the command <B +CLASS="COMMAND" +>interpreter</B +> from + any <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> procedure. Use + <B +CLASS="COMMAND" +>return</B +> to get back to the calling procedure (if any), + or <B +CLASS="COMMAND" +>return -tcl</B +> to make the calling procedure itself + return to its caller; use <B +CLASS="COMMAND" +>exi</B +>t or end-of-file to leave + Expect altogether.) Run the program whose name is recorded in + <SPAN +CLASS="SYMBOL" +>$connectmode</SPAN +>, with the arguments in + <SPAN +CLASS="SYMBOL" +>$targetname</SPAN +>, to establish a connection. You should at + least be able to get a prompt from any target that is physically + connected.</P +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="addtool.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="addboard.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Adding A New Tool</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="extending.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Adding A New Board</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/addtool.html b/doc/overview/addtool.html new file mode 100644 index 0000000..a5f7330 --- /dev/null +++ b/doc/overview/addtool.html @@ -0,0 +1,577 @@ +<HTML +><HEAD +><TITLE +>Adding A New Tool</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Extending DejaGnu" +HREF="extending.html"><LINK +REL="PREVIOUS" +TITLE="Extending DejaGnu" +HREF="extending.html"><LINK +REL="NEXT" +TITLE="Adding A New Target" +HREF="addtarget.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="extending.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 4. Extending DejaGnu</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="addtarget.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="ADDTOOL" +>Adding A New Tool</A +></H1 +><P +>In general, the best way to learn how to write (code or even prose) + is to read something similar. This principle applies to test cases and + to test suites. Unfortunately, well-established test suites have a way + of developing their own conventions: as test writers become more + experienced with DejaGnu and with Tcl, they accumulate more utilities, + and take advantage of more and more features of + <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> and <SPAN +CLASS="PRODUCTNAME" +>Tcl</SPAN +> in + general.</P +><P +>Inspecting such established test suites may make the prospect of + creating an entirely new test suite appear overwhelming. Nevertheless, + it is quite straightforward to get a new test suite going.</P +><P +>There is one test suite that is guaranteed not to grow more + elaborate over time: both it and the tool it tests were created expressly + to illustrate what it takes to get started with DejaGnu. The + <TT +CLASS="FILENAME" +>example/</TT +> directory of the DejaGnu distribution + contains both an interactive tool called <B +CLASS="COMMAND" +>calc</B +>, and a + test suite for it. Reading this test suite, and experimenting with it, + is a good way to supplement the information in this section. (Thanks to + Robert Lupton for creating calc and its test suite---and also the first + version of this section of the manual!)</P +><P +>To help orient you further in this task, here is an outline of the + steps to begin building a test suite for a program example.</P +><P +></P +><UL +><LI +STYLE="list-style-type: disc" +><P +>Create or select a directory to contain your new + collection of tests. Change into that directory (shown here as + <TT +CLASS="FILENAME" +>testsuite</TT +>):</P +><P +>Create a <TT +CLASS="FILENAME" +>configure.in</TT +> file in this directory, + to control configuration-dependent choices for your tests. So far as + DejaGnu is concerned, the important thing is to set a value for the + variable <SPAN +CLASS="SYMBOL" +>target_abbrev</SPAN +>; this value is the link to the + init file you will write soon. (For simplicity, we assume the + environment is Unix, and use <I +CLASS="EMPHASIS" +>unix</I +> as the + value.)</P +><P +>What else is needed in <TT +CLASS="FILENAME" +>configure.in</TT +> depends on + the requirements of your tool, your intended test environments, and which + configure system you use. This example is a minimal configure.in for use + with <SPAN +CLASS="PRODUCTNAME" +>GNU Autoconf</SPAN +>. </P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Create <TT +CLASS="FILENAME" +>Makefile.in</TT +> (if you are using + Autoconf), or <TT +CLASS="FILENAME" +>Makefile.am</TT +>(if you are using + Automake), the source file used by configure to build your + <TT +CLASS="FILENAME" +>Makefile</TT +>. If you are using GNU Automake.just add the + keyword <I +CLASS="EMPHASIS" +>dejagnu</I +> to the + <I +CLASS="EMPHASIS" +>AUTOMAKE_OPTIONS</I +> variable in your + <TT +CLASS="FILENAME" +>Makefile.am</TT +> file. This will add all the Makefile + support needed to run DejaGnu, and support the <A +HREF="runningtests.html#MAKECHECK" +><I +>Make Check</I +></A +> + target.</P +><P +>You also need to include two targets important to DejaGnu: + <I +CLASS="EMPHASIS" +>check</I +>, to run the tests, and + <I +CLASS="EMPHASIS" +>site.exp</I +>, to set up the Tcl copies of + configuration-dependent values. This is called the <A +HREF="customizing.html#LOCAL" +><I +>Local Config File</I +></A +> + The check target must run the <B +CLASS="COMMAND" +>runtest</B +> program to + execute the tests.</P +><P +>The <TT +CLASS="FILENAME" +>site.exp</TT +> target should usually set up + (among other things) the $tool variable for the name of your program. If + the local site.exp file is setup correctly, it is possible to execute the + tests by merely typing <B +CLASS="COMMAND" +>runtest</B +> on the command + line.</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 4-1. Sample Makefile.in Fragment</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> # Look for a local version of DejaGnu, otherwise use one in the path + RUNTEST = `if test -f $(top_srcdir)/../dejagnu/runtest; then \ + echo $(top_srcdir) ../dejagnu/runtest; \ + else \ + echo runtest; \ + fi` + + # The flags to pass to runtest + RUNTESTFLAGS = + + # Execute the tests + check: site.exp all + $(RUNTEST) $(RUNTESTFLAGS) \ + --tool <SPAN +CLASS="SYMBOL" +>${example}</SPAN +> --srcdir $(srcdir) + + # Make the local config file + site.exp: ./config.status Makefile + @echo "Making a new config file..." + -@rm -f ./tmp? + @touch site.exp + + -@mv site.exp site.bak + @echo "## these variables are automatically\ + generated by make ##" > ./tmp0 + @echo "# Do not edit here. If you wish to\ + override these values" >> ./tmp0 + @echo "# add them to the last section" >> ./tmp0 + @echo "set host_os ${host_os}" >> ./tmp0 + @echo "set host_alias ${host_alias}" >> ./tmp0 + @echo "set host_cpu ${host_cpu}" >> ./tmp0 + @echo "set host_vendor ${host_vendor}" >> ./tmp0 + @echo "set target_os ${target_os}" >> ./tmp0 + @echo "set target_alias ${target_alias}" >> ./tmp0 + @echo "set target_cpu ${target_cpu}" >> ./tmp0 + @echo "set target_vendor ${target_vendor}" >> ./tmp0 + @echo "set host_triplet ${host_canonical}" >> ./tmp0 + @echo "set target_triplet ${target_canonical}">>./tmp0 + @echo "set tool binutils" >> ./tmp0 + @echo "set srcdir ${srcdir}" >> ./tmp0 + @echo "set objdir `pwd`" >> ./tmp0 + @echo "set <SPAN +CLASS="SYMBOL" +>${examplename}</SPAN +> <SPAN +CLASS="SYMBOL" +>${example}</SPAN +>" >> ./tmp0 + @echo "## All variables above are generated by\ + configure. Do Not Edit ##" >> ./tmp0 + @cat ./tmp0 > site.exp + @sed < site.bak \ + -e '1,/^## All variables above are.*##/ d' \ + >> site.exp + -@rm -f ./tmp? + + </PRE +></TD +></TR +></TABLE +></DIV +></LI +><LI +STYLE="list-style-type: disc" +><P +>Create a directory (in <TT +CLASS="FILENAME" +>testsuite</TT +>) + called <TT +CLASS="FILENAME" +>config</TT +>. Make a <I +CLASS="EMPHASIS" +>Tool Init + File</I +> in this directory. Its name must start with the + <SPAN +CLASS="SYMBOL" +>target_abbrev</SPAN +> value, or be named + <TT +CLASS="FILENAME" +>default.exp</TT +> so call it + <TT +CLASS="FILENAME" +>config/unix.exp</TT +> for our Unix based example. This + is the file that contains the target-dependent procedures. + Fortunately, on Unix, most of them do not have to do very much in + order for <B +CLASS="COMMAND" +>runtest</B +> to run.</P +><P +>If the program being tested is not interactive, you can get + away with this minimal <TT +CLASS="FILENAME" +>unix.exp</TT +> to begin + with:</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 4-2. Simple Batch Program Tool Init File</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> + proc foo_exit {} {} + proc foo_version {} {} + + </PRE +></TD +></TR +></TABLE +></DIV +><P +>If the program being tested is interactive, however, you might + as well define a <I +CLASS="EMPHASIS" +>start</I +> routine and invoke it by + using an init file like this:</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 4-3. Simple Interactive Program Tool Init File</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> + proc foo_exit {} {} + proc foo_version {} {} + + proc foo_start {} { + global ${examplename} + spawn ${examplename} + expect { + -re "" {} + } + } + + # Start the program running we want to test + foo_start + + </PRE +></TD +></TR +></TABLE +></DIV +></LI +><LI +STYLE="list-style-type: disc" +><P +>Create a directory whose name begins with your tool's + name, to contain tests. For example, if your tool's name is + <I +CLASS="EMPHASIS" +>gcc</I +>, then the directories all need to start with + <I +CLASS="EMPHASIS" +>"gcc."</I +>.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Create a sample test file. Its name must end with + <TT +CLASS="FILENAME" +>.exp</TT +>. You can use + <TT +CLASS="FILENAME" +>first-try.exp</TT +>. To begin with, just write there a + line of Tcl code to issue a message.</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 4-4. Testing A New Tool Config</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> send_user "Testing: one, two...\n" + + </PRE +></TD +></TR +></TABLE +></DIV +></LI +><LI +STYLE="list-style-type: disc" +><P +>Back in the <TT +CLASS="FILENAME" +>testsuite</TT +> (top + level) directory, run <B +CLASS="COMMAND" +>configure</B +>. Typically you do + this while in the build directory. You may have to specify more of a + path, if a suitable configure is not available in your execution + path.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>e now ready to triumphantly type <B +CLASS="COMMAND" +>make + check</B +> or <B +CLASS="COMMAND" +>runtest</B +>. You should see + something like this:</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 4-5. Example Test Case Run</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="90%" +><TR +><TD +><PRE +CLASS="SCREEN" +> Test Run By rhl on Fri Jan 29 16:25:44 EST 1993 + + === example tests === + + Running ./example.0/first-try.exp ... + Testing: one, two... + + === example Summary === + + </PRE +></TD +></TR +></TABLE +></DIV +><P +>There is no output in the summary, because so far the example + does not call any of the procedures that establish a test + outcome.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Write some real tests. For an interactive tool, you + should probably write a real exit routine in fairly short order. In + any case, you should also write a real version routine + soon. </P +></LI +></UL +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="extending.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="addtarget.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Extending DejaGnu</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="extending.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Adding A New Target</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/boardconfig.html b/doc/overview/boardconfig.html new file mode 100644 index 0000000..95d6643 --- /dev/null +++ b/doc/overview/boardconfig.html @@ -0,0 +1,254 @@ +<HTML +><HEAD +><TITLE +>Board Config File</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Customizing DejaGnu" +HREF="customizing.html"><LINK +REL="PREVIOUS" +TITLE="Global Config File" +HREF="global.html"><LINK +REL="NEXT" +TITLE="Remote Host Testing" +HREF="releng.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="global.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 3. Customizing DejaGnu</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="releng.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="BOARDCONFIG" +>Board Config File</A +></H1 +><P +>The board config file is where board specfic config data + is stored. A board config file contains all the higher-level + configuration settings. There is a rough inheritance scheme, where it is + possible to base a new board description file on an existing one. There + are also collections of custom procedures for common environments. For + more information on adding a new board config file, go to the <A +HREF="addboard.html" +><I +>Adding A New Board</I +></A +> chapter. </P +><P +>An example board config file for a GNU simulator is as + follows. <TT +CLASS="FUNCTION" +><B +>set_board_info</B +></TT +> is a procedure that sets the + field name to the specified value. The procedures in square brackets + <I +CLASS="EMPHASIS" +>[]</I +> are <I +CLASS="EMPHASIS" +>helper procedures</I +>. Thes + are used to find parts of a tool chain required to build an executable + image that may reside in various locations. This is mostly of use for + when the startup code, the standard C lobraries, or the tool chain itself + is part of your build tree.</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 3-5. Board Config File</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> # This is a list of toolchains that are supported on this board. + set_board_info target_install {sparc64-elf} + + # Load the generic configuration for this board. This will define any + # routines needed by the tool to communicate with the board. + load_generic_config "sim" + + # We need this for find_gcc and *_include_flags/*_link_flags. + load_base_board_description "basic-sim" + + # Use long64 by default. + process_multilib_options "long64" + + setup_sim sparc64 + + # We only support newlib on this target. We assume that all multilib + # options have been specified before we get here. + set_board_info compiler "[find_gcc]" + set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]" + set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]" + # No linker script. + set_board_info ldscript ""; + + # Used by a few gcc.c-torture testcases to delimit how large the + # stack can be. + set_board_info gcc,stack_size 16384 + # The simulator doesn't return exit statuses and we need to indicate this + # the standard GCC wrapper will work with this target. + set_board_info needs_status_wrapper 1 + # We can't pass arguments to programs. + set_board_info noargs 1 + </PRE +></TD +></TR +></TABLE +></DIV +><P +>There are five helper procedures used in this example. The first + one, <TT +CLASS="FUNCTION" +><B +>find gcc</B +></TT +> looks for a copy of the GNU compiler in + your build tree, or it uses the one in your path. This will also return + the proper transformed name for a cross compiler if you whole build tree + is configured for one. The next helper procedures are + <TT +CLASS="FUNCTION" +><B +>libgloss_include_flags</B +></TT +> & + <TT +CLASS="FUNCTION" +><B +>libgloss_link_flags</B +></TT +>. These return the proper flags to + compiler and link an executable image using <A +HREF="builtins.html#LIBGLOSS" +><I +>Libgloss</I +></A +>, the GNU BSP (Board Support Package). The final + procedures are <TT +CLASS="FUNCTION" +><B +>newlib_include_flag</B +></TT +> & + <TT +CLASS="FUNCTION" +><B +>newlib_include_flag</B +></TT +>. These find the Newlib C + library, which is a reentrant standard C library for embedded systems + comprising of non GPL'd code.</P +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="global.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="releng.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Global Config File</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="customizing.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Remote Host Testing</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/boarddefs.html b/doc/overview/boarddefs.html new file mode 100644 index 0000000..d89694c --- /dev/null +++ b/doc/overview/boarddefs.html @@ -0,0 +1,887 @@ +<HTML +><HEAD +><TITLE +>Board Config File Values</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Extending DejaGnu" +HREF="extending.html"><LINK +REL="PREVIOUS" +TITLE="Adding A New Board" +HREF="addboard.html"><LINK +REL="NEXT" +TITLE="Writing A Test Case" +HREF="writing.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="addboard.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 4. Extending DejaGnu</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="writing.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="BOARDDEFS" +>Board Config File Values</A +></H1 +><P +>These fields are all in the <SPAN +CLASS="SYMBOL" +>board_info</SPAN +> These are + all set by using the <TT +CLASS="FUNCTION" +><B +>set_board_info</B +></TT +> procedure. The + parameters are the field name, followed by the value to set the field + to.</P +><P +><DIV +CLASS="TABLE" +><P +><B +>Table 4-1. Common Board Info Fields</B +></P +><TABLE +BORDER="1" +CLASS="CALSTABLE" +><TR +><TH +ALIGN="LEFT" +VALIGN="TOP" +>Field</TH +><TH +ALIGN="LEFT" +VALIGN="TOP" +>Sample Value</TH +><TH +ALIGN="LEFT" +VALIGN="TOP" +>Description</TH +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>compiler</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"[find_gcc]"</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The path to the compiler to use.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>cflags</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"-mca"</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Compilation flags for the compiler.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>ldflags</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"[libgloss_link_flags] [newlib_link_flags]"</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Linking flags for the compiler.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>ldscript</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"-Wl,-Tidt.ld"</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The linker script to use when cross compiling.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>libs</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"-lgcc"</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Any additional libraries to link in.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>shell_prompt</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"cygmon>"</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The command prompt of the remote shell.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>hex_startaddr</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"0xa0020000"</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The Starting address as a string.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>start_addr</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>0xa0008000</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The starting address as a value.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>startaddr</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"a0020000"</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>exit_statuses_bad</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Whether there is an accurate exit status.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>reboot_delay</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>10</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The delay between power off and power on.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>unreliable</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Whether communication with the board is unreliable.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>sim</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>[find_sim]</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The path to the simulator to use.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>objcopy</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>$tempfil</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The path to the <B +CLASS="COMMAND" +>objcopy</B +> program.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>support_libs</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"${prefix_dir}/i386-coff/"</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Support libraries needed for cross compiling.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>addl_link_flags</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"-N"</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Additional link flags, rarely used.</TD +></TR +></TABLE +></DIV +> + </P +><P +>These fields are used by the GCC and GDB tests, and are mostly + only useful to somewhat trying to debug a new board file for one of + these tools. Many of these are used only by a few testcases, and their + purpose is esoteric. These are listed with sample values as a guide to + better guessing if you need to change any of these.</P +><P +><DIV +CLASS="TABLE" +><P +><B +>Table 4-2. Board Info Fields For GCC & GDB</B +></P +><TABLE +BORDER="1" +CLASS="CALSTABLE" +><TR +><TH +ALIGN="LEFT" +VALIGN="TOP" +>Field</TH +><TH +ALIGN="LEFT" +VALIGN="TOP" +>Sample Value</TH +><TH +ALIGN="LEFT" +VALIGN="TOP" +>Description</TH +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>strip</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>$tempfile</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Strip the executable of symbols.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb_load_offset</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"0x40050000"</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb_protocol</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"remote"</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The GDB debugging protocol to use.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb_sect_offset</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"0x41000000";</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb_stub_ldscript</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"-Wl,-Teva-stub.ld"</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The linker script to use with a GDB stub.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb_init_command</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"set mipsfpu none"</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb,cannot_call_functions</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Whether GDB can call functions on the target,</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb,noargs</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Whether the target can take command line arguments.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb,nosignals</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Whether there are signals on the target.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb,short_int</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb,start_symbol</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"_start";</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The starting symbol in the executable.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb,target_sim_options</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"-sparclite"</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Special options to pass to the simulator.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb,timeout</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>540</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Timeout value to use for remote communication.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb_init_command</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"print/x \$fsr = 0x0"</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb_load_offset</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"0x12020000"</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb_opts</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"--command gdbinit"</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb_prompt</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"\\(gdb960\\)"</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The prompt GDB is using.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb_run_command</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"jump start"</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gdb_stub_offset</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"0x12010000"</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>use_gdb_stub</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Whether to use a GDB stub.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>use_vma_offset</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>wrap_m68k_aout</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gcc,no_label_values</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gcc,no_trampolines</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gcc,no_varargs</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>gcc,stack_size</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>16384</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>Stack size to use with some GCC testcases.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>ieee_multilib_flags</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"-mieee";</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>is_simulator</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>needs_status_wrapper</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>no_double</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>no_long_long</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>noargs</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>1</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>nullstone,lib</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>"mips-clock.c"</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>nullstone,ticks_per_sec</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>3782018</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>sys_speed_value</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>200</TD +><TD +> </TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>target_install</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>{sh-hms}</TD +><TD +> </TD +></TR +></TABLE +></DIV +> + </P +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="addboard.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="writing.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Adding A New Board</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="extending.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Writing A Test Case</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/book1.html b/doc/overview/book1.html new file mode 100644 index 0000000..68347e0 --- /dev/null +++ b/doc/overview/book1.html @@ -0,0 +1,403 @@ +<HTML +><HEAD +><TITLE +>DejaGnu</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="NEXT" +TITLE="Abstract" +HREF="preface.html"></HEAD +><BODY +><DIV +CLASS="BOOK" +><A +NAME="AEN1" +></A +><DIV +CLASS="TITLEPAGE" +><H1 +CLASS="TITLE" +><A +NAME="AEN2" +>DejaGnu</A +></H1 +><H2 +CLASS="SUBTITLE" +>The GNU Testing Framework</H2 +><H3 +CLASS="AUTHOR" +>Rob Savoye</H3 +><DIV +CLASS="AFFILIATION" +><SPAN +CLASS="ORGNAME" +>Free Software Foundation<BR></SPAN +></DIV +><P +CLASS="COPYRIGHT" +>Copyright © 2000 by <SPAN +CLASS="HOLDER" +>Free Software Foundation, Inc.</SPAN +></P +><HR></DIV +><DIV +CLASS="TOC" +><DL +><DT +><B +>Table of Contents</B +></DT +><DT +><A +HREF="preface.html" +>Abstract</A +></DT +><DT +>1. <A +HREF="overview.html" +>Overview</A +></DT +><DD +><DL +><DT +><A +HREF="overview.html#WHATIS" +>What is DejaGnu ?</A +></DT +><DT +><A +HREF="new.html" +>What's New In This Release</A +></DT +><DD +><DL +><DT +><A +HREF="new.html#CYGWIN" +>NT Support</A +></DT +></DL +></DD +><DT +><A +HREF="designgoals.html" +>Design Goals</A +></DT +><DT +><A +HREF="posix.html" +>A POSIX conforming test framework</A +></DT +></DL +></DD +><DT +>2. <A +HREF="runningtests.html" +>Running Tests</A +></DT +><DD +><DL +><DT +><A +HREF="runningtests.html#MAKECHECK" +>Make check</A +></DT +><DT +><A +HREF="runtest.html" +>Runtest</A +></DT +><DD +><DL +><DT +><A +HREF="runtest.html#OUTPUTS" +>Output States</A +></DT +><DT +><A +HREF="runtest.html#INVOKING" +>Invoking Runtest</A +></DT +><DT +><A +HREF="runtest.html#COMMON" +>Common Options</A +></DT +></DL +></DD +><DT +><A +HREF="outputfiles.html" +>The files DejaGnu produces.</A +></DT +><DD +><DL +><DT +><A +HREF="outputfiles.html#SUM" +>Summary File</A +></DT +><DT +><A +HREF="outputfiles.html#LOG" +>Log File</A +></DT +><DT +><A +HREF="outputfiles.html#DEBUGFILE" +>Debug Log File</A +></DT +></DL +></DD +></DL +></DD +><DT +>3. <A +HREF="customizing.html" +>Customizing DejaGnu</A +></DT +><DD +><DL +><DT +><A +HREF="customizing.html#LOCAL" +>Local Config File</A +></DT +><DT +><A +HREF="global.html" +>Global Config File</A +></DT +><DT +><A +HREF="boardconfig.html" +>Board Config File</A +></DT +><DT +><A +HREF="releng.html" +>Remote Host Testing</A +></DT +><DT +><A +HREF="configfile.html" +>Config File Values</A +></DT +><DD +><DL +><DT +><A +HREF="configfile.html#OPTIONDEFS" +>Command Line Option Variables</A +></DT +><DT +><A +HREF="configfile.html#PERSONAL" +>Personal Config File</A +></DT +></DL +></DD +></DL +></DD +><DT +>4. <A +HREF="extending.html" +>Extending DejaGnu</A +></DT +><DD +><DL +><DT +><A +HREF="extending.html#ADDSUITE" +>Adding A New Test Suite</A +></DT +><DT +><A +HREF="addtool.html" +>Adding A New Tool</A +></DT +><DT +><A +HREF="addtarget.html" +>Adding A New Target</A +></DT +><DT +><A +HREF="addboard.html" +>Adding A New Board</A +></DT +><DT +><A +HREF="boarddefs.html" +>Board Config File Values</A +></DT +><DT +><A +HREF="writing.html" +>Writing A Test Case</A +></DT +><DT +><A +HREF="debugging.html" +>Debugging A Test Case</A +></DT +><DT +><A +HREF="adding.html" +>Adding A Test Case To A Test Suite.</A +></DT +><DT +><A +HREF="hints.html" +>Hints On Writing A Test Case</A +></DT +><DT +><A +HREF="tvariables.html" +>Special variables used by test cases.</A +></DT +></DL +></DD +><DT +>5. <A +HREF="reference.html" +>Reference</A +></DT +><DD +><DL +><DT +><A +HREF="reference.html#INSTALLATION" +>Installation</A +></DT +><DD +><DL +><DT +><A +HREF="reference.html#CONFIGURING" +>Configuring DejaGnu</A +></DT +><DT +><A +HREF="reference.html#INSTALLING" +>Installing DejaGnu</A +></DT +></DL +></DD +><DT +><A +HREF="builtins.html" +>Builtin Procedures</A +></DT +><DD +><DL +><DT +><A +HREF="builtins.html#COREPROCS" +>Core Internal Procedures</A +></DT +><DT +><A +HREF="builtins.html#REMOTEPROCS" +>Procedures For Remote Communication</A +></DT +><DT +><A +HREF="builtins.html#CONNPROCS" +>Procedures For Using Utilities to Connect</A +></DT +><DT +><A +HREF="builtins.html#TARGETPROCS" +>Procedures For Target Boards</A +></DT +><DT +><A +HREF="builtins.html#TARGETDB" +>Target Database Procedures</A +></DT +><DT +><A +HREF="builtins.html#PLATFORMPROCS" +>Platform Dependant Procedures</A +></DT +><DT +><A +HREF="builtins.html#UTILPROCS" +>Utility Procedures</A +></DT +><DT +><A +HREF="builtins.html#LIBGLOSS" +>Libgloss, A Free BSP</A +></DT +><DT +><A +HREF="builtins.html#DEBUGPROCS" +>Procedures for debugging your Tcl code.</A +></DT +></DL +></DD +><DT +><A +HREF="filemap.html" +>File Map</A +></DT +></DL +></DD +></DL +></DIV +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +> </TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +> </TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="preface.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +> </TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +> </TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Abstract</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/builtins.html b/doc/overview/builtins.html new file mode 100644 index 0000000..8a01039 --- /dev/null +++ b/doc/overview/builtins.html @@ -0,0 +1,10723 @@ +<HTML +><HEAD +><TITLE +>Builtin Procedures</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Reference" +HREF="reference.html"><LINK +REL="PREVIOUS" +TITLE="Reference" +HREF="reference.html"><LINK +REL="NEXT" +TITLE="File Map" +HREF="filemap.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="reference.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 5. Reference</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="filemap.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="BUILTINS" +>Builtin Procedures</A +></H1 +><P +>DejaGnu provides these Tcl procedures.</P +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="COREPROCS" +>Core Internal Procedures</A +></H2 +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="MAILFILE" +>Mail_file Procedure</A +></H3 +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>mail_file</B +></CODE +>(<VAR +CLASS="PDPARAM" +>file to subject</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +></I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="OPENLOGS" +>Open_logs Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>open_logs</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="CLOSELOGS" +>Close_logs Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>close_logs</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="ISBUILD" +>Isbuild Procedure</A +></H3 +><P +>Tests for a particular build host environment. If the + currently configured host matches the argument string, the result is + <I +CLASS="EMPHASIS" +>1</I +>; otherwise the result is + <I +CLASS="EMPHASIS" +>0</I +>. <I +CLASS="EMPHASIS" +>host</I +> must be a full + three-part configure host name; in particular, you may not use the + shorter nicknames supported by configure (but you can use wildcard + characters, using shell syntax, to specify sets of names). If it is + passed a NULL string, then it returns the name of the build canonical + configuration.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>isbuild</B +></CODE +>(<VAR +CLASS="PDPARAM" +>pattern</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>pattern</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="ISREMOTE" +>Is_remote Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>is_remote</B +></CODE +>(<VAR +CLASS="PDPARAM" +>board</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +></I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="IS3WAY" +>is3way Procedure</A +></H3 +><P +>Tests for a canadian cross. This is when the tests will be run + on a remotly hosted cross compiler. If it is a canadian cross, then + the result is <I +CLASS="EMPHASIS" +>1</I +>; otherwise the result is + <I +CLASS="EMPHASIS" +>0</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>is3way</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="ISHOST" +>Ishost Procedure</A +></H3 +><P +>Tests for a particular host environment. If the currently + configured host matches the argument string, the result is + <I +CLASS="EMPHASIS" +>1</I +>; otherwise the result is + <I +CLASS="EMPHASIS" +>0</I +>. <I +CLASS="EMPHASIS" +>host</I +> must be a full + three-part configure host name; in particular, you may not use the + shorter nicknames supported by configure (but you can use wildcard + characters, using shell syntax, to specify sets of names).</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>ishost</B +></CODE +>(<VAR +CLASS="PDPARAM" +>pattern</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +></I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="ISTARGET" +>Istarget Procedure</A +></H3 +><P +>Tests for a particular target environment. If the currently + configured target matches the argument string, the result is + <I +CLASS="EMPHASIS" +>1</I +> ; otherwise the result is + <I +CLASS="EMPHASIS" +>0</I +>. target must be a full three-part configure + target name; in particular, you may not use the shorter nicknames + supported by configure (but you can use wildcard characters, using + shell syntax, to specify sets of names). If it is passed a + <I +CLASS="EMPHASIS" +>NULL</I +> string, then it returns the name of the + build canonical configuration.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>istarget</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +></I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="ISNATIVE" +>Isnative Procedure</A +></H3 +><P +>Tests whether the current configuration has the same host and + target. When it runs in a native configuration this procedure returns + a <I +CLASS="EMPHASIS" +>1</I +>; otherwise it returns a + <I +CLASS="EMPHASIS" +>0</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>isnative</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="UNKNOWN" +>Unknown Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>unknown</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="CLONEOUTPUT" +>Clone_output Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>clone_output</B +></CODE +>(<VAR +CLASS="PDPARAM" +>message</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>message</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="RESETVARS" +>Reset_vars Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>reset_vars</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="LOGANDEXIT" +>Log_and_exit Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>log_and_exit</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="LOGSUMMARY" +>Log_summary Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>log_summary</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="CLEANUP" +>Cleanup Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>cleanup</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="SETUPXFAIL" +>Setup_xfail Procedure</A +></H3 +><P +>Declares that the test is expected to fail on a particular set + of configurations. The config argument must be a list of full + three-part configure target name; in particular, you may not use the + shorter nicknames supported by configure (but you can use the common + shell wildcard characters to specify sets of names). The + <I +CLASS="EMPHASIS" +>bugid</I +> argument is optional, and used only in the + logging file output; use it as a link to a bug-tracking system such + as <SPAN +CLASS="PRODUCTNAME" +>GNATS</SPAN +>.</P +><P +>Once you use <TT +CLASS="FUNCTION" +><B +>setup_xfail</B +></TT +>, the + <TT +CLASS="FUNCTION" +><B +>fail</B +></TT +> and <TT +CLASS="FUNCTION" +><B +>pass</B +></TT +> procedures + produce the messages <I +CLASS="EMPHASIS" +>XFAIL</I +> and + <I +CLASS="EMPHASIS" +>XPASS</I +> respectively, allowing you to distinguish + expected failures (and unexpected success!) from other test + outcomes.</P +><DIV +CLASS="WARNING" +><P +></P +><TABLE +CLASS="WARNING" +BORDER="1" +WIDTH="100%" +><TR +><TD +ALIGN="CENTER" +><B +>Warning</B +></TD +></TR +><TR +><TD +ALIGN="LEFT" +><P +>Warning you must clear the expected failure after + using setup_xfail in a test case. Any call to <TT +CLASS="FUNCTION" +><B +>pass + </B +></TT +>or <TT +CLASS="FUNCTION" +><B +>fail</B +></TT +>l clears the expected failure + implicitly; if the test has some other outcome, e.g. an error, you + can call <TT +CLASS="FUNCTION" +><B +>clear_xfail</B +></TT +> to clear the expected + failure explicitly. Otherwise, the expected-failure declaration + applies to whatever test runs next, leading to surprising + results.</P +></TD +></TR +></TABLE +></DIV +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>setup_xfail</B +></CODE +>(<VAR +CLASS="PDPARAM" +>config</VAR +> + <VAR +CLASS="PDPARAM" +>bugid</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>config</I +></TT +></DT +><DD +><P +>The config triplet to trigger whether this is an + unexpected or expect failure.</P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>bugid</I +></TT +></DT +><DD +><P +>The optional bugid, used to tie it this test case + to a bug tracking system.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="RECORDTEST" +>Record_test Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>record_test</B +></CODE +>(<VAR +CLASS="PDPARAM" +>type</VAR +> + <VAR +CLASS="PDPARAM" +>message</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>type</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>message</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="PASS" +>Pass Procedure</A +></H3 +><P +>Declares a test to have passed. <TT +CLASS="FUNCTION" +><B +>pass</B +></TT +> + writes in the log files a message beginning with + <I +CLASS="EMPHASIS" +>PASS</I +> (or <I +CLASS="EMPHASIS" +>XPASS</I +>, if failure + was expected), appending the argument + <TT +CLASS="PARAMETER" +><I +>string</I +></TT +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>pass</B +></CODE +>(<VAR +CLASS="PDPARAM" +>string</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +>The string to use for this PASS + message.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FAIL" +>Fail Procedure</A +></H3 +><P +>Declares a test to have failed. <TT +CLASS="FUNCTION" +><B +>fail</B +></TT +> + writes in the log files a message beginning with + <I +CLASS="EMPHASIS" +>FAIL</I +> (or <I +CLASS="EMPHASIS" +>XFAIL</I +>, if failure + was expected), appending the argument + <TT +CLASS="PARAMETER" +><I +>string</I +></TT +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>fail</B +></CODE +>(<VAR +CLASS="PDPARAM" +>string</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +>The string to use for this FAIL + message.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="XPASS" +>Xpass Procedure</A +></H3 +><P +>Declares a test to have unexpectably passed, when it was + expected to be a failure. <TT +CLASS="FUNCTION" +><B +>xpass</B +></TT +> + writes in the log files a message beginning with + <I +CLASS="EMPHASIS" +>XPASS</I +> (or <I +CLASS="EMPHASIS" +>XFAIL</I +>, if failure + was expected), appending the argument + <TT +CLASS="PARAMETER" +><I +>string</I +></TT +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>xpass</B +></CODE +>(<VAR +CLASS="PDPARAM" +>string</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +>The string to use for this output + state.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="XFAIL" +>Xfail Procedure</A +></H3 +><P +>Declares a test to have expectably + failed. <TT +CLASS="FUNCTION" +><B +>xfail</B +></TT +> + writes in the log files a message beginning with + <I +CLASS="EMPHASIS" +>XFAIL</I +> (or <I +CLASS="EMPHASIS" +>PASS</I +>, if success + was expected), appending the argument + <TT +CLASS="PARAMETER" +><I +>string</I +></TT +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>xpass</B +></CODE +>(<VAR +CLASS="PDPARAM" +>string</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +>The string to use for this output + state.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="SETWARNINGTHRESHOLD" +>Set_warning_threshold Procedure</A +></H3 +><P +>Sets the value of <SPAN +CLASS="SYMBOL" +>warning_threshold</SPAN +>. A value + of <I +CLASS="EMPHASIS" +>0</I +> disables it: calls to + <TT +CLASS="FUNCTION" +><B +>warning</B +></TT +> will not turn a + <I +CLASS="EMPHASIS" +>PASS</I +> or <I +CLASS="EMPHASIS" +>FAIL</I +> into an + <I +CLASS="EMPHASIS" +>UNRESOLVED</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>set_warning_threshold</B +></CODE +>(<VAR +CLASS="PDPARAM" +>threshold</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>threshold</I +></TT +></DT +><DD +><P +>This is the value of the new warning + threshold.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="GETWARNINGTHRESHOLD" +>Get_warning_threshold Procedure</A +></H3 +><P +>Returns the current value of + <SPAN +CLASS="SYMBOL" +>{warning_threshold</SPAN +>. The default value is 3. This + value controls how many <TT +CLASS="FUNCTION" +><B +>warning</B +></TT +> procedures can + be called before becoming <I +CLASS="EMPHASIS" +>UNRESOLVED</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>get_warning_threshold</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="WARNING" +>Warning Procedure</A +></H3 +><P +>Declares detection of a minor error in the test case + itself. <TT +CLASS="FUNCTION" +><B +>warning</B +></TT +> writes in the log files a message + beginning with <I +CLASS="EMPHASIS" +>WARNING</I +>, appending the argument + <TT +CLASS="PARAMETER" +><I +>string</I +></TT +>. Use <TT +CLASS="FUNCTION" +><B +>warning</B +></TT +> rather + than <TT +CLASS="FUNCTION" +><B +>perror</B +></TT +> for cases (such as communication + failure to be followed by a retry) where the test case can recover from + the error. If the optional <TT +CLASS="PARAMETER" +><I +>number</I +></TT +> is supplied, + then this is used to set the internal count of warnings to that + value.</P +><P +>As a side effect, <SPAN +CLASS="SYMBOL" +>warning_threshold</SPAN +> or more + calls to warning in a single test case also changes the effect of the + next <TT +CLASS="FUNCTION" +><B +>pass</B +></TT +> or <TT +CLASS="FUNCTION" +><B +>fail</B +></TT +> command: + the test outcome becomes <I +CLASS="EMPHASIS" +>UNRESOLVED</I +> since an + automatic <I +CLASS="EMPHASIS" +>PASS</I +> or <I +CLASS="EMPHASIS" +>FAIL</I +> may + not be trustworthy after many warnings. If the optional numeric value + is <I +CLASS="EMPHASIS" +>0</I +>, then there are no further side effects to + calling this function, and the following test outcome doesn't become + <I +CLASS="EMPHASIS" +>UNRESOLVED</I +>. This can be used for errors with no + known side effects.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>warning</B +></CODE +>(<VAR +CLASS="PDPARAM" +>string</VAR +> + <VAR +CLASS="PDPARAM" +>number</VAR +> + );<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>number</I +></TT +></DT +><DD +><P +>The optional number to set the error counter. Thius + is only used to fake out the counter when using the + <TT +CLASS="FUNCTION" +><B +>xfail</B +></TT +> procedure to control when it flips the + output over to <I +CLASS="EMPHASIS" +>UNRESOLVED</I +> + state.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="PERROR" +>Perror Procedure</A +></H3 +><P +>Declares a severe error in the testing framework + itself. <TT +CLASS="FUNCTION" +><B +>perror</B +></TT +> writes in the log files a message + beginning with <I +CLASS="EMPHASIS" +>ERROR</I +>, appending the argument + <TT +CLASS="PARAMETER" +><I +>string</I +></TT +>.</P +><P +>As a side effect, perror also changes the effect of the next + <TT +CLASS="FUNCTION" +><B +>pass</B +></TT +> or <TT +CLASS="FUNCTION" +><B +>fail</B +></TT +> command: the + test outcome becomes <I +CLASS="EMPHASIS" +>UNRESOLVED</I +>, since an + automatic <I +CLASS="EMPHASIS" +>PASS</I +> or <I +CLASS="EMPHASIS" +>FAIL</I +> cannot + be trusted after a severe error in the test framework. If the optional + numeric value is <I +CLASS="EMPHASIS" +>0</I +>, then there are no further side + effects to calling this function, and the following test outcome + doesn't become <I +CLASS="EMPHASIS" +>UNRESOLVED</I +>. This can be used for + errors with no known side effects.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>perror</B +></CODE +>(<VAR +CLASS="PDPARAM" +>string</VAR +> + <VAR +CLASS="PDPARAM" +>number</VAR +> + );<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>number</I +></TT +></DT +><DD +><P +>The optional number to set the error counter. Thius + is only used to fake out the counter when using the + <TT +CLASS="FUNCTION" +><B +>xfail</B +></TT +> procedure to control when it flips the + output over to <I +CLASS="EMPHASIS" +>UNRESOLVED</I +> + state.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="NOTE" +>Note Procedure</A +></H3 +><P +>Appends an informational message to the log + file. <TT +CLASS="FUNCTION" +><B +>note</B +></TT +> writes in the log files a message + beginning with <I +CLASS="EMPHASIS" +>NOTE</I +>, appending the argument + <TT +CLASS="PARAMETER" +><I +>string</I +></TT +>. Use <TT +CLASS="FUNCTION" +><B +>note</B +></TT +> + sparingly. The <TT +CLASS="FUNCTION" +><B +>verbose</B +></TT +> should be used for most + such messages, but in cases where a message is needed in the log file + regardless of the verbosity level use <TT +CLASS="FUNCTION" +><B +>note</B +></TT +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>note</B +></CODE +>(<VAR +CLASS="PDPARAM" +>string</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +>The string to use for this note.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="UNTESTED" +>Untested Procedure</A +></H3 +><P +>Declares a test was not run. <TT +CLASS="FUNCTION" +><B +>untested</B +></TT +> writes + in the log file a message beginning with <I +CLASS="EMPHASIS" +>UNTESTED</I +>, + appending the argument <I +CLASS="EMPHASIS" +>string</I +>. For example, you + might use this in a dummy test whose only role is to record that a test + does not yet exist for some feature.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>untested</B +></CODE +>(<VAR +CLASS="PDPARAM" +>string</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +>The string to use for this output + state.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="UNRESOLVED" +>Unresolved Procedure</A +></H3 +><P +>Declares a test to have an unresolved + outcome. <TT +CLASS="FUNCTION" +><B +>unresolved</B +></TT +> writes in the log file a + message beginning with <I +CLASS="EMPHASIS" +>UNRESOLVED</I +>, appending the + argument <I +CLASS="EMPHASIS" +>string</I +>. This usually means the test did + not execute as expected, and a human being must go over results to + determine if it passed or failed (and to improve the test case).</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>unresolved</B +></CODE +>(<VAR +CLASS="PDPARAM" +>string</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +>The string to use for this output + state.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="UNSUPPORTED" +>Unsupported Procedure</A +></H3 +><P +>Declares that a test case depends on some facility that does not + exist in the testing environment. <TT +CLASS="FUNCTION" +><B +>unsupported</B +></TT +> + writes in the log file a message beginning with + <I +CLASS="EMPHASIS" +>UNSUPPORTED</I +>, appending the argument string.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>unsupported</B +></CODE +>(<VAR +CLASS="PDPARAM" +>string</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +>The string to use for this output + state.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="INITTESTCOUNTS" +>Init_testcounts Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>init_testcounts</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="INCRCOUNT" +>Incr_count Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>incr_count</B +></CODE +>(<VAR +CLASS="PDPARAM" +>name</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>name</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TRANSFORM" +>transform Procedure</A +></H3 +><P +>Generates a string for the name of a tool as it was configured + and installed, given its native name (as the argument + <TT +CLASS="PARAMETER" +><I +>toolname</I +></TT +>). This makes the assumption that all + tools are installed using the same naming conventions: For example, + for a cross compiler supporting the <I +CLASS="EMPHASIS" +>m68k-vxworks</I +> + configuration, the result of transform <B +CLASS="COMMAND" +>gcc</B +> is + <B +CLASS="COMMAND" +>m68k-vxworks-gcc</B +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>transform</B +></CODE +>(<VAR +CLASS="PDPARAM" +>toolname</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>toolname</I +></TT +></DT +><DD +><P +>The name of the cross-development program to + transform.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="CHECKCONDITIONALXFAIL" +>Check_conditional_xfail Procedure</A +></H3 +><P +>This procedure adds a condition xfail, based on compiler + options used to create a test case executable. If an include options + is found in the compiler flags, and it's the right architecture, + it'll trigger an <I +CLASS="EMPHASIS" +>XFAIL</I +>. Otherwise it'll produce + an ordinary <I +CLASS="EMPHASIS" +>FAIL</I +>. You can also specify flags to + exclude. This makes a result be a <I +CLASS="EMPHASIS" +>FAIL</I +>, even if + the included options are found. To set the conditional, set + the variable <SPAN +CLASS="SYMBOL" +>compiler_conditional_xfail_data</SPAN +> to the + fields <TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>"[message string] [targets list] [includes + list] [excludes list]"</PRE +></TD +></TR +></TABLE +> (descriptions below). This is + the checked at pass/fail decision time, so there is no need to call + the procedure yourself, unless you wish to know if it gets + triggered. After a pass/fail, the variable is reset, so it doesn't + effect other tests. It returns <I +CLASS="EMPHASIS" +>1</I +> if the + conditional is true, or <I +CLASS="EMPHASIS" +>0</I +> if the conditional is + false.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>check_conditional_xfail</B +></CODE +>(<VAR +CLASS="PDPARAM" +>message</VAR +> + <VAR +CLASS="PDPARAM" +>targets</VAR +> + <VAR +CLASS="PDPARAM" +>includes</VAR +> + <VAR +CLASS="PDPARAM" +>excludes</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>message</I +></TT +></DT +><DD +><P +>This is the message to print with the normal test + result.</P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>targets</I +></TT +></DT +><DD +><P +>This is a string with the list targets to activate + this conditional on.</P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>includes</I +></TT +></DT +><DD +><P +>This is a list of sets of options to search for in + the compiler options to activate this conditional. If any set of + the options matches, then this conditional is + true.</P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>excludes</I +></TT +></DT +><DD +><P +>This is a list of sets of options to search for in + the compiler options to activate this conditional. If any set of + the options matches, (regardless of whether any of the include sets + match) then this conditional is de-activated.</P +></DD +></DL +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 5-1. Specifying the conditional xfail data</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> set compiler_conditional_xfail_data { \ + "I sure wish I knew why this was hosed" \ + "sparc*-sun*-* *-pc-*-*" \ + {"-Wall -v" "-O3"} \ + {"-O1" "-Map"} \ + } + </PRE +></TD +></TR +></TABLE +></DIV +><P +>What this does is it matches only for these two targets if + "-Wall -v" or "-O3" is set, but neither "-O1" or "-Map" is set. For + a set to match, the options specified are searched for independantly + of each other, so a "-Wall -v" matches either "-Wall -v" or "-v + -Wall". A space seperates the options in the string. Glob-style + regular expressions are also permitted.</P +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="CLEARXFAIL" +>Clear_xfail Procedure</A +></H3 +><P +>Cancel an expected failure (previously declared with + <B +CLASS="COMMAND" +>setup_xfail</B +>) for a particular set of + configurations. The <TT +CLASS="PARAMETER" +><I +>config</I +></TT +> argument is a list + of configuration target names. It is only necessary to call + <B +CLASS="COMMAND" +>clear_xfail</B +> if a test case ends without calling + either <B +CLASS="COMMAND" +>pass</B +> or <B +CLASS="COMMAND" +>fail</B +>, after + calling <B +CLASS="COMMAND" +>setup_xfail</B +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>clear_xfail</B +></CODE +>(<VAR +CLASS="PDPARAM" +>config</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>config</I +></TT +></DT +><DD +><P +>The configuration triplets to + clear.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="VERBOSE" +>Verbose Procedure</A +></H3 +><P +>Test cases can use this function to issue helpful messages + depending on the number of <TT +CLASS="OPTION" +>--verbose</TT +> options on the + runtest command line. It prints string if the value of the variable + <SPAN +CLASS="SYMBOL" +>verbose</SPAN +> is higher than or equal to the optional + number. The default value for number is <I +CLASS="EMPHASIS" +>1</I +>. Use + the optional <TT +CLASS="OPTION" +>-log</TT +> argument to cause string to always + be added to the log file, even if it won't be printed. Use the + optional <TT +CLASS="OPTION" +>-n</TT +> argument to print string without a + trailing newline. Use the optional <TT +CLASS="OPTION" +>--</TT +> argument if + string begins with "-".</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>verbose</B +></CODE +>(<VAR +CLASS="PDPARAM" +>-log</VAR +> + <VAR +CLASS="PDPARAM" +>-n</VAR +> + <VAR +CLASS="PDPARAM" +>-r</VAR +> + <VAR +CLASS="PDPARAM" +>string</VAR +> + <VAR +CLASS="PDPARAM" +>number</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>-log</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>-n</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>--</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>number</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="LOADLIB" +>Load_lib Procedure</A +></H3 +><P +>Loads a DejaGnu library file by searching a fixed path built + into DejaGnu. If DejaGnu has been installed, it looks in a path + starting with the installed library directory. If you are running + DejaGnu directly from a source directory, without first running + <B +CLASS="COMMAND" +>make install</B +>, this path defaults to the current + directory. In either case, it then looks in the current directory + for a directory called <TT +CLASS="FILENAME" +>lib</TT +>. If there are + duplicate definitions, the last one loaded takes precedence over the + earlier ones.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>load_lib</B +></CODE +>(<VAR +CLASS="PDPARAM" +>filespec</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>filespec</I +></TT +></DT +><DD +><P +>The name of the DejaGnu library file to + load.</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="REMOTEPROCS" +>Procedures For Remote Communication</A +></H2 +><P +><TT +CLASS="FILENAME" +>lib/remote.exp</TT +> defines these + functions, for establishing and managing communications. Each + of these procedures tries to establish the connection up to + three times before returning. Warnings (if retries will + continue) or errors (if the attempt is abandoned) report on + communication failures. The result for any of these + procedures is either <I +CLASS="EMPHASIS" +>-1</I +>, when the + connection cannot be established, or the spawn ID returned by + the <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> command + <B +CLASS="COMMAND" +>spawn</B +>.</P +><P +>It use the value of the <SPAN +CLASS="SYMBOL" +>connect</SPAN +> field + in the <SPAN +CLASS="SYMBOL" +>target_info</SPAN +> array (was + <SPAN +CLASS="SYMBOL" +>connectmode</SPAN +> as the type of connection to + make. Current supported connection types are tip, kermit, + telnet, rsh, rlogin, and netdata. If the <TT +CLASS="OPTION" +>--reboot</TT +> + option was used on the runtest command line, then the target + is rebooted before the connection is made.</P +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="CALLREMOTE" +>Call_remote Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>call_remote</B +></CODE +>(<VAR +CLASS="PDPARAM" +>type</VAR +> + <VAR +CLASS="PDPARAM" +>proc</VAR +> + <VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>proc</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="CHECKFORBOARDSTATUS" +>Check_for_board_status Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>check_for_board_status</B +></CODE +>(<VAR +CLASS="PDPARAM" +>variable</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>variable</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FILEONBUILD" +>File_on_build Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>file_on_build</B +></CODE +>(<VAR +CLASS="PDPARAM" +>op</VAR +> + <VAR +CLASS="PDPARAM" +>file</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>op</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>file</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FILEONHOST" +>File_on_host Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>file_on_host</B +></CODE +>(<VAR +CLASS="PDPARAM" +>op</VAR +> + <VAR +CLASS="PDPARAM" +>file</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>op</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>file</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="LOCALEXEC" +>Local_exec Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>local_exec</B +></CODE +>(<VAR +CLASS="PDPARAM" +>commandline</VAR +> + <VAR +CLASS="PDPARAM" +>inp</VAR +> + <VAR +CLASS="PDPARAM" +>outp</VAR +> + <VAR +CLASS="PDPARAM" +>timeout</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>inp</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>outp</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>timeout</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTEBINARY" +>Remote_binary Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_binary</B +></CODE +>(<VAR +CLASS="PDPARAM" +>host</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>host</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTECLOSE" +>Remote_close Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_close</B +></CODE +>(<VAR +CLASS="PDPARAM" +>shellid</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>shellid</I +></TT +></DT +><DD +><P +>This is the value returned by a call + to <TT +CLASS="FUNCTION" +><B +>remote_open</B +></TT +>. This closes the + connection to the target so resources can be used by + others. This parameter can be left off if the + <SPAN +CLASS="SYMBOL" +>fileid</SPAN +> field in the + <SPAN +CLASS="SYMBOL" +>target_info</SPAN +> array is set.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTEDOWNLOAD" +>Remote_download Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_download</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>file</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>file</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTEEXEC" +>Remote_exec Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_exec</B +></CODE +>(<VAR +CLASS="PDPARAM" +>hostname</VAR +> + <VAR +CLASS="PDPARAM" +>program</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>hostname</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>program</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTEEXPECT" +>Remote_expect Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_expect</B +></CODE +>(<VAR +CLASS="PDPARAM" +>board</VAR +> + <VAR +CLASS="PDPARAM" +>timeout</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>board</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>timeout</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTEFILE" +>Remote_file Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_file</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTELD" +>Remote_ld Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_ld</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>prog</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>prog</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTELOAD" +>Remote_load Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_load</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>prog</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>prog</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTEOPEN" +>Remote_open Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_open</B +></CODE +>(<VAR +CLASS="PDPARAM" +>type</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>type</I +></TT +></DT +><DD +><P +>This is passed <TT +CLASS="OPTION" +>host</TT +> or + <TT +CLASS="OPTION" +>target</TT +>. Host or target refers to + whether it is a connection to a remote target, or a + remote host. This opens the connection to the desired + target or host using the default values in the + configuration system. It returns that + <SPAN +CLASS="SYMBOL" +>spawn_id</SPAN +> of the process that manages + the connection. This value can be used in + <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> or + <B +CLASS="COMMAND" +>exp_send</B +> statements, or passed to + other procedures that need the connection process's + id. This also sets the <SPAN +CLASS="SYMBOL" +>fileid</SPAN +> field in + the <SPAN +CLASS="SYMBOL" +>target_info</SPAN +> array.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTEPOPCONN" +>Remote_pop_conn Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_pop_conn</B +></CODE +>(<VAR +CLASS="PDPARAM" +>host</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>host</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTEPUSHCONN" +>Remote_push_conn Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_push_conn</B +></CODE +>(<VAR +CLASS="PDPARAM" +>host</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>host</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTERAWBINARY" +>Remote_raw_binary Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_raw_binary</B +></CODE +>(<VAR +CLASS="PDPARAM" +>host</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>host</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTERAWCLOSE" +>Remote_raw_close Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_raw_close</B +></CODE +>(<VAR +CLASS="PDPARAM" +>host</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>host</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTERAWFILE" +>Remote_raw_file Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_raw_file</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTERAWLD" +>remote_raw_ld Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_raw_ld</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>prog</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>prog</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTERAWLOAD" +>Remote_raw_load Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_raw_load</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>prog</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>prog</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTERAWOPEN" +>Remote_raw_open Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_raw_open</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTERAWSEND" +>Remote_raw_send Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_raw_send</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>string</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTERAWSPAWN" +>Remote_raw_spawn Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_raw_spawn</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>commandline</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>commandline</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTERAWTRANSMIT" +>Remote_raw_transmit Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_raw_transmit</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>file</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>file</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTERAWWAIT" +>Remote_raw_wait Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_raw_wait</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>timeout</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>timeout</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTEREBOOT" +>Remote_reboot Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_reboot</B +></CODE +>(<VAR +CLASS="PDPARAM" +>host</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>host</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTESEND" +>Remote_send Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_send</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>string</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTESPAWN" +>Remote_spawn Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_spawn</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>commandline</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>commandline</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTESWAPCONN" +>Remote_swap_conn Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_swap_conn</B +></CODE +>(<VAR +CLASS="PDPARAM" +>host</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +></I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTETRANSMIT" +>Remote_transmit Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_transmit</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>file</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>file</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTEUPLOAD" +>Remote_upload Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_upload</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>srcfile</VAR +> + <VAR +CLASS="PDPARAM" +>arg</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>srcfile</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>arg</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REMOTEWAIT" +>Remote_wait Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>remote_wait</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>timeout</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>timeout</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="STANDARDCLOSE" +>Standard_close Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>standard_close</B +></CODE +>(<VAR +CLASS="PDPARAM" +>host</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>host</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="STANDARDDOWNLOAD" +>Standard_download Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>standard_download</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>file</VAR +> + <VAR +CLASS="PDPARAM" +>destfile</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>file</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>destfile</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="STANDARDEXEC" +>Standard_exec Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>standard_exec</B +></CODE +>(<VAR +CLASS="PDPARAM" +>hostname</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>hostname</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="STANDARDFILE" +>Standard_file Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>standard_file</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +>, <VAR +CLASS="PDPARAM" +>op</VAR +>, <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +></I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="STANDARDLOAD" +>Standard_load Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>standard_load</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>prog</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>prog</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="STANDARDREBOOT" +>Standard_reboot Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>standard_reboot</B +></CODE +>(<VAR +CLASS="PDPARAM" +>host</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>host</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="STANDARDSEND" +>Standard_send Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>standard_send</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>string</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="STANDARDSPAWN" +>Standard_spawn Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>standard_spawn</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>commandline</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>commndline</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="STANDARDTRANSMIT" +>Standard_transmit Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>standard_transmit</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>file</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>file</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="STANDARDUPLOAD" +>Standard_upload Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>standard_upload</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest srcfile destfile</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>srcfile</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>destfile</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="STANDARDWAIT" +>Standard_wait Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>standard_wait</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>timeout</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>timeout</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="UNIXCLEANFILENAME" +>Unix_clean_filename Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>unix_clean_filename</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>file</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>file</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="CONNPROCS" +>Procedures For Using Utilities to Connect</A +></H2 +><P +>telnet, rsh, tip, kermit</P +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TELNET" +>telnet Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>telnet</B +></CODE +>(<VAR +CLASS="PDPARAM" +>hostname</VAR +> + <VAR +CLASS="PDPARAM" +>port</VAR +>);<P +></P +></DIV +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>rlogin</B +></CODE +>(<VAR +CLASS="PDPARAM" +>hostname</VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="RSH" +>rsh Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>rsh</B +></CODE +>(<VAR +CLASS="PDPARAM" +>hostname</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>hostname</I +></TT +></DT +><DD +><P +>This refers to the IP address or name + (for example, an entry in + <TT +CLASS="FILENAME" +>/etc/hosts</TT +>) for this target. The + procedure names reflect the Unix utility used to + establish a connection. The optional + <TT +CLASS="PARAMETER" +><I +>port</I +></TT +> is used to specify the IP + port number. The value of the + <TT +CLASS="PARAMETER" +><I +>netport</I +></TT +> field in the + <SPAN +CLASS="SYMBOL" +>target_info</SPAN +> array is used. (was + <SPAN +CLASS="SYMBOL" +>$netport</SPAN +>) This value has two parts, + the hostname and the port number, seperated by a + <I +CLASS="EMPHASIS" +>:</I +>. If host or target is used in + the <SPAN +CLASS="SYMBOL" +>hostname</SPAN +> field, than the + config array is used for all information.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TIP" +>Tip Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>tip</B +></CODE +>(<VAR +CLASS="PDPARAM" +>port</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>port</I +></TT +></DT +><DD +><P +>Connect using the Unix utility + <B +CLASS="COMMAND" +>tip</B +>. <TT +CLASS="PARAMETER" +><I +>Port</I +></TT +>must + be a name from the <SPAN +CLASS="PRODUCTNAME" +>tip</SPAN +> + configuration file + <TT +CLASS="FILENAME" +>/etc/remote</TT +>. Often, this is called + <SPAN +CLASS="SYMBOL" +>hardwire</SPAN +>, or something like + <SPAN +CLASS="SYMBOL" +>ttya</SPAN +>. This file holds all the + configuration data for the serial port. The value of + the <SPAN +CLASS="SYMBOL" +>serial</SPAN +> field in the + <SPAN +CLASS="SYMBOL" +>target_info</SPAN +> array is used. (was + <SPAN +CLASS="SYMBOL" +>$serialport</SPAN +>) If <TT +CLASS="OPTION" +>host</TT +> + or <TT +CLASS="OPTION" +>target</TT +> is used in the + <TT +CLASS="PARAMETER" +><I +>port</I +></TT +> field, than the config + array is used for all information. the + config array is used for all information.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="KERMIT" +>Kermit Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>kermit</B +></CODE +>(<VAR +CLASS="PDPARAM" +>port</VAR +> + <VAR +CLASS="PDPARAM" +>bps</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>port</I +></TT +></DT +><DD +><P +>Connect using the program + <B +CLASS="COMMAND" +>kermit</B +>. <TT +CLASS="PARAMETER" +><I +>Port</I +></TT +> + is the device name, + e.g. <TT +CLASS="FILENAME" +>/dev/ttyb</TT +>. + </P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>bps</I +></TT +></DT +><DD +><P +><TT +CLASS="PARAMETER" +><I +>bps</I +></TT +> is the line + speed to use (in its per second) for the + connection. The value of the <SPAN +CLASS="SYMBOL" +>serial</SPAN +> + field in the <SPAN +CLASS="SYMBOL" +>target_info</SPAN +> array is + used. (was <SPAN +CLASS="SYMBOL" +>$serialport</SPAN +>) If + <TT +CLASS="OPTION" +>host</TT +> or <TT +CLASS="OPTION" +>target</TT +> is + used in the <TT +CLASS="PARAMETER" +><I +>port</I +></TT +> field, than the + config array is used for all information. the + config array is used for all information.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="KERMITOPEN" +>kermit_open Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>kermit_open</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="KERMITCOMMAND" +>Kermit_command Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>kermit_command</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="KERMITSEND" +>Kermit_send Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>kermit_send</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest string args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>string</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="KERMITTRANSMIT" +>Kermit_transmit Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>kermit_transmit</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>file</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>file</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TELNETOPEN" +>Telnet_open Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>telnet_open</B +></CODE +>(<VAR +CLASS="PDPARAM" +>hostname</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>hostname</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TELNETBINARY" +>Telnet_binary Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>telnet_binary</B +></CODE +>(<VAR +CLASS="PDPARAM" +>hostname</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>hostname</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TELNETTRANSMIT" +>Telnet_transmit Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>telnet_transmit</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>file</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>file</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TIPOPEN" +>Tip_open Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>tip_open</B +></CODE +>(<VAR +CLASS="PDPARAM" +>hostname</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>hostname</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="RLOGINOPEN" +>Rlogin_open Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>rlogin_open</B +></CODE +>(<VAR +CLASS="PDPARAM" +>arg</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>arg</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="RLOGINSPAWN" +>Rlogin_spawn Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>rlogin_spawn</B +></CODE +>(<VAR +CLASS="PDPARAM" +>dest</VAR +> + <VAR +CLASS="PDPARAM" +>cmdline</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>dest</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>cmdline</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="RSHOPEN" +>Rsh_open Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>rsh_open</B +></CODE +>(<VAR +CLASS="PDPARAM" +>hostname</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>hostname</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="RSHDOWNLOAD" +>Rsh_download Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>rsh_download</B +></CODE +>(<VAR +CLASS="PDPARAM" +>desthost</VAR +> + <VAR +CLASS="PDPARAM" +>srcfile</VAR +> + <VAR +CLASS="PDPARAM" +>destfile</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>desthost</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>srcfile</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>destfile</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="RSHUPLOAD" +>Rsh_upload Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>rsh_upload</B +></CODE +>(<VAR +CLASS="PDPARAM" +>desthost</VAR +> + <VAR +CLASS="PDPARAM" +>srcfile</VAR +> + <VAR +CLASS="PDPARAM" +>destfile</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>desthost</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>srcfile</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>destfile</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="RSHEXEC" +>Rsh_exec Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>rsh_exec</B +></CODE +>(<VAR +CLASS="PDPARAM" +>boardname</VAR +> + <VAR +CLASS="PDPARAM" +>cmd</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>boardname</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>cmd</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FTPOPEN" +>Ftp_open Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>ftp_open</B +></CODE +>(<VAR +CLASS="PDPARAM" +>host</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>host</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FTPUPLOAD" +>Ftp_upload Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>ftp_upload</B +></CODE +>(<VAR +CLASS="PDPARAM" +>host</VAR +> + <VAR +CLASS="PDPARAM" +>remotefile</VAR +> + <VAR +CLASS="PDPARAM" +>localfile</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>host</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>remotefile</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>localfile</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FTPDOWNLOAD" +>Ftp_download Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>ftp_download</B +></CODE +>(<VAR +CLASS="PDPARAM" +>host</VAR +> + <VAR +CLASS="PDPARAM" +>localfile</VAR +> + <VAR +CLASS="PDPARAM" +>remotefile</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>host</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>localfile</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>remotefile</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FTPCLOSE" +>Ftp_close Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>ftp_close</B +></CODE +>(<VAR +CLASS="PDPARAM" +>host</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>host</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TIPDOWNLOAD" +>Tip_download Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>tip_download</B +></CODE +>(<VAR +CLASS="PDPARAM" +>spawnid</VAR +> + <VAR +CLASS="PDPARAM" +>file</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>spawnid</I +></TT +></DT +><DD +><P +>Download <TT +CLASS="OPTION" +>file</TT +> to the + process <SPAN +CLASS="SYMBOL" +>spawnid</SPAN +> (the value returned + when the connection was established), using the + <B +CLASS="COMMAND" +>~put</B +> command under + <SPAN +CLASS="PRODUCTNAME" +>tip</SPAN +>. Most often used for + single board computers that require downloading + programs in ASCII S-records. Returns + <I +CLASS="EMPHASIS" +>1</I +> if an error occurs, + <I +CLASS="EMPHASIS" +>0</I +> otherwise.</P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>file</I +></TT +></DT +><DD +><P +>This is the filename to + downlaod.</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="TARGETPROCS" +>Procedures For Target Boards</A +></H2 +><P +></P +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="DEFAULTLINK" +>Default_link Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>default_link</B +></CODE +>(<VAR +CLASS="PDPARAM" +>board</VAR +> + <VAR +CLASS="PDPARAM" +>objects</VAR +> + <VAR +CLASS="PDPARAM" +>destfile</VAR +> + <VAR +CLASS="PDPARAM" +>flags</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>board</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>objects</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>destfile</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>flags</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="DEFAULTTARGETASSEMBLE" +>Default_target_assemble Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>default_target_assemble</B +></CODE +>(<VAR +CLASS="PDPARAM" +>source</VAR +> + <VAR +CLASS="PDPARAM" +>destfile</VAR +> + <VAR +CLASS="PDPARAM" +>flags</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>source</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>destfile</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>flags</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="DEFAULTTARGETCOMPILE" +>default_target_compile Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>default_target_compile</B +></CODE +>(<VAR +CLASS="PDPARAM" +>source</VAR +> + <VAR +CLASS="PDPARAM" +>destfile</VAR +> + <VAR +CLASS="PDPARAM" +>type</VAR +> + <VAR +CLASS="PDPARAM" +>options</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>source</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>destfile</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>type</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>options</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="POPCONFIG" +>Pop_config Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>pop_config</B +></CODE +>(<VAR +CLASS="PDPARAM" +>type</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>type</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="PRUNEWARNINGS" +>Prune_warnings Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>prune_warnings</B +></CODE +>(<VAR +CLASS="PDPARAM" +>text</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>text</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="PUSHBUILD" +>Push_build Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>push_build</B +></CODE +>(<VAR +CLASS="PDPARAM" +>name</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>name</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="PUSHCONFIG" +>push_config Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>push_config</B +></CODE +>(<VAR +CLASS="PDPARAM" +>type</VAR +> + <VAR +CLASS="PDPARAM" +>name</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>type</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>name</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="REBOOTTARGET" +>Reboot_target Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>reboot_target</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TARGETASSEMBLE" +>Target_assemble Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>target_assemble</B +></CODE +>(<VAR +CLASS="PDPARAM" +>source destfile flags</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>source</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>destfile</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>flags</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TARGETCOMPILE" +>Target_compile Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>target_compile</B +></CODE +>(<VAR +CLASS="PDPARAM" +>source</VAR +> + <VAR +CLASS="PDPARAM" +>destfile</VAR +> + <VAR +CLASS="PDPARAM" +>type</VAR +> + <VAR +CLASS="PDPARAM" +>options</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>source</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>destfile</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>type</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>options</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="TARGETDB" +>Target Database Procedures</A +></H2 +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="BOARDINFO" +>Board_info Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>board_info</B +></CODE +>(<VAR +CLASS="PDPARAM" +>machine</VAR +> + <VAR +CLASS="PDPARAM" +>op</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>machine</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>op</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="HOSTINFO" +>Host_info Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>host_info</B +></CODE +>(<VAR +CLASS="PDPARAM" +>op</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>op</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="SETBOARDINFO" +>Set_board_info Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>set_board_info</B +></CODE +>(<VAR +CLASS="PDPARAM" +>entry</VAR +> + <VAR +CLASS="PDPARAM" +>value</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>entry</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>value</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="SETCURRTARGETINFO" +>Set_currtarget_info Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>set_currtarget_info</B +></CODE +>(<VAR +CLASS="PDPARAM" +>entry</VAR +> + <VAR +CLASS="PDPARAM" +>value</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>entry</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>value</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TARGETINFO" +>Target_info Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>target_info</B +></CODE +>(<VAR +CLASS="PDPARAM" +>op</VAR +> + <VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>op</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="UNSETBOARDINFO" +>Unset_board_info Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>unset_board_info</B +></CODE +>(<VAR +CLASS="PDPARAM" +>entry</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>entry</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="UNSETCURRTARGETINFO" +>Unset_currtarget_info Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>unset_currtarget_info</B +></CODE +>(<VAR +CLASS="PDPARAM" +>entry</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>entry</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="PUSHTARGET" +>Push_target Procedure</A +></H3 +><P +>This makes the target named <I +CLASS="EMPHASIS" +>name</I +> be the + current target connection. The value of <I +CLASS="EMPHASIS" +>name</I +> is + an index into the <SPAN +CLASS="SYMBOL" +>target_info</SPAN +> array and is set in + the global config file.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>push_target</B +></CODE +>(<VAR +CLASS="PDPARAM" +>name</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>name</I +></TT +></DT +><DD +><P +>The name of the target to make current + connection.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="POPTARGET" +>Pop_target Procedure</A +></H3 +><P +>This unsets the current target connection.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>pop_target</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="LISTTARGETS" +>List_targets Procedure</A +></H3 +><P +>This lists all the supported targets for this + architecture.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>list_targets</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="PUSHHOST" +>Push_host Procedure</A +></H3 +><P +>This makes the host named <I +CLASS="EMPHASIS" +>name</I +> be the + current remote host connection. The value of + <I +CLASS="EMPHASIS" +>name</I +> is an index into the + <SPAN +CLASS="SYMBOL" +>target_info</SPAN +> array and is set in the global config + file.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>push_host</B +></CODE +>(<VAR +CLASS="PDPARAM" +>name</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>name</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="POPHOST" +>Pop_host Procedure</A +></H3 +><P +>This unsets the current host connection.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>pop_host</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="COMPILE" +>Compile Procedure</A +></H3 +><P +>This invokes the compiler as set by CC to compile the + file <TT +CLASS="FILENAME" +>file</TT +>. The default options for many cross + compilation targets are <I +CLASS="EMPHASIS" +>guessed</I +> by DejaGnu, and + these options can be added to by passing in more parameters as + arguments to <B +CLASS="COMMAND" +>compile</B +>. Optionally, this will also + use the value of the <I +CLASS="EMPHASIS" +>cflags</I +> field in the target + config array. If the host is not the same as the build machines, then + then compiler is run on the remote host using + <B +CLASS="COMMAND" +>execute_anywhere</B +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>compile</B +></CODE +>(<VAR +CLASS="PDPARAM" +>file</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>file</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="ARCHIVE" +>Archive Procedure</A +></H3 +><P +>This produces an archive file. Any parameters passed to + <B +CLASS="COMMAND" +>archive</B +> are used in addition to the default + flags. Optionally, this will also use the value of the + <I +CLASS="EMPHASIS" +>arflags</I +> field in the target config array. If the + host is not the same as the build machines, then then archiver is run + on the remote host using <B +CLASS="COMMAND" +>execute_anywhere</B +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>archive</B +></CODE +>(<VAR +CLASS="PDPARAM" +>file</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>file</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="RANLIB" +>Ranlib Procedure</A +></H3 +><P +>This generates an index for the archive file for systems that + aren't POSIX yet. Any parameters passed to <B +CLASS="COMMAND" +>ranlib</B +> + are used in for the flags.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>ranlib</B +></CODE +>(<VAR +CLASS="PDPARAM" +>file</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>file</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="EXECUTEANYWHERE" +>Execute_anywhere Procedure</A +></H3 +><P +>This executes the <I +CLASS="EMPHASIS" +>cmdline</I +> on the proper + host. This should be used as a replacement for the Tcl command + <B +CLASS="COMMAND" +>exec</B +> as this version utilizes the target config + info to execute this command on the build machine or a remote + host. All config information for the remote host must be setup to + have this command work. If this is a canadian cross, (where we test a + cross compiler that runs on a different host then where DejaGnu is + running) then a connection is made to the remote host and the command + is executed there. It returns either REMOTERROR (for an error) or the + output produced when the command was executed. This is used for + running the tool to be tested, not a test case.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>execute_anywhere</B +></CODE +>(<VAR +CLASS="PDPARAM" +>cmdline</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>cmdline</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="PLATFORMPROCS" +>Platform Dependant Procedures</A +></H2 +><P +>Each combination of target and tool requires some + target-dependent procedures. The names of these procedures have + a common form: the tool name, followed by an underbar + <I +CLASS="EMPHASIS" +>_</I +>, and finally a suffix describing the + procedure's purpose. For example, a procedure to extract the + version from <SPAN +CLASS="PRODUCTNAME" +>GDB</SPAN +> is called + <SPAN +CLASS="SYMBOL" +>gdb_version</SPAN +>.</P +><P +><B +CLASS="COMMAND" +>runtest</B +> itself calls only two of these + procedures, <SPAN +CLASS="SYMBOL" +>${tool}_exit</SPAN +> and + <SPAN +CLASS="SYMBOL" +>${tool}_version</SPAN +>; these procedures use no + arguments.</P +><P +>The other two procedures, <SPAN +CLASS="SYMBOL" +>${tool}_start</SPAN +> + and <SPAN +CLASS="SYMBOL" +>${tool}_load</SPAN +>}, are only called by the test + suites themselves (or by testsuite-specific initialization + code); they may take arguments or not, depending on the + conventions used within each test suite.</P +><P +>The usual convention for return codes from any of these + procedures (although it is not required by + <B +CLASS="COMMAND" +>runtest</B +>) is to return <I +CLASS="EMPHASIS" +>0</I +> + if the procedure succeeded, <I +CLASS="EMPHASIS" +>1</I +> if it failed, + and <I +CLASS="EMPHASIS" +>-1</I +> if there was a communication error.</P +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TOOLSTART" +>${tool}_start Procedure</A +></H3 +><P +>Starts a particular tool. For an interactive tool, + <TT +CLASS="FUNCTION" +><B +>${tool}_start</B +></TT +> starts and initializes the + tool, leaving the tool up and running for the test cases; an + example is <TT +CLASS="FUNCTION" +><B +>gdb_start</B +></TT +>, the start function + for GDB. For a batch oriented tool, + <TT +CLASS="FUNCTION" +><B +>${tool}_start</B +></TT +> is optional; the recommended + convention is to let <TT +CLASS="FUNCTION" +><B +>${tool}_start</B +></TT +> run the + tool, leaving the output in a variable called + <TT +CLASS="FUNCTION" +><B +>comp_output</B +></TT +>. Test scripts can then analyze + <TT +CLASS="FUNCTION" +><B +>$comp_output</B +></TT +> to determine the test results. + An example of this second kind of start function is + <TT +CLASS="FUNCTION" +><B +>gcc_start</B +></TT +>, the start function for GCC.</P +><P +>DejaGnu itself does not call + <TT +CLASS="FUNCTION" +><B +>${tool}_start</B +></TT +>. The initialization + module <TT +CLASS="FUNCTION" +><B +>${tool}_init.exp</B +></TT +> must call + <TT +CLASS="FUNCTION" +><B +>${tool}_start</B +></TT +> for interactive tools; + for batch-oriented tools, each individual test script calls + <TT +CLASS="FUNCTION" +><B +>${tool}_start</B +></TT +> (or makes other + arrangements to run the tool).</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>${tool}_start</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TOOLLOAD" +>${tool}_load Procedure</A +></H3 +><P +>Loads something into a tool. For an interactive tool, + this conditions the tool for a particular test case; for + example, <TT +CLASS="FUNCTION" +><B +>gdb_load</B +></TT +> loads a new + executable file into the debugger. For batch oriented tools, + <TT +CLASS="FUNCTION" +><B +>${tool}_load</B +></TT +> may do nothing---though, + for example, the GCC support uses + <TT +CLASS="FUNCTION" +><B +>gcc_load</B +></TT +> to load and run a binary on + the target environment. Conventionally, + <TT +CLASS="FUNCTION" +><B +>${tool}_load</B +></TT +> leaves the output of any + program it runs in a variable called + <SPAN +CLASS="SYMBOL" +>$exec_output</SPAN +>. Writing + <TT +CLASS="FUNCTION" +><B +>${tool}_load</B +></TT +> can be the most complex + part of extending DejaGnu to a new tool or a new target, if + it requires much communication coding or file + downloading. Test scripts call + <TT +CLASS="FUNCTION" +><B +>${tool}_load</B +></TT +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>${tool}_load</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TOOLEXIT" +>${tool}_exit Procedure</A +></H3 +><P +>Cleans up (if necessary) before DejaGnu exits. For + interactive tools, this usually ends the interactive + session. You can also use <TT +CLASS="FUNCTION" +><B +>${tool}_exit</B +></TT +> + to remove any temporary files left over from the + tests. <B +CLASS="COMMAND" +>runtest</B +> calls + <TT +CLASS="FUNCTION" +><B +>${tool}_exit</B +></TT +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>${tool}_exit</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="TOOLVERSION" +>${tool}_version Procedure</A +></H3 +><P +>Prints the version label and number for + <SPAN +CLASS="SYMBOL" +>${tool}</SPAN +>. This is called by the DejaGnu + procedure that prints the final summary report. The output + should consist of the full path name used for the tested + tool, and its version number.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>${tool}_version</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +></DIV +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="UTILPROCS" +>Utility Procedures</A +></H2 +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="GETDIRS" +>Getdirs Procedure</A +></H3 +><P +>Returns a list of all the directories in the single + directory a single directory that match an optional + pattern. </P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>getdirs</B +></CODE +>(<VAR +CLASS="PDPARAM" +>rootdir</VAR +> + <VAR +CLASS="PDPARAM" +>pattern</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>pattern</I +></TT +></DT +><DD +><P +>If you do not specify + <TT +CLASS="PARAMETER" +><I +>pattern</I +></TT +>, + <TT +CLASS="FUNCTION" +><B +>Getdirs</B +></TT +> assumes a default pattern of + <I +CLASS="EMPHASIS" +>*</I +>. You may use the common shell + wildcard characters in the pattern. If no directories + match the pattern, then a NULL string is + returned</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FIND" +>Find Procedure</A +></H3 +><P +>Search for files whose names match <I +CLASS="EMPHASIS" +>pattern</I +> + (using shell wildcard characters for filename expansion). Search + subdirectories recursively, starting at + <I +CLASS="EMPHASIS" +>rootdir</I +>. The result is the list of files whose + names match; if no files match, the result is empty. Filenames in the + result include all intervening subdirectory names. If no files match + the pattern, then a NULL string is returned.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>find</B +></CODE +>(<VAR +CLASS="PDPARAM" +>rootdir</VAR +> + <VAR +CLASS="PDPARAM" +>pattern</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>rootdir</I +></TT +></DT +><DD +><P +>The top level directory to search the search + from.</P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>pattern</I +></TT +></DT +><DD +><P +>A csh "glob" style regular expression reprsenting + the files to find.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="WHICH" +>Which Procedure</A +></H3 +><P +>Searches the execution path for an executable file + <I +CLASS="EMPHASIS" +>binary</I +>, like the the BSD <B +CLASS="COMMAND" +>which</B +> + utility. This procedure uses the shell environment variable + <I +CLASS="EMPHASIS" +>PATH</I +>. It returns <I +CLASS="EMPHASIS" +>0</I +> if the + binary is not in the path, or if there is no <I +CLASS="EMPHASIS" +>PATH</I +> + environment variable. If <B +CLASS="COMMAND" +>binary</B +> is in the path, it + returns the full path to <B +CLASS="COMMAND" +>binary</B +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>which</B +></CODE +>(<VAR +CLASS="PDPARAM" +>file</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>binary</I +></TT +></DT +><DD +><P +>The executable program or shell script to look + for.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="GREP" +>Grep Procedure</A +></H3 +><P +>Search the file called <TT +CLASS="FILENAME" +>filename</TT +> (a fully + specified path) for lines that contain a match for regular expression + <I +CLASS="EMPHASIS" +>regexp</I +>. The result is a list of all the lines that + match. If no lines match, the result is an empty string. Specify + <I +CLASS="EMPHASIS" +>regexp</I +> using the standard regular expression style + used by the Unix utility program grep.</P +><P +>Use the optional third argument <I +CLASS="EMPHASIS" +>line</I +> to + start lines in the result with the line number in + <TT +CLASS="FILENAME" +>filename</TT +>. (This argument is simply an option + flag; type it just as shown <TT +CLASS="OPTION" +>--line</TT +>.)</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>grep</B +></CODE +>(<VAR +CLASS="PDPARAM" +>filename</VAR +> + <VAR +CLASS="PDPARAM" +>regexp</VAR +> + <VAR +CLASS="PDPARAM" +>--line</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>filename</I +></TT +></DT +><DD +><P +>The file to search.</P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>regexp</I +></TT +></DT +><DD +><P +>The Unix style regular expression (as used by the + <B +CLASS="COMMAND" +>grep</B +> Unix utility) to search + for.</P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>--line</I +></TT +></DT +><DD +><P +>Prefix the line number to each line where the + regexp matches.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="PRUNE" +>Prune Procedure</A +></H3 +><P +>Remove elements of the Tcl list <I +CLASS="EMPHASIS" +>list</I +>. + Elements are fields delimited by spaces. The result is a copy of + list, without any elements that match <I +CLASS="EMPHASIS" +>pattern</I +>. + You can use the common shell wildcard characters to specify the + pattern.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>prune</B +></CODE +>(<VAR +CLASS="PDPARAM" +>list</VAR +> + <VAR +CLASS="PDPARAM" +>pattern</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>list</I +></TT +></DT +><DD +><P +>A Tcl list containing the original data. Commonly + this is the output of a batch executed command, like running a + compiler.</P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>pattern</I +></TT +></DT +><DD +><P +>The csh shell "glob" style pattern to search + for.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="SLAY" +>Slay Procedure</A +></H3 +><P +>This look in the process table for <I +CLASS="EMPHASIS" +>name</I +> + and send it a unix SIGINT, killing the process. This will only work + under NT if you have Cygwin or another Unix system for NT + installed.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>slay</B +></CODE +>(<VAR +CLASS="PDPARAM" +>name</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>name</I +></TT +></DT +><DD +><P +>The name of the program to kill.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="ABSOLUTE" +>Absolute Procedure</A +></H3 +><P +>This procedure takes the relative <I +CLASS="EMPHASIS" +>path</I +>, + and converts it to an absolute path.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>absolute</B +></CODE +>(<VAR +CLASS="PDPARAM" +>path</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>path</I +></TT +></DT +><DD +><P +>The path to convert.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="PSOURCE" +>Psource Procedure</A +></H3 +><P +>This sources the file <I +CLASS="EMPHASIS" +>filename</I +>, and traps + all errors. It also ignores all extraneous output. If there was an + error it returns a <I +CLASS="EMPHASIS" +>1</I +>, otherwise it returns a + <I +CLASS="EMPHASIS" +>0</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>psource</B +></CODE +>(<VAR +CLASS="PDPARAM" +>file</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>filename</I +></TT +></DT +><DD +><P +>The filename to Tcl script to + source.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="RUNTESTFILEP" +>Runtest_file_p Procedure</A +></H3 +><P +>Search <I +CLASS="EMPHASIS" +>runtest</I +>s for + <I +CLASS="EMPHASIS" +>testcase</I +> and return <I +CLASS="EMPHASIS" +>1</I +> if + found, <I +CLASS="EMPHASIS" +>0</I +> if not. <I +CLASS="EMPHASIS" +>runtests</I +> + is a list of two elements. The first is the pathname of the + testsuite expect script running. The second is a copy of what was on + the right side of the <I +CLASS="EMPHASIS" +>=</I +> if + <TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>foo.exp="..."</PRE +></TD +></TR +></TABLE +>" was specified, or + an empty string if no such argument is present. This is used by tools + like compilers where each testcase is a file.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>runtest_file_p</B +></CODE +>(<VAR +CLASS="PDPARAM" +>runtests</VAR +> + <VAR +CLASS="PDPARAM" +>testcase</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>runtests</I +></TT +></DT +><DD +><P +>The pathname of the testsuite expect script + running</P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>testcase</I +></TT +></DT +><DD +><P +>The test case filename.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="DIFF" +>Diff Procedure</A +></H3 +><P +>Compares the two files and returns a <I +CLASS="EMPHASIS" +>1</I +> if + they match, or a <I +CLASS="EMPHASIS" +>0</I +> if they don't. If + <SPAN +CLASS="SYMBOL" +>verbose</SPAN +> is set, then it'll print the differences to + the screen.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>diff</B +></CODE +>(<VAR +CLASS="PDPARAM" +>file_1</VAR +> + <VAR +CLASS="PDPARAM" +>file_2</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>file_1</I +></TT +></DT +><DD +><P +>The first file to compare.</P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>file_2</I +></TT +></DT +><DD +><P +>The second file to compare.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="SETENV" +>Setenv Procedure</A +></H3 +><P +>Sets the environment variable <I +CLASS="EMPHASIS" +>var</I +> to the + value <I +CLASS="EMPHASIS" +>val</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>setenv</B +></CODE +>(<VAR +CLASS="PDPARAM" +>var</VAR +> + <VAR +CLASS="PDPARAM" +>val</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>var</I +></TT +></DT +><DD +><P +>The environment variable to set.</P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>val</I +></TT +></DT +><DD +><P +>The value to set the variable to.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="UNSETENV" +>unsetenv Procedure</A +></H3 +><P +>Unsets the environment variable + <I +CLASS="EMPHASIS" +>var</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>unsetenv</B +></CODE +>(<VAR +CLASS="PDPARAM" +>var</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>var</I +></TT +></DT +><DD +><P +>The environment variable to + unset.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="GETENV" +>Getenv Procedure</A +></H3 +><P +>Returns the value of <I +CLASS="EMPHASIS" +>var</I +> in the + environment if it exists, otherwise it returns NULL.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>getenv</B +></CODE +>(<VAR +CLASS="PDPARAM" +>var</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>var</I +></TT +></DT +><DD +><P +>The environment variable to get the value + of.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="PRUNESYSTEMCRUD" +>Prune_system_crud Procedure</A +></H3 +><P +>For system <I +CLASS="EMPHASIS" +>system</I +>, delete text the host or + target operating system might issue that will interfere with pattern + matching of program output in <I +CLASS="EMPHASIS" +>text</I +>. An example + is the message that is printed if a shared library is out of + date.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>prune_system_crud</B +></CODE +>(<VAR +CLASS="PDPARAM" +>system</VAR +> + <VAR +CLASS="PDPARAM" +>test</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>system</I +></TT +></DT +><DD +><P +>The system error messages to look for to screen out + .</P +></DD +><DT +><TT +CLASS="PARAMETER" +><I +>text</I +></TT +></DT +><DD +><P +>The Tcl variable containing the + text.</P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="LIBGLOSS" +>Libgloss, A Free BSP</A +></H2 +><P +>Libgloss is a free <I +CLASS="FIRSTTERM" +>BSP</I +> (Board Support + Package) commonly used with GCC and G++ to produce a fully linked + executable image for an embedded systems.</P +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="LIBGLOSSLINKFLAGS" +>Libgloss_link_flags Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>libgloss_link_flags</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="LIBGLOSSINCLUDEFLAGS" +>Libgloss_include_flags Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>libgloss_include_flags</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="NEWLIBLINKFLAGS" +>Newlib_link_flags Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>newlib_link_flags</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="NEWLIBINCLUDEFLAGS" +>Newlib_include_flags Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>newlib_include_flags</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="LIBIOINCLUDEFLAGS" +>Libio_include_flags Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>libio_include_flags</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="LIBIOLINKFLAGS" +>Libio_link_flags Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>libio_link_flags</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="GXXINCLUDEFLAGS" +>G++_include_flags Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>g++_include_flags</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="GXXLINKFLAGS" +>G++_link_flags Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>g++_link_flags</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="LIBSTDCXXINCLUDEFLAGS" +>Libstdc++_include_flags Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>libstdc++_include_flags</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="LIBSTDCXXLINKFLAGS" +>Libstdc++_link_flags Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>libstdc++_link_flags</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="GETMULTILIBS" +>Get_multilibs Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>get_multilibs</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FINDBINUTILSPROG" +>Find_binutils_prog Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>find_binutils_prog</B +></CODE +>(<VAR +CLASS="PDPARAM" +>name</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>name</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FINDGCC" +>Find_gcc Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>find_gcc</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FINDGCJ" +>Find_gcj Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>find_gcj</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FINDGXX" +>Find_g++ Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>find_g++</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FINDG77" +>Find_g77 Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>find_g77</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="PROCESSMULTILIBOPTIONS" +>Process_multilib_options Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>process_multilib_options</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="ADDMULTILIBOPTION" +>Add_multilib_option Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>add_multilib_option</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FINDGAS" +>Find_gas Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>find_gas</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="FINDLD" +>Find_ld Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>find_ld</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="BUILDWRAPPER" +>Build_wrapper Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>build_wrapper</B +></CODE +>(<VAR +CLASS="PDPARAM" +>gluefile</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>gluefile</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="WINSUPINCLUDEFLAGS" +>Winsup_include_flags Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>winsup_include_flags</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="WINSUPLINKFLAGS" +>Winsup_link_flags Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>winsup_link_flags</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +></DIV +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="DEBUGPROCS" +>Procedures for debugging your Tcl code.</A +></H2 +><P +><TT +CLASS="FILENAME" +>lib/debugger.exp</TT +>defines these utility + procedures:</P +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="DUMPVARS" +>Dumpvars Procedure</A +></H3 +><P +>This takes a csh style regular expression (glob rules) and prints + the values of the global variable names that match. It is abbreviated + as <I +CLASS="EMPHASIS" +>dv</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>dumpvars</B +></CODE +>(<VAR +CLASS="PDPARAM" +>vars</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>vars</I +></TT +></DT +><DD +><P +>The variables to dump.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="DUMPLOCALS" +>Dumplocals Procedure</A +></H3 +><P +>This takes a csh style regular expression (glob rules) and + prints the values of the local variable names that match. It is + abbreviated as <I +CLASS="EMPHASIS" +>dl</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>dumplocals</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="DUMPROCS" +>Dumprocs Procedure</A +></H3 +><P +>This takes a csh style regular expression (glob rules) and + prints the body of all procs that match. It is abbreviated as + <I +CLASS="EMPHASIS" +>dp</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>dumprocs</B +></CODE +>(<VAR +CLASS="PDPARAM" +>pattern</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>pattern</I +></TT +></DT +><DD +><P +>The csh "glob" style pattern to look + for.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="DUMPWATCH" +>Dumpwatch Procedure</A +></H3 +><P +>This takes a csh style regular expression (glob rules) and + prints all the watchpoints. It is abbreviated as + <I +CLASS="EMPHASIS" +>dw</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>dumpwatch</B +></CODE +>(<VAR +CLASS="PDPARAM" +>pattern</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>pattern</I +></TT +></DT +><DD +><P +>The csh "glob" style pattern to look + for.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="WATCHARRAY" +>Watcharray Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>watcharray</B +></CODE +>(<VAR +CLASS="PDPARAM" +>element</VAR +> + <VAR +CLASS="PDPARAM" +>type</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>type</I +></TT +></DT +><DD +><P +>The csh "glob" style pattern to look + for.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="WATCHVAR" +>Watchvar Procedure</A +></H3 +><P +></P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>watchvar</B +></CODE +>(<VAR +CLASS="PDPARAM" +>var</VAR +> + <VAR +CLASS="PDPARAM" +>type</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +></I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="WATCHUNSET" +>Watchunset Procedure</A +></H3 +><P +>This breaks program execution when the variable + <SPAN +CLASS="SYMBOL" +>var</SPAN +> is unset. It is abbreviated as + <I +CLASS="EMPHASIS" +>wu</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>watchunset</B +></CODE +>(<VAR +CLASS="PDPARAM" +>arg</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="WATCHWRITE" +>Watchwrite Procedure</A +></H3 +><P +>This breaks program execution when the variable + <SPAN +CLASS="SYMBOL" +>var</SPAN +> is written. It is abbreviated as + <I +CLASS="EMPHASIS" +>ww</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>watchwrite</B +></CODE +>(<VAR +CLASS="PDPARAM" +>var</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>var</I +></TT +></DT +><DD +><P +>The variable to watch.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="WATCHREAD" +>Watchread Procedure</A +></H3 +><P +>This breaks program execution when the variable + <SPAN +CLASS="SYMBOL" +>var</SPAN +> is read. It is abbreviated as + <I +CLASS="EMPHASIS" +>wr</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>watchread</B +></CODE +>(<VAR +CLASS="PDPARAM" +>var</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>var</I +></TT +></DT +><DD +><P +>The variable to watch.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="WATCHDEL" +>Watchdel Procedure</A +></H3 +><P +>This deletes a the watchpoint from the watch list. It is + abbreviated as <I +CLASS="EMPHASIS" +>wd</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>watchdel</B +></CODE +>(<VAR +CLASS="PDPARAM" +>args</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>args</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="PRINT" +>Print Procedure</A +></H3 +><P +>This prints the value of the variable + <TT +CLASS="PARAMETER" +><I +>var</I +></TT +>. It is abbreviated as + <I +CLASS="EMPHASIS" +>p</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>print</B +></CODE +>(<VAR +CLASS="PDPARAM" +>var</VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +>var</I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +><DIV +CLASS="SECT3" +><H3 +CLASS="SECT3" +><A +NAME="QUIT" +>Quit Procedure</A +></H3 +><P +>This makes runtest exit. It is abbreviated as + <I +CLASS="EMPHASIS" +>q</I +>.</P +><DIV +CLASS="FUNCSYNOPSIS" +><P +></P +><CODE +CLASS="FUNCDEF" +><B +CLASS="FSFUNC" +>quit</B +></CODE +>(<VAR +CLASS="PDPARAM" +></VAR +>);<P +></P +></DIV +><P +></P +><DL +><DT +><TT +CLASS="PARAMETER" +><I +></I +></TT +></DT +><DD +><P +></P +></DD +></DL +></DIV +></DIV +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="reference.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="filemap.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Reference</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="reference.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>File Map</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/configfile.html b/doc/overview/configfile.html new file mode 100644 index 0000000..da718e5 --- /dev/null +++ b/doc/overview/configfile.html @@ -0,0 +1,513 @@ +<HTML +><HEAD +><TITLE +>Config File Values</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Customizing DejaGnu" +HREF="customizing.html"><LINK +REL="PREVIOUS" +TITLE="Remote Host Testing" +HREF="releng.html"><LINK +REL="NEXT" +TITLE="Extending DejaGnu" +HREF="extending.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="releng.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 3. Customizing DejaGnu</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="extending.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="CONFIGFILE" +>Config File Values</A +></H1 +><P +>DejaGnu uses a named array in Tcl to hold all the info for + each machine. In the case of a canadian cross, this means host + information as well as target information. The named array is + called <SPAN +CLASS="SYMBOL" +>target_info</SPAN +>, and it has two indices. The + following fields are part of the array.</P +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="OPTIONDEFS" +>Command Line Option Variables</A +></H2 +><P +>In the user editable second section of the <A +HREF="configfile.html#PERSONAL" +><I +>Personal Config File</I +></A +> you can not only override the configuration + variables captured in the first section, but also specify + default values for all on the <B +CLASS="COMMAND" +>runtest</B +> + command line options. Save for <TT +CLASS="OPTION" +>--debug</TT +>, + <TT +CLASS="OPTION" +>--help</TT +>, and <TT +CLASS="OPTION" +>--version</TT +>, each + command line option has an associated Tcl variable. Use the + Tcl <B +CLASS="COMMAND" +>set</B +> command to specify a new default + value (as for the configuration variables). The following + table describes the correspondence between command line + options and variables you can set in + <TT +CLASS="FILENAME" +>site.exp</TT +>. <A +HREF="runtest.html#INVOKING" +><I +>Invoking Runtest</I +></A +>, for + explanations of the command-line options.</P +><P +><DIV +CLASS="TABLE" +><P +><B +>Table 3-1. Tcl Variables For Command Line Options</B +></P +><TABLE +BORDER="1" +CLASS="CALSTABLE" +><TR +><TH +ALIGN="LEFT" +VALIGN="TOP" +>runtest</TH +><TH +ALIGN="LEFT" +VALIGN="TOP" +>Tcl</TH +><TH +ALIGN="LEFT" +VALIGN="TOP" +>option</TH +><TH +ALIGN="LEFT" +VALIGN="TOP" +>variable</TH +><TH +ALIGN="LEFT" +VALIGN="TOP" +>description</TH +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>--all</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>all_flag</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>display all test results if set</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>--baud</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>baud</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>set the default baud rate to something other than + 9600.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>--connect</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>connectmode</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +><B +CLASS="COMMAND" +>rlogin</B +>, + <B +CLASS="COMMAND" +>telnet</B +>, <B +CLASS="COMMAND" +>rsh</B +>, + <B +CLASS="COMMAND" +>kermit</B +>, <B +CLASS="COMMAND" +>tip</B +>, or + <B +CLASS="COMMAND" +>mondfe</B +></TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>--outdir</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>outdir</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>directory for <TT +CLASS="FILENAME" +>tool.sum</TT +> and + <TT +CLASS="FILENAME" +>tool.log.</TT +></TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>--objdir</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>objdir</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>directory for pre-compiled binaries</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>--reboot</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>reboot</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>reboot the target if set to + <I +CLASS="EMPHASIS" +>"1"</I +>; do not reboot if set to + <I +CLASS="EMPHASIS" +>"0"</I +> (the default).</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>--srcdir</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>srcdir</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>directory of test subdirectories</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>--strace</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>tracelevel</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>a number: Tcl trace depth</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>--tool</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>tool</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>name of tool to test; identifies init, test subdir</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>--verbose</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>verbose</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>verbosity level. As option, use multiple times; as + variable, set a number, 0 or greater.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>--target</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>target_triplet</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The canonical configuration string for the target.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>--host</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>host_triplet</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The canonical configuration string for the host.</TD +></TR +><TR +><TD +ALIGN="LEFT" +VALIGN="TOP" +>--build</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>build_triplet</TD +><TD +ALIGN="LEFT" +VALIGN="TOP" +>The canonical configuration string for the build + host.</TD +></TR +></TABLE +></DIV +> + </P +></DIV +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="PERSONAL" +>Personal Config File</A +></H2 +><P +>The personal config file is used to customize + <B +CLASS="COMMAND" +>runtest's</B +> behaviour for each person. It's + typically used to set the user prefered setting for verbosity, + and any experimental Tcl procedures. My personal + <TT +CLASS="FILENAME" +>~/.dejagnurc</TT +> file looks like:</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 3-12. Personal Config File</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> set all_flag 1 + set RLOGIN /usr/ucb/rlogin + set RSH /usr/local/sbin/ssh + </PRE +></TD +></TR +></TABLE +></DIV +><P +>Here I set <SPAN +CLASS="SYMBOL" +>all_flag</SPAN +> so I see all the test + cases that PASS along with the ones that FAIL. I also set + <SPAN +CLASS="SYMBOL" +>RLOGIN</SPAN +> to the BSD version. I have + <SPAN +CLASS="PRODUCTNAME" +>Kerberos</SPAN +> installed, and when I rlogin + to a target board, it usually isn't supported. So I use the non + secure version rather than the default that's in my path. I also + set <SPAN +CLASS="SYMBOL" +>RSH</SPAN +> to the <SPAN +CLASS="PRODUCTNAME" +>SSH</SPAN +> + secure shell, as rsh is mostly used to test unix + machines within a local network here.</P +></DIV +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="releng.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="extending.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Remote Host Testing</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="customizing.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Extending DejaGnu</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/customizing.html b/doc/overview/customizing.html new file mode 100644 index 0000000..e42ce19 --- /dev/null +++ b/doc/overview/customizing.html @@ -0,0 +1,470 @@ +<HTML +><HEAD +><TITLE +>Customizing DejaGnu</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="PREVIOUS" +TITLE="The files DejaGnu produces." +HREF="outputfiles.html"><LINK +REL="NEXT" +TITLE="Global Config File" +HREF="global.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="outputfiles.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +></TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="global.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="CHAPTER" +><H1 +><A +NAME="CUSTOMIZING" +>Chapter 3. Customizing DejaGnu</A +></H1 +><DIV +CLASS="TOC" +><DL +><DT +><B +>Table of Contents</B +></DT +><DT +><A +HREF="customizing.html#LOCAL" +>Local Config File</A +></DT +><DT +><A +HREF="global.html" +>Global Config File</A +></DT +><DT +><A +HREF="boardconfig.html" +>Board Config File</A +></DT +><DT +><A +HREF="releng.html" +>Remote Host Testing</A +></DT +><DT +><A +HREF="configfile.html" +>Config File Values</A +></DT +></DL +></DIV +><P +>The site configuration file, <TT +CLASS="FILENAME" +>site.exp</TT +>, + captures configuration-dependent values and propagates them to the + DejaGnu test environment using Tcl variables. This ties the + DejaGnu test scripts into the <B +CLASS="COMMAND" +>configure</B +> and + <B +CLASS="COMMAND" +>make</B +> programs. If this file is setup correctly, + it is possible to execute a test suite merely by typing + <B +CLASS="COMMAND" +>runtest</B +>.</P +><P +>DejaGnu supports two <TT +CLASS="FILENAME" +>site.exp</TT +> + files. The multiple instances of <TT +CLASS="FILENAME" +>site.exp</TT +> are + loaded in a fixed order built into DejaGnu. The first file loaded + is the local file <TT +CLASS="FILENAME" +>site.exp</TT +>, and then the + optional global <TT +CLASS="FILENAME" +>site.exp</TT +> file as + pointed to by the <SPAN +CLASS="SYMBOL" +>DEJAGNU</SPAN +> environment + variable.</P +><P +>There is an optional <I +CLASS="EMPHASIS" +>master</I +> + <TT +CLASS="FILENAME" +>site.exp</TT +>, capturing configuration values that + apply to DejaGnu across the board, in each configuration-specific + subdirectory of the DejaGnu library directory. + <B +CLASS="COMMAND" +>runtest</B +> loads these values first. The master + <TT +CLASS="FILENAME" +>site.exp</TT +> contains the default values for all + targets and hosts supported by DejaGnu. This master file is + identified by setting the environment variable + <SPAN +CLASS="SYMBOL" +>DEJAGNU</SPAN +> to the name of the file. This is also + refered to as the ``global'' config file.</P +><P +>Any directory containing a configured test suite also has a + local <TT +CLASS="FILENAME" +>site.exp</TT +>, capturing configuration values + specific to the tool under test. Since <B +CLASS="COMMAND" +>runtest</B +> + loads these values last, the individual test configuration can + either rely on and use, or override, any of the global values from + the global <TT +CLASS="FILENAME" +>site.exp</TT +> file.</P +><P +>You can usually generate or update the testsuite's local + <TT +CLASS="FILENAME" +>site.exp</TT +> by typing <B +CLASS="COMMAND" +>make + site.exp</B +> in the test suite directory, after the test + suite is configured.</P +><P +>You can also have a file in your home directory called + <TT +CLASS="FILENAME" +>.dejagnurc</TT +>. This gets loaded first before the + other config files. Usually this is used for personal stuff, like + setting the <SPAN +CLASS="SYMBOL" +>all_flag</SPAN +> so all the output gets + printed, or your own verbosity levels. This file is usually + restricted to setting command line options.</P +><P +>You can further override the default values in a + user-editable section of any <TT +CLASS="FILENAME" +>site.exp</TT +>, or by + setting variables on the <B +CLASS="COMMAND" +>runtest</B +> command + line.</P +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="LOCAL" +>Local Config File</A +></H1 +><P +>It is usually more convenient to keep these <I +CLASS="EMPHASIS" +>manual + overrides</I +> in the <TT +CLASS="FILENAME" +>site.exp</TT +> + local to each test directory, rather than in the global + <TT +CLASS="FILENAME" +>site.exp</TT +> in the installed DejaGnu + library. This file is mostly for supplying tool specific info + that is required by the test suite.</P +><P +>All local <TT +CLASS="FILENAME" +>site.exp</TT +> files have + two sections, separated by comment text. The first section is + the part that is generated by <B +CLASS="COMMAND" +>make</B +>. It is + essentially a collection of Tcl variable definitions based on + <TT +CLASS="FILENAME" +>Makefile</TT +> environment variables. Since they + are generated by <B +CLASS="COMMAND" +>make</B +>, they contain the + values as specified by <B +CLASS="COMMAND" +>configure</B +>. (You can + also customize these values by using the <TT +CLASS="OPTION" +>--site</TT +> + option to <B +CLASS="COMMAND" +>configure</B +>.) In particular, this + section contains the <TT +CLASS="FILENAME" +>Makefile</TT +> + variables for host and target configuration data. Do not edit + this first section; if you do, your changes are replaced next + time you run <B +CLASS="COMMAND" +>make</B +>.</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 3-1. The first section starts with</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> ## these variables are automatically generated by make ## + # Do not edit here. If you wish to override these values + # add them to the last section + </PRE +></TD +></TR +></TABLE +></DIV +><P +>In the second section, you can override any default values + (locally to DejaGnu) for all the variables. The second section + can also contain your preferred defaults for all the command + line options to <B +CLASS="COMMAND" +>runtest</B +>. This allows you to + easily customize <B +CLASS="COMMAND" +>runtest</B +> for your preferences + in each configured test-suite tree, so that you need not type + options repeatedly on the command line. (The second section may + also be empty, if you do not wish to override any defaults.)</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 3-2. The first section ends with this line</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> ## All variables above are generated by configure. Do Not Edit ## + </PRE +></TD +></TR +></TABLE +></DIV +><P +>You can make any changes under this line. If you wish to + redefine a variable in the top section, then just put a + duplicate value in this second section. Usually the values + defined in this config file are related to the configuration of + the test run. This is the ideal place to set the variables + <SPAN +CLASS="SYMBOL" +>host_triplet</SPAN +>, <SPAN +CLASS="SYMBOL" +>build_triplet</SPAN +>, + <SPAN +CLASS="SYMBOL" +>target_triplet</SPAN +>. All other variables are tool + dependant. ie for testing a compiler, the value for + <SPAN +CLASS="SYMBOL" +>CC</SPAN +> might be set to a freshly built binary, as + opposed to one in the user's path.</P +><P +>Here's an example local site.exp file, as used for + <SPAN +CLASS="PRODUCTNAME" +>GCC/G++</SPAN +> testing.</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 3-3. Local Config File</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> + ## these variables are automatically generated by make ## + # Do not edit here. If you wish to override these values + # add them to the last section + set rootme "/build/devo-builds/i586-pc-linux-gnulibc1/gcc" + set host_triplet i586-pc-linux-gnulibc1 + set build_triplet i586-pc-linux-gnulibc1 + set target_triplet i586-pc-linux-gnulibc1 + set target_alias i586-pc-linux-gnulibc1 + set CFLAGS "" + set CXXFLAGS "-I/build/devo-builds/i586-pc-linux-gnulibc1/gcc/../libio -I$srcdir/../libg++/src -I$srcdir/../libio -I$srcdir/../libstdc++ -I$srcdir/../libstdc++/stl -L/build/devo-builds/i586-pc-linux-gnulibc1/gcc/../libg++ -L/build/devo-builds/i586-pc-linux-gnulibc1/gcc/../libstdc++" + append LDFLAGS " -L/build/devo-builds/i586-pc-linux-gnulibc1/gcc/../ld" + set tmpdir /build/devo-builds/i586-pc-linux-gnulibc1/gcc/testsuite + set srcdir "${srcdir}/testsuite" + ## All variables above are generated by configure. Do Not Edit ## + + </PRE +></TD +></TR +></TABLE +></DIV +><P +>This file defines the required fields for a local config + file, namely the three config triplets, and the srcdir. It also + defines several other Tcl variables that are used exclusivly by + the GCC test suite. For most test cases, the CXXFLAGS and LDFLAGS + are supplied by DejaGnu itself for cross testing, but to test a + compiler, GCC needs to manipulate these itself.</P +></DIV +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="outputfiles.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="global.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>The files DejaGnu produces.</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +> </TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Global Config File</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/debugging.html b/doc/overview/debugging.html new file mode 100644 index 0000000..9dc71f0 --- /dev/null +++ b/doc/overview/debugging.html @@ -0,0 +1,248 @@ +<HTML +><HEAD +><TITLE +>Debugging A Test Case</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Extending DejaGnu" +HREF="extending.html"><LINK +REL="PREVIOUS" +TITLE="Writing A Test Case" +HREF="writing.html"><LINK +REL="NEXT" +TITLE="Adding A Test Case To A Test Suite." +HREF="adding.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="writing.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 4. Extending DejaGnu</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="adding.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="DEBUGGING" +>Debugging A Test Case</A +></H1 +><P +>These are the kinds of debugging information available + from DejaGnu:</P +><P +></P +><UL +><LI +STYLE="list-style-type: disc" +><P +>Output controlled by test scripts themselves, + explicitly allowed for by the test author. This kind of + debugging output appears in the detailed output recorded in the + DejaGnu log file. To do the same for new tests, use the + <B +CLASS="COMMAND" +>verbose</B +> procedure (which in turn uses the + variable also called <I +CLASS="EMPHASIS" +>verbose</I +>) to control + how much output to generate. This will make it easier for other + people running the test to debug it if necessary. Whenever + possible, if <I +CLASS="EMPHASIS" +>$verbose</I +> is + <I +CLASS="EMPHASIS" +>0</I +>, there should be no output other than the + output from <I +CLASS="EMPHASIS" +>pass</I +>, + <I +CLASS="EMPHASIS" +>fail</I +>, <I +CLASS="EMPHASIS" +>error</I +>, and + <I +CLASS="EMPHASIS" +>warning</I +>. Then, to whatever extent is + appropriate for the particular test, allow successively higher + values of <I +CLASS="EMPHASIS" +>$verbose</I +> to generate more + information. Be kind to other programmers who use your tests: + provide for a lot of debugging information.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Output from the internal debugging functions of + Tcl and <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +>. There is a command + line options for each; both forms of debugging output are + recorded in the file <TT +CLASS="FILENAME" +>dbg.log</TT +> in the current + directory.</P +><P +>Use <TT +CLASS="OPTION" +>--debug</TT +> for information from the + expect level; it generates displays of the expect attempts to + match the tool output with the patterns specified. This output + can be very helpful while developing test scripts, since it + shows precisely the characters received. Iterating between the + latest attempt at a new test script and the corresponding + <TT +CLASS="FILENAME" +>dbg.log</TT +> can allow you to create the final + patterns by ``cut and paste''. This is sometimes the best way + to write a test case.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Use <TT +CLASS="OPTION" +>--strace</TT +> to see more + detail at the Tcl level; this shows how Tcl procedure + definitions expand, as they execute. The associated number + controls the depth of definitions expanded.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Finally, if the value of + <I +CLASS="EMPHASIS" +>verbose</I +> is 3 or greater,DejaGnu turns on + the expect command <B +CLASS="COMMAND" +>log_user</B +>. This command + prints all expect actions to the expect standard output, to the + detailed log file, and (if <TT +CLASS="OPTION" +>--debug</TT +> is on) to + <TT +CLASS="FILENAME" +>dbg.log</TT +>.</P +></LI +></UL +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="writing.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="adding.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Writing A Test Case</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="extending.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Adding A Test Case To A Test Suite.</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/designgoals.html b/doc/overview/designgoals.html new file mode 100644 index 0000000..d2d88a4 --- /dev/null +++ b/doc/overview/designgoals.html @@ -0,0 +1,219 @@ +<HTML +><HEAD +><TITLE +>Design Goals</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Overview" +HREF="overview.html"><LINK +REL="PREVIOUS" +TITLE="What's New In This Release" +HREF="new.html"><LINK +REL="NEXT" +TITLE="A POSIX conforming test framework" +HREF="posix.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="new.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 1. Overview</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="posix.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="DESIGNGOALS" +>Design Goals</A +></H1 +><P +>DejaGnu grew out of the internal needs of Cygnus Solutions. (then + Cygnus Support). Cygnus maintains and enhances a variety of free programs + in many different environments, and we needed a testing tool that:</P +><P +></P +><UL +><LI +STYLE="list-style-type: disc" +><P +>is useful to developers while fixing + bugs.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>automates running many tests during a software + release process.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>is portable among a variety of host + computers.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>supports cross-development + testing.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>permits testing interactive programs, like + <B +CLASS="COMMAND" +>GDB</B +>; and </P +></LI +><LI +STYLE="list-style-type: disc" +><P +>permits testing batch oriented programs, like + <B +CLASS="COMMAND" +>GCC</B +>.</P +></LI +></UL +><P +>Some of the requirements proved challenging. For example, + interactive programs do not lend themselves very well to automated testing. + But all the requirements are important: for instance, it is imperative to + make sure that <B +CLASS="COMMAND" +>GDB</B +> works as well when cross-debugging + as it does in a native configuration. </P +><P +>Probably the greatest challenge was testing in a cross-development + environment (which can be a real nightmare). Most cross-development + environments are customized by each developer. Even when buying packaged + boards from vendors there are many differences. The communication + interfaces vary from a serial line to ethernet. DejaGnu was designed with + a modular communication setup, so that each kind of communication can be + added as required, and supported thereafter. Once a communication + procedure is coded, any test can use it. Currently DejaGnu can use + <B +CLASS="COMMAND" +>rsh</B +>, <B +CLASS="COMMAND" +>rlogin</B +>, + <B +CLASS="COMMAND" +>telnet</B +>, <B +CLASS="COMMAND" +>tip</B +>, + <B +CLASS="COMMAND" +>kermit</B +>, and <B +CLASS="COMMAND" +>mondfe</B +> for remote + communications.</P +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="new.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="posix.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>What's New In This Release</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="overview.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>A POSIX conforming test framework</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/docbook.css b/doc/overview/docbook.css new file mode 100755 index 0000000..b42fb27 --- /dev/null +++ b/doc/overview/docbook.css @@ -0,0 +1,20 @@ +.BOOK .TITLE { text-align: center } +.BOOK .SUBTITLE { text-align: center } +.BOOK .CORPAUTHOR { text-align: center } +.BOOK .AUTHOR { text-align: center } +.BOOK .AFFILIATION { text-align: center } +.BOOK .EDITEDBY { text-align: center } +.BOOK .EDITOR { text-align: center } +.BOOK .GRAPHIC { text-align: center } + +.ARTICLE .TITLE { text-align: center } +.ARTICLE .SUBTITLE { text-align: center } +.ARTICLE .CORPAUTHOR { text-align: center } +.ARTICLE .AUTHOR { text-align: center } +.ARTICLE .AFFILIATION { text-align: center } +.ARTICLE .EDITEDBY { text-align: center } +.ARTICLE .EDITOR { text-align: center } +.ARTICLE .GRAPHIC { text-align: center } +.ARTICLE .ABSTRACT { margin-left: 0.5in; + margin-right: 0.5in; + font-style: italic } diff --git a/doc/overview/extending.html b/doc/overview/extending.html new file mode 100644 index 0000000..4cce3b7 --- /dev/null +++ b/doc/overview/extending.html @@ -0,0 +1,206 @@ +<HTML +><HEAD +><TITLE +>Extending DejaGnu</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="PREVIOUS" +TITLE="Config File Values" +HREF="configfile.html"><LINK +REL="NEXT" +TITLE="Adding A New Tool" +HREF="addtool.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="configfile.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +></TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="addtool.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="CHAPTER" +><H1 +><A +NAME="EXTENDING" +>Chapter 4. Extending DejaGnu</A +></H1 +><DIV +CLASS="TOC" +><DL +><DT +><B +>Table of Contents</B +></DT +><DT +><A +HREF="extending.html#ADDSUITE" +>Adding A New Test Suite</A +></DT +><DT +><A +HREF="addtool.html" +>Adding A New Tool</A +></DT +><DT +><A +HREF="addtarget.html" +>Adding A New Target</A +></DT +><DT +><A +HREF="addboard.html" +>Adding A New Board</A +></DT +><DT +><A +HREF="boarddefs.html" +>Board Config File Values</A +></DT +><DT +><A +HREF="writing.html" +>Writing A Test Case</A +></DT +><DT +><A +HREF="debugging.html" +>Debugging A Test Case</A +></DT +><DT +><A +HREF="adding.html" +>Adding A Test Case To A Test Suite.</A +></DT +><DT +><A +HREF="hints.html" +>Hints On Writing A Test Case</A +></DT +><DT +><A +HREF="tvariables.html" +>Special variables used by test cases.</A +></DT +></DL +></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="ADDSUITE" +>Adding A New Test Suite</A +></H1 +><P +>The testsuite for a new tool should always be located in that tools + source directory. DejaGnu require the directory be named + <TT +CLASS="FILENAME" +>testsuite</TT +>. Under this directory, the test cases go + in a subdirectory whose name begins with the tool name. For example, for + a tool named <I +CLASS="EMPHASIS" +>flubber</I +>, each subdirectory containing + testsuites must start with <I +CLASS="EMPHASIS" +>"flubber."</I +>.</P +></DIV +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="configfile.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="addtool.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Config File Values</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +> </TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Adding A New Tool</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/filemap.html b/doc/overview/filemap.html new file mode 100644 index 0000000..bb894c9 --- /dev/null +++ b/doc/overview/filemap.html @@ -0,0 +1,222 @@ +<HTML +><HEAD +><TITLE +>File Map</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Reference" +HREF="reference.html"><LINK +REL="PREVIOUS" +TITLE="Builtin Procedures" +HREF="builtins.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="builtins.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 5. Reference</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +> </TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="FILEMAP" +>File Map</A +></H1 +><P +>This is a map of the files in DejaGnu.</P +><P +></P +><UL +><LI +><P +>runtest</P +></LI +><LI +><P +>runtest.exp</P +></LI +><LI +><P +>stub-loader.c</P +></LI +><LI +><P +>testglue.c</P +></LI +><LI +><P +>config</P +></LI +><LI +><P +>baseboards</P +></LI +><LI +><P +>lib/debugger.exp</P +></LI +><LI +><P +>lib/dg.exp</P +></LI +><LI +><P +>lib/framework.exp</P +></LI +><LI +><P +>lib/ftp.exp</P +></LI +><LI +><P +>lib/kermit.exp</P +></LI +><LI +><P +>lib/libgloss.exp</P +></LI +><LI +><P +>lib/mondfe.exp</P +></LI +><LI +><P +>lib/remote.exp</P +></LI +><LI +><P +>lib/rlogin.exp</P +></LI +><LI +><P +>lib/rsh.exp</P +></LI +><LI +><P +>lib/standard.exp</P +></LI +><LI +><P +>lib/target.exp</P +></LI +><LI +><P +>lib/targetdb.exp</P +></LI +><LI +><P +>lib/telnet.exp</P +></LI +><LI +><P +>lib/tip.exp</P +></LI +><LI +><P +>lib/util-defs.exp</P +></LI +><LI +><P +>lib/utils.exp</P +></LI +><LI +><P +>lib/xsh.exp</P +></LI +></UL +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="builtins.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +> </TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Builtin Procedures</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="reference.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +> </TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/global.html b/doc/overview/global.html new file mode 100644 index 0000000..cc102f3 --- /dev/null +++ b/doc/overview/global.html @@ -0,0 +1,245 @@ +<HTML +><HEAD +><TITLE +>Global Config File</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Customizing DejaGnu" +HREF="customizing.html"><LINK +REL="PREVIOUS" +TITLE="Customizing DejaGnu" +HREF="customizing.html"><LINK +REL="NEXT" +TITLE="Board Config File" +HREF="boardconfig.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="customizing.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 3. Customizing DejaGnu</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="boardconfig.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="GLOBAL" +>Global Config File</A +></H1 +><P +>The master config file is where all the target specific + config variables get set for a whole site get set. The idea is + that for a centralized testing lab where people have to share a + target between multiple developers. There are settings for both + remote targets and remote hosts. Here's an example of a Master + Config File (also called the Global config file) for a + <I +CLASS="EMPHASIS" +>canadian cross</I +>. A canadian cross is when + you build and test a cross compiler on a machine other than the + one it's to be hosted on.</P +><P +>Here we have the config settings for our California + office. Note that all config values are site dependant. Here we + have two sets of values that we use for testing m68k-aout cross + compilers. As both of these target boards has a different + debugging protocol, we test on both of them in sequence.</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 3-4. Global Config file</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> # Make sure we look in the right place for the board description files. + if ![info exists boards_dir] { + set boards_dir {} + } + lappend boards_dir "/nfs/cygint/s1/cygnus/dejagnu/boards" + + verbose "Global Config File: target_triplet is $target_triplet" 2 + global target_list + + case "$target_triplet" in { + { "native" } { + set target_list "unix" + } + { "sparc64-*elf" } { + set target_list "sparc64-sim" + } + { "mips-*elf" } { + set target_list "mips-sim wilma barney" + } + { "mips-lsi-elf" } { + set target_list "mips-lsi-sim{,soft-float,el}" + } + { "sh-*hms" } { + set target_list { "sh-hms-sim" "bloozy" } + } + } + </PRE +></TD +></TR +></TABLE +></DIV +><P +>In this case, we have support for several cross compilers, + that all run on this host. For testing on operating systems that + don't support Expect, DejaGnu can be run on the local build + machine, and it can connect to the remote host and run all the + tests for this cross compiler on that host. All the remote OS + requires is a working telnetd.</P +><P +>As you can see, all one does is set the variable + <SPAN +CLASS="SYMBOL" +>target_list</SPAN +> to the list of targets and options to + test. The simple settings, like for + <I +CLASS="EMPHASIS" +>sparc64-elf</I +> only require setting the name of + the single board config file. The <I +CLASS="EMPHASIS" +>mips-elf</I +> + target is more complicated. Here it sets the list to three target + boards. One is the default mips target, and both + <I +CLASS="EMPHASIS" +>wilma</I +> <I +CLASS="EMPHASIS" +>barney</I +> are + symbolic names for other mips boards. Symbolic names are covered + in the <A +HREF="addboard.html" +><I +>Adding A New Board</I +></A +> chapter. The more complicated + example is the one for <I +CLASS="EMPHASIS" +>mips-lsi-elf</I +>. This one + runs the tests with multiple iterations using all possible + combinations of the <TT +CLASS="OPTION" +>--soft-float</TT +> and the + <TT +CLASS="OPTION" +>--el</TT +> (little endian) option. Needless to say, + this last feature is mostly compiler specific.</P +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="customizing.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="boardconfig.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Customizing DejaGnu</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="customizing.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Board Config File</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/hints.html b/doc/overview/hints.html new file mode 100644 index 0000000..aaf59ee --- /dev/null +++ b/doc/overview/hints.html @@ -0,0 +1,258 @@ +<HTML +><HEAD +><TITLE +>Hints On Writing A Test Case</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Extending DejaGnu" +HREF="extending.html"><LINK +REL="PREVIOUS" +TITLE="Adding A Test Case To A Test Suite." +HREF="adding.html"><LINK +REL="NEXT" +TITLE="Special variables used by test cases." +HREF="tvariables.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="adding.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 4. Extending DejaGnu</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="tvariables.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="HINTS" +>Hints On Writing A Test Case</A +></H1 +><P +>It is safest to write patterns that match all the output + generated by the tested program; this is called closure. + If a pattern does not match the entire output, any output that + remains will be examined by the next <B +CLASS="COMMAND" +>expect</B +> + command. In this situation, the precise boundary that determines + which <B +CLASS="COMMAND" +>expect</B +> command sees what is very + sensitive to timing between the Expect task and the task running + the tested tool. As a result, the test may sometimes appear to + work, but is likely to have unpredictable results. (This problem + is particularly likely for interactive tools, but can also + affect batch tools---especially for tests that take a long time + to finish.) The best way to ensure closure is to use the + <TT +CLASS="OPTION" +>-re</TT +> option for the <B +CLASS="COMMAND" +>expect</B +> + command to write the pattern as a full regular expressions; then + you can match the end of output using a <I +CLASS="EMPHASIS" +>$</I +>. + It is also a good idea to write patterns that match all + available output by using <I +CLASS="EMPHASIS" +>.*\</I +> after the + text of interest; this will also match any intervening blank + lines. Sometimes an alternative is to match end of line using + <I +CLASS="EMPHASIS" +>\r</I +> or <I +CLASS="EMPHASIS" +>\n</I +>, but this is + usually too dependent on terminal settings.</P +><P +>Always escape punctuation, such as <I +CLASS="EMPHASIS" +>(</I +> + or <I +CLASS="EMPHASIS" +>"</I +>, in your patterns; for example, write + <I +CLASS="EMPHASIS" +>\(</I +>. If you forget to escape punctuation, + you will usually see an error message like <TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>extra + characters after close-quote.</PRE +></TD +></TR +></TABLE +></P +><P +>If you have trouble understanding why a pattern does not + match the program output, try using the <TT +CLASS="OPTION" +>--debug</TT +> + option to <B +CLASS="COMMAND" +>runtest</B +>, and examine the debug log + carefully.</P +><P +>Be careful not to neglect output generated by setup rather + than by the interesting parts of a test case. For example, + while testing GDB, I issue a send <I +CLASS="EMPHASIS" +>set height + 0\n</I +> command. The purpose is simply to make sure GDB + never calls a paging program. The <I +CLASS="EMPHASIS" +>set + height</I +> command in GDB does not generate any + output; but running any command makes GDB issue a new + <I +CLASS="EMPHASIS" +>(gdb) </I +> prompt. If there were no + <B +CLASS="COMMAND" +>expect</B +> command to match this prompt, the + output <I +CLASS="EMPHASIS" +>(gdb) </I +> begins the text seen by the + next <B +CLASS="COMMAND" +>expect</B +> command---which might make that + pattern fail to match.</P +><P +>To preserve basic sanity, I also recommended that no test + ever pass if there was any kind of problem in the test case. To + take an extreme case, tests that pass even when the tool will + not spawn are misleading. Ideally, a test in this sort of + situation should not fail either. Instead, print an error + message by calling one of the DejaGnu procedures + <B +CLASS="COMMAND" +>error</B +> or <B +CLASS="COMMAND" +>warning</B +>.</P +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="adding.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="tvariables.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Adding A Test Case To A Test Suite.</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="extending.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Special variables used by test cases.</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/new.html b/doc/overview/new.html new file mode 100644 index 0000000..edf4c6d --- /dev/null +++ b/doc/overview/new.html @@ -0,0 +1,228 @@ +<HTML +><HEAD +><TITLE +>What's New In This Release</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Overview" +HREF="overview.html"><LINK +REL="PREVIOUS" +TITLE="Overview" +HREF="overview.html"><LINK +REL="NEXT" +TITLE="Design Goals" +HREF="designgoals.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="overview.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 1. Overview</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="designgoals.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="NEW" +>What's New In This Release</A +></H1 +><P +>This release has a number of substantial changes over version + 1.3. The most visible change is that the version of Expect and Tcl + included in the release are up-to-date with the current stable net + releases. The biggest change is years of modifications to the + target configuration system, used for cross testing. While this + greatly improved cross testing, is has made that subsystem very + complicated. The goal is to have this entirely rewritten using + <SPAN +CLASS="PRODUCTNAME" +>iTcl</SPAN +> by the next release. Other changes + are:</P +><P +></P +><UL +><LI +><P +>More builtin support for building target binaries + with the correct linker flags. Currently this only works with + <SPAN +CLASS="PRODUCTNAME" +>GCC</SPAN +> as the cross compiler, + preferably with a target supported by + <A +HREF="builtins.html#LIBGLOSS" +><I +>Libgloss</I +></A +>.</P +></LI +><LI +><P +>Lots of little bug fixes from years of heavy + use at Cygnus Solutions.</P +></LI +><LI +><P +>DejaGnu now uses + <SPAN +CLASS="PRODUCTNAME" +>Automake</SPAN +> for Makefile + configuration.</P +></LI +><LI +><P +>Updated documentation, now in SGML + (using the <A +HREF="http://nis-www.lanl.gov/~rosalia/mydocs/docbook-intro.html" +TARGET="_top" +>free + GNU DocBook tools</A +>) format.</P +></LI +><LI +><P +>NT support. There is beta level support for NT + that is still a work in progress. This requires the <A +HREF="http://sources.redhat.com" +TARGET="_top" +>Cygwin</A +> POSIX system + for NT.</P +></LI +></UL +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="CYGWIN" +>NT Support</A +></H2 +><P +>To use DejaGnu on NT, you need to first install the + <A +HREF="http://sources.redhat.com" +TARGET="_top" +>Cygwin</A +> + release. This works as of the B20.1 release. Cygwin is a POSIX + system for NT. This covers both utility programs, and a libray + that adds POSIX system calls to NT. Among them is pseudo tty + support for NT that emulates the POSIX pty standard. The + latest Cygwin is always available from <A +HREF="http://sources.redhat.com" +TARGET="_top" +>this location</A +>. This + works well enough to run <I +CLASS="EMPHASIS" +>"make check"</I +> of + the GNU development tree on NT after a native build. But the + nature of pty's on NT is still evolving. Your mileage may + vary...</P +></DIV +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="overview.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="designgoals.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Overview</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="overview.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Design Goals</TD +></TR +></TABLE +></DIV +></BODY +></HTML +> diff --git a/doc/overview/outputfiles.html b/doc/overview/outputfiles.html new file mode 100644 index 0000000..97931b3 --- /dev/null +++ b/doc/overview/outputfiles.html @@ -0,0 +1,596 @@ +<HTML +><HEAD +><TITLE +>The files DejaGnu produces.</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Running Tests" +HREF="runningtests.html"><LINK +REL="PREVIOUS" +TITLE="Runtest" +HREF="runtest.html"><LINK +REL="NEXT" +TITLE="Customizing DejaGnu" +HREF="customizing.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="runtest.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 2. Running Tests</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="customizing.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="OUTPUTFILES" +>The files DejaGnu produces.</A +></H1 +><P +>DejaGnu always writes two kinds of output files: summary + logs and detailed logs. The contents of both of these are + determined by your tests.</P +><P +>For troubleshooting, a third kind of output file is useful: + use <TT +CLASS="OPTION" +>--debug</TT +> to request an output file showing + details of what <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> is doing + internally.</P +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="SUM" +>Summary File</A +></H2 +><P +>DejaGnu always produces a summary output file + <TT +CLASS="FILENAME" +>tool.sum</TT +>. This summary shows the names of + all test files run; for each test file, one line of output from + each <B +CLASS="COMMAND" +>pass</B +> command (showing status + <I +CLASS="EMPHASIS" +>PASS</I +> or <I +CLASS="EMPHASIS" +>XPASS</I +>) or + <B +CLASS="COMMAND" +>fail</B +> command (status + <I +CLASS="EMPHASIS" +>FAIL</I +> or <I +CLASS="EMPHASIS" +>XFAIL</I +>); + trailing summary statistics that count passing and failing tests + (expected and unexpected); and the full pathname and version + number of the tool tested. (All possible outcomes, and all + errors, are always reflected in the summary output file, + regardless of whether or not you specify + <TT +CLASS="OPTION" +>--all</TT +>.)</P +><P +>If any of your tests use the procedures + <B +CLASS="COMMAND" +>unresolved</B +>, <B +CLASS="COMMAND" +>unsupported</B +>, + or <B +CLASS="COMMAND" +>runtested</B +>, the summary output also + tabulates the corresponding outcomes.</P +><P +>For example, after <B +CLASS="COMMAND" +>runtest --tool + binutils</B +>, look for a summary log in + <TT +CLASS="FILENAME" +>binutils.sum</TT +>. Normally, DejaGnu writes this + file in your current working directory; use the + <TT +CLASS="OPTION" +>--outdir</TT +> option to select a different + directory.</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 2-1. Here is a short sample summary log</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="SCREEN" +> Test Run By rob on Mon May 25 21:40:57 PDT 1992 + === gdb tests === + Running ./gdb.t00/echo.exp ... + PASS: Echo test + Running ./gdb.all/help.exp ... + PASS: help add-symbol-file + PASS: help aliases + PASS: help breakpoint "bre" abbreviation + FAIL: help run "r" abbreviation + Running ./gdb.t10/crossload.exp ... + PASS: m68k-elf (elf-big) explicit format; loaded + XFAIL: mips-ecoff (ecoff-bigmips) "ptype v_signed_char" signed C types + === gdb Summary === + # of expected passes 5 + # of expected failures 1 + # of unexpected failures 1 + /usr/latest/bin/gdb version 4.6.5 -q + </PRE +></TD +></TR +></TABLE +></DIV +></DIV +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="LOG" +>Log File</A +></H2 +><P +>DejaGnu also saves a detailed log file + <TT +CLASS="FILENAME" +>tool.log</TT +>, showing any output generated by + tests as well as the summary output. For example, after + <B +CLASS="COMMAND" +>runtest --tool binutils</B +>, look for a detailed + log in <TT +CLASS="FILENAME" +>binutils.log</TT +>. Normally, DejaGnu + writes this file in your current working directory; use the + <TT +CLASS="OPTION" +>--outdir</TT +> option to select a different + directory.</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 2-2. Here is a brief example showing a detailed log for + <SPAN +CLASS="PRODUCTNAME" +>G++</SPAN +> tests</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="SCREEN" +> Test Run By rob on Mon May 25 21:40:43 PDT 1992 + + === g++ tests === + + --- Running ./g++.other/t01-1.exp --- + PASS: operate delete + + --- Running ./g++.other/t01-2.exp --- + FAIL: i960 bug EOF + p0000646.C: In function `int warn_return_1 ()': + p0000646.C:109: warning: control reaches end of non-void function + p0000646.C: In function `int warn_return_arg (int)': + p0000646.C:117: warning: control reaches end of non-void function + p0000646.C: In function `int warn_return_sum (int, int)': + p0000646.C:125: warning: control reaches end of non-void function + p0000646.C: In function `struct foo warn_return_foo ()': + p0000646.C:132: warning: control reaches end of non-void function + + --- Running ./g++.other/t01-4.exp --- + FAIL: abort + 900403_04.C:8: zero width for bit-field `foo' + --- Running ./g++.other/t01-3.exp --- + FAIL: segment violation + 900519_12.C:9: parse error before `;' + 900519_12.C:12: Segmentation violation + /usr/latest/bin/gcc: Internal compiler error: program cc1plus got fatal signal + + === g++ Summary === + + # of expected passes 1 + # of expected failures 3 + /usr/latest/bin/g++ version cygnus-2.0.1 + </PRE +></TD +></TR +></TABLE +></DIV +></DIV +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="DEBUGFILE" +>Debug Log File</A +></H2 +><P +>With the <TT +CLASS="OPTION" +>--debug</TT +> option, you can request + a log file showing the output from + <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> itself, running in debugging + mode. This file (<TT +CLASS="FILENAME" +>dbg.log</TT +>, in the directory + where you start <B +CLASS="COMMAND" +>runtest</B +>) shows each pattern + <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> considers in analyzing test + output.</P +><P +>This file reflects each <B +CLASS="COMMAND" +>send</B +> command, + showing the string sent as input to the tool under test; and + each <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> command, showing each + pattern it compares with the tool output.</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 2-3. The log messages begin with a message of the form</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="SCREEN" +> expect: does {<SPAN +CLASS="SYMBOL" +>tool output</SPAN +>} (spawn_id <SPAN +CLASS="SYMBOL" +>n</SPAN +>) + match pattern {<I +CLASS="EMPHASIS" +>expected pattern</I +>}? + + </PRE +></TD +></TR +></TABLE +></DIV +><P +>For every unsuccessful match, + <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> issues a + <I +CLASS="EMPHASIS" +>no</I +> after this message; if other patterns + are specified for the same <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> + command, they are reflected also, but without the first part of + the message (<I +CLASS="EMPHASIS" +>expect... match pattern</I +>).</P +><P +>When <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> finds a match, the + log for the successful match ends with <I +CLASS="EMPHASIS" +>yes</I +>, + followed by a record of the <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> + variables set to describe a successful match.</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 2-4. Here is an excerpt from the debugging log for a + <SPAN +CLASS="PRODUCTNAME" +>GDB</SPAN +> test:</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="SCREEN" +> send: sent {break gdbme.c:34\n} to spawn id 6 + expect: does {} (spawn_id 6) match pattern {Breakpoint.*at.* file + gdbme.c, line 34.*\(gdb\) $}? no + {.*\(gdb\) $}? no + expect: does {} (spawn_id 0) match pattern {return} ? no + {\(y or n\) }? no + {buffer_full}? no + {virtual}? no + {memory}? no + {exhausted}? no + {Undefined}? no + {command}? no + break gdbme.c:34 + Breakpoint 8 at 0x23d8: file gdbme.c, line 34. + (gdb) expect: does {break gdbme.c:34\r\nBreakpoint 8 at 0x23d8: + file gdbme.c, line 34.\r\n(gdb) } (spawn_id 6) match pattern + {Breakpoint.*at.* file gdbme.c, line 34.*\(gdb\) $}? yes + expect: set expect_out(0,start) {18} + expect: set expect_out(0,end) {71} + expect: set expect_out(0,string) {Breakpoint 8 at 0x23d8: file + gdbme.c, line 34.\r\n(gdb) } + epect: set expect_out(spawn_id) {6} + expect: set expect_out(buffer) {break gdbme.c:34\r\nBreakpoint 8 + at 0x23d8: file gdbme.c, line 34.\r\n(gdb) } + PASS: 70 0 breakpoint line number in file + </PRE +></TD +></TR +></TABLE +></DIV +><P +>This example exhibits three properties of + <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> and + <SPAN +CLASS="PRODUCTNAME" +>DejaGnu</SPAN +> that might be surprising at + first glance:</P +><P +></P +><UL +><LI +STYLE="list-style-type: disc" +><P +>Empty output for the first attempted match. The + first set of attempted matches shown ran against the output + <I +CLASS="EMPHASIS" +>{}</I +> --- that is, no + output. <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> begins + attempting to match the patterns supplied immediately; often, + the first pass is against incomplete output (or completely + before all output, as in this case).</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Interspersed tool output. The beginning of + the log entry for the second attempted match may be hard to + spot: this is because the prompt <I +CLASS="EMPHASIS" +>{(gdb) }</I +> + appears on the same line, just before the + <I +CLASS="EMPHASIS" +>expect:</I +> that marks the beginning of the + log entry.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Fail-safe patterns. Many of the patterns + tested are fail-safe patterns provided by + <SPAN +CLASS="PRODUCTNAME" +>GDB</SPAN +> testing utilities, to reduce + possible indeterminacy. It is useful to anticipate potential + variations caused by extreme system conditions + (<SPAN +CLASS="PRODUCTNAME" +>GDB</SPAN +> might issue the message + <I +CLASS="EMPHASIS" +>virtual memory exhausted</I +> in rare + circumstances), or by changes in the tested program + (<I +CLASS="EMPHASIS" +>Undefined command</I +> is the likeliest + outcome if the name of a tested command changes).</P +><P +>The pattern <I +CLASS="EMPHASIS" +>{return}</I +> is a + particularly interesting fail-safe to notice; it checks for an + unexpected <B +CLASS="KEYCAP" +>RET</B +> prompt. This may happen, + for example, if the tested tool can filter output through a + pager.</P +><P +>These fail-safe patterns (like the debugging log itself) + are primarily useful while developing test scripts. Use the + <B +CLASS="COMMAND" +>error</B +> procedure to make the actions for + fail-safe patterns produce messages starting with + <I +CLASS="EMPHASIS" +>ERROR</I +> on standard output, and in the + detailed log file.</P +></LI +></UL +></DIV +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="runtest.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="customizing.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Runtest</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="runningtests.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Customizing DejaGnu</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/overview.html b/doc/overview/overview.html new file mode 100644 index 0000000..6be010f --- /dev/null +++ b/doc/overview/overview.html @@ -0,0 +1,279 @@ +<HTML +><HEAD +><TITLE +>Overview</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="PREVIOUS" +TITLE="Abstract" +HREF="preface.html"><LINK +REL="NEXT" +TITLE="What's New In This Release" +HREF="new.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="preface.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +></TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="new.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="CHAPTER" +><H1 +><A +NAME="OVERVIEW" +>Chapter 1. Overview</A +></H1 +><DIV +CLASS="TOC" +><DL +><DT +><B +>Table of Contents</B +></DT +><DT +><A +HREF="overview.html#WHATIS" +>What is DejaGnu ?</A +></DT +><DT +><A +HREF="new.html" +>What's New In This Release</A +></DT +><DT +><A +HREF="designgoals.html" +>Design Goals</A +></DT +><DT +><A +HREF="posix.html" +>A POSIX conforming test framework</A +></DT +></DL +></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="WHATIS" +>What is DejaGnu ?</A +></H1 +><P +><SPAN +CLASS="PRODUCTNAME" +>DejaGnu</SPAN +> is a framework for + testing other programs. Its purpose is to provide a single + front end for all tests. Think of it as a custom library of + Tcl procedures crafted to support writing a test harness. A + <I +CLASS="EMPHASIS" +>Test Harness</I +> is the testing + infrastructure that is created to support a specific program + or tool. Each program can have multiple test suites, all + supported by a single test harness. DejaGnu is written in + <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +>, which in turn uses + <SPAN +CLASS="PRODUCTNAME" +>Tcl</SPAN +> -- Tool command + language. There is more information on Tcl at the <A +HREF="http://www.scriptics.com" +TARGET="_top" +>Scriptics</A +> web site, and the + Expect web site is at <A +HREF="http://expect.nist.gov" +TARGET="_top" +>NIST</A +>.</P +><P +>DejaGnu offers several advantages for testing:</P +><P +></P +><UL +COMPACT="COMPACT" +><LI +STYLE="list-style-type: disc" +><P +>The flexibility and consistency of the DejaGnu + framework make it easy to write tests for any program, with + either batch oriented, or interactive programs.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>DejaGnu provides a layer of abstraction which + allows you to write tests that are portable to any host or + target where a program must be tested. For instance, a test + for <B +CLASS="COMMAND" +>GDB</B +> can run (from any Unix + based host) on any target architecture that DejaGnu + supports. Currently DejaGnu runs tests on many single board + computers, whose operating software ranges from just a boot + monitor to a full-fledged, Unix-like realtime OS.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>All tests have the same output format. This + makes it easy to integrate testing into other software + development processes. DejaGnu's output is designed to be + parsed by other filtering script, and it is also human + readable.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Using Tcl and expect, it's easy to create wrappers + for existing test suites. By incorporating existing tests under + DejaGnu, it's easier to have a single set of report analyse + programs..</P +></LI +></UL +><P +>Running tests requires two things: the testing framework, and + the test suites themselves. Tests are usually written in + <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> using Tcl, but you can also use a + Tcl script to run a test suite that is not based on + <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +>. + (<SPAN +CLASS="PRODUCTNAME" +>expect</SPAN +> script filenames conventionally + use <I +CLASS="EMPHASIS" +>.exp</I +> as a suffix; for example, the main + implementation of the DejaGnu test driver is in the file + <SPAN +CLASS="PRODUCTNAME" +>runtest.exp</SPAN +>.)</P +><P +>Julia Menapace first coined the term ``Deja Gnu'' to describe an + earlier testing framework at Cygnus Support she had written for + <B +CLASS="COMMAND" +>GDB</B +>. When we replaced it with the Expect-based + framework, it was like DejaGnu all over again... But more importantly, it + was also named after my daughter,<A +HREF="mailto:deja@welcomehome.org" +TARGET="_top" +>Deja Snow Savoye</A +> (now 9 + years old in Dec of 1998), who was a toddler during DejaGnu's + creation.</P +></DIV +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="preface.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="new.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Abstract</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +> </TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>What's New In This Release</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/posix.html b/doc/overview/posix.html new file mode 100644 index 0000000..4a35a55 --- /dev/null +++ b/doc/overview/posix.html @@ -0,0 +1,365 @@ +<HTML +><HEAD +><TITLE +>A POSIX conforming test framework</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Overview" +HREF="overview.html"><LINK +REL="PREVIOUS" +TITLE="Design Goals" +HREF="designgoals.html"><LINK +REL="NEXT" +TITLE="Running Tests" +HREF="runningtests.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="designgoals.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 1. Overview</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="runningtests.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="POSIX" +>A POSIX conforming test framework</A +></H1 +><P +>DejaGnu conforms to the POSIX 1003.3 standard for test + frameworks. I was also a member of that committe.</P +><P +>The POSIX standard 1003.3 defines what a testing framework needs to + provide, in order to permit the creation of POSIX conformance test + suites. This standard is primarily oriented to running POSIX conformance + tests, but its requirements also support testing of features not related + to POSIX conformance. POSIX 1003.3 does not specify a particular testing + framework, but at this time there is only one other POSIX conforming test + framework: TET. TET was created by Unisoft for a consortium comprised of + X/Open, Unix International, and the Open Software Foundation.</P +><P +>The POSIX documentation refers to <I +CLASS="FIRSTTERM" +>assertions</I +>. + An assertion is a description of behavior. For example, if a standard + says ``The sun shall shine'', a corresponding assertion might be ``The + sun is shining.'' A test based on this assertion would pass or fail + depending on whether it is daytime or nighttime. It is important to note + that the standard being tested is never 1003.3; the standard being tested + is some other standard, for which the assertions were written.</P +><P +>As there is no test suite to test testing frameworks for POSIX + 1003.3 conformance, verifying conformance to this standard is done by + repeatedly reading the standard and experimenting. One of the main + things 1003.3 does specify is the set of allowed output messages, and + their definitions. Four messages are supported for a required feature of + POSIX conforming systems, and a fifth for a conditional feature. DejaGnu + supports the use of all five output messages; in this sense a test suite + that uses exactly these messages can be considered POSIX conforming. + These definitions specify the output of a test + case:</P +><P +></P +><DL +><DT +>PASS</DT +><DD +><P +>A test has succeeded. That is, it demonstrated that + the assertion is true.</P +></DD +><DT +>XFAIL</DT +><DD +><P +>POSIX 1003.3 does not incorporate the notion of + expected failures, so <I +CLASS="EMPHASIS" +>PASS</I +>, instead of + <I +CLASS="EMPHASIS" +>XPASS</I +>, must also be returned for test cases + which were expected to fail and did not. This means that + <I +CLASS="EMPHASIS" +>PASS</I +> is in some sense more ambiguous than if + <I +CLASS="EMPHASIS" +>XPASS</I +> is also used.</P +></DD +><DT +>FAIL</DT +><DD +><P +>A test has produced the bug it was intended to + capture. That is, it has demonstrated that the assertion is false. + The <I +CLASS="EMPHASIS" +>FAIL</I +> message is based on the test case only. + Other messages are used to indicate a failure of the framework. As + with <I +CLASS="EMPHASIS" +>PASS</I +>, POSIX tests must return + <I +CLASS="EMPHASIS" +>FAIL</I +> rather than <I +CLASS="EMPHASIS" +>XFAIL</I +> even + if a failure was expected.</P +></DD +><DT +>UNRESOLVED</DT +><DD +><P +>A test produced indeterminate results. Usually, this + means the test executed in an unexpected fashion; this outcome + requires that a human being go over results, to determine if the test + should have passed or failed. This message is also used for any test + that requires human intervention because it is beyond the abilities + of the testing framework. Any unresolved test should resolved to + <I +CLASS="EMPHASIS" +>PASS</I +> or <I +CLASS="EMPHASIS" +>FAIL</I +> before a test + run can be considered finished.</P +><P +>Note that for POSIX, each assertion must produce a test result + code. If the test isn't actually run, it must produce + <I +CLASS="EMPHASIS" +>UNRESOLVED</I +> rather than just leaving that test + out of the output. This means that you have to be careful when + writing tests, to not carelessly use tcl statements like + <I +CLASS="EMPHASIS" +>return</I +>---if you alter the flow of control of the + tcl code you must insure that every test still produces some result + code.</P +><P +>Here are some of the ways a test may wind up + <I +CLASS="EMPHASIS" +>UNRESOLVED</I +>:</P +></DD +></DL +><P +></P +><UL +><LI +STYLE="list-style-type: disc" +><P +>A test's execution is + interrupted.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>A test does not produce a clear + result. This is usually because there was an + <I +CLASS="EMPHASIS" +>ERROR</I +> from DejaGnu while processing + the test, or because there were three or more + <I +CLASS="EMPHASIS" +>WARNING</I +> messages. Any + <I +CLASS="EMPHASIS" +>WARNING</I +> or <I +CLASS="EMPHASIS" +>ERROR</I +> + messages can invalidate the output of the test. This + usually requires a human being to examine the output to + determine what really happened---and to improve the test + case.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>A test depends on a previous test, which + fails.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>The test was set up + incorrectly.</P +></LI +></UL +><P +></P +><DL +><DT +>UNTESTED</DT +><DD +><P +>A test was not run. This is a placeholder, used + when there is no real test case yet.</P +></DD +></DL +><P +>The only remaining output message left is intended to test + features that are specified by the applicable POSIX standard as + conditional:</P +><P +></P +><DL +><DT +>UNSUPPORTED</DT +><DD +><P +>There is no support for the tested case. This may + mean that a conditional feature of an operating system, or of a + compiler, is not implemented. DejaGnu also uses this message when + a testing environment (often a ``bare board'' target) lacks basic + support for compiling or running the test case. For example, a + test for the system subroutine <I +CLASS="EMPHASIS" +>gethostname</I +> + would never work on a target board running only a boot + monitor.</P +></DD +></DL +><P +>DejaGnu uses the same output procedures to produce these messages + for all test suites, and these procedures are already known to conform + to POSIX 1003.3. For a DejaGnu test suite to conform to POSIX 1003.3, + you must avoid the <I +CLASS="EMPHASIS" +>setup</I +>xfail} procedure as + described in the <I +CLASS="EMPHASIS" +>PASS</I +> section above, and you must + be careful to return <I +CLASS="EMPHASIS" +>UNRESOLVED</I +> where appropriate, + as described in the <I +CLASS="EMPHASIS" +>UNRESOLVED</I +> section + above.</P +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="designgoals.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="runningtests.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Design Goals</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="overview.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Running Tests</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/preface.html b/doc/overview/preface.html new file mode 100644 index 0000000..acceb36 --- /dev/null +++ b/doc/overview/preface.html @@ -0,0 +1,157 @@ +<HTML +><HEAD +><TITLE +>Abstract</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="PREVIOUS" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="NEXT" +TITLE="Overview" +HREF="overview.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="book1.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +></TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="overview.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="PREFACE" +><H1 +><A +NAME="PREFACE" +>Abstract</A +></H1 +><P +>This document attempts to describe the functionality of + DejaGnu, the GNU Testing Framework. DejaGnu is entirely written in + <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +>, which uses + <SPAN +CLASS="PRODUCTNAME" +>Tcl</SPAN +> as a command + language. <SPAN +CLASS="PRODUCTNAME" +>Expect</SPAN +> serves as a very + programmable shell; you can run any program, as with the usual + Unix command shells---but once the program is started, your + test script has fully programmable control of + its input and output. This does not just apply to the programs + under test; <B +CLASS="COMMAND" +>expect</B +> can also run any auxiliary + program, such as <B +CLASS="COMMAND" +>diff</B +> or <B +CLASS="COMMAND" +>sh</B +>, + with full control over its input and output.</P +><P +>DejaGnu itself is merely a framework for creation of a test + suites. Test suites are distributed separately for each GNU + tool.</P +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="book1.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="overview.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>DejaGnu</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +> </TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Overview</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/reference.html b/doc/overview/reference.html new file mode 100644 index 0000000..9c2f57b --- /dev/null +++ b/doc/overview/reference.html @@ -0,0 +1,373 @@ +<HTML +><HEAD +><TITLE +>Reference</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="PREVIOUS" +TITLE="Special variables used by test cases." +HREF="tvariables.html"><LINK +REL="NEXT" +TITLE="Builtin Procedures" +HREF="builtins.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="tvariables.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +></TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="builtins.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="CHAPTER" +><H1 +><A +NAME="REFERENCE" +>Chapter 5. Reference</A +></H1 +><DIV +CLASS="TOC" +><DL +><DT +><B +>Table of Contents</B +></DT +><DT +><A +HREF="reference.html#INSTALLATION" +>Installation</A +></DT +><DT +><A +HREF="builtins.html" +>Builtin Procedures</A +></DT +><DT +><A +HREF="filemap.html" +>File Map</A +></DT +></DL +></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="INSTALLATION" +>Installation</A +></H1 +><P +>Once you have the DejaGnu source unpacked and available, you must + first configure the software to specify where it is to run (and the + associated defaults); then you can proceed to installing it.</P +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="CONFIGURING" +>Configuring DejaGnu</A +></H2 +><P +>It is usually best to configure in a directory separate from the + source tree, specifying where to find the source with the optional + <I +CLASS="EMPHASIS" +>--srcdir</I +> option to + <I +CLASS="EMPHASIS" +>configure</I +>. DejaGnu uses the GNU + <I +CLASS="EMPHASIS" +>autoconf</I +> to configure itself. For more info on using + autoconf, read the GNU autoconf manual. To configure, execute the + <TT +CLASS="FILENAME" +>configure</TT +> program, no other options are + required. For an example, to configure in a seperate tree for objects, + execute the configure script from the source tree like this:</P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="SCREEN" +> ../dejagnu-1.4/configure + </PRE +></TD +></TR +></TABLE +><P +>DejaGnu doesn't care at config time if it's for testing a native + system or a cross system. That is determined at runtime by using the + config files.</P +><P +>You may also want to use the <B +CLASS="COMMAND" +>configure</B +> option + <I +CLASS="EMPHASIS" +>--prefix</I +> to specify where you want DejaGnu and its + supporting code installed. By default, installation is in subdirectories + of <TT +CLASS="FILENAME" +>/usr/local</TT +>, but you can select any alternate + directory <SPAN +CLASS="SYMBOL" +>altdir</SPAN +> by including + <TT +CLASS="OPTION" +>--prefix</TT +>{altdir}} on the + <B +CLASS="COMMAND" +>configure</B +> command line. (This value is captured in + the Makefile variables <I +CLASS="EMPHASIS" +>prefix</I +> and + <I +CLASS="EMPHASIS" +>exec</I +>prefix}.)</P +><P +>Save for a small number of example tests, the DejaGnu distribution + itself does not include any test suites; these are available + separately. Test suites for the GNU development tools are included in + those releases. After configuring the top-level DejaGnu directory, unpack + and configure the test directories for the tools you want to test; then, + in each test directory, run <I +CLASS="EMPHASIS" +>make check</I +> to build + auxiliary programs required by some of the tests, and run the test + suites.</P +></DIV +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="INSTALLING" +>Installing DejaGnu</A +></H2 +><P +>To install DejaGnu in your filesystem (either in + <TT +CLASS="FILENAME" +>/usr/local</TT +>, or as specified by your + <I +CLASS="EMPHASIS" +>--prefix</I +> option to <I +CLASS="EMPHASIS" +>configure</I +>), + execute.</P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="SCREEN" +> eg$ make install + </PRE +></TD +></TR +></TABLE +><P +><I +CLASS="EMPHASIS" +>make install</I +>does thes things for + DejaGnu:</P +><P +></P +><UL +><LI +STYLE="list-style-type: disc" +><P +>Look in the path specified for executables + <SPAN +CLASS="SYMBOL" +>$exec_prefix</SPAN +>) for directories called + <TT +CLASS="FILENAME" +>lib</TT +> and <TT +CLASS="FILENAME" +>bin</TT +>. If these + directories do not exist, <I +CLASS="EMPHASIS" +>make install</I +> creates + them.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Create another directory in the + <TT +CLASS="FILENAME" +>share</TT +> directory, called + <TT +CLASS="FILENAME" +>dejagnu</TT +>, and copy all the library files into + it.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Create a directory in the + <TT +CLASS="FILENAME" +>dejagnu/share</TT +> directory, called + <TT +CLASS="FILENAME" +>config</TT +>, and copy all the configuration files into + it.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Copy the <I +CLASS="EMPHASIS" +>runtest</I +> shell script into + <TT +CLASS="FILENAME" +>$exec_prefix/bin</TT +>.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Copy <TT +CLASS="FILENAME" +>runtest.exp</TT +> into + <TT +CLASS="FILENAME" +>$exec_prefix/lib/dejagnu</TT +>. This is the main Tcl + code implementing DejaGnu.</P +></LI +></UL +></DIV +></DIV +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="tvariables.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="builtins.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Special variables used by test cases.</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +> </TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Builtin Procedures</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/releng.html b/doc/overview/releng.html new file mode 100644 index 0000000..58f9cd4 --- /dev/null +++ b/doc/overview/releng.html @@ -0,0 +1,354 @@ +<HTML +><HEAD +><TITLE +>Remote Host Testing</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Customizing DejaGnu" +HREF="customizing.html"><LINK +REL="PREVIOUS" +TITLE="Board Config File" +HREF="boardconfig.html"><LINK +REL="NEXT" +TITLE="Config File Values" +HREF="configfile.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="boardconfig.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 3. Customizing DejaGnu</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="configfile.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="RELENG" +>Remote Host Testing</A +></H1 +><DIV +CLASS="NOTE" +><BLOCKQUOTE +CLASS="NOTE" +><P +><B +>Note: </B +>Thanks to Dj Delorie for the original paper that + this section is based on.</P +></BLOCKQUOTE +></DIV +><P +>DejaGnu also supports running the tests on a remote + host. To set this up, the remote host needs an ftp server, and a + telnet server. Currently foreign operating systems used as + remote hosts are VxWorks, VRTX, Dos/Win3.1, MacOS, and + win95/win98/NT.</P +><P +>The recommended source for a win95/win98/NT based ftp + server is to get IIS (either IIS 1 or Personal Web Server) from + <A +HREF="http://www.microsoft.com" +TARGET="_top" +>http://www.microsoft.com</A +>. + When you install it, make sure you install the FTP server - it's + not selected by default. Go into the IIS manager and change the + FTP server so that it does not allow anonymous ftp. Set the home + directory to the root directory (i.e. c:\) of a suitable + drive. Allow writing via ftp.</P +><P +>It will create an account like IUSR_FOOBAR where foobar is + the name of your machine. Go into the user editor and give that + account a password that you don't mind hanging around in the + clear (i.e. not the same as your admin or personal + passwords). Also, add it to all the various permission groups.</P +><P +>You'll also need a telnet server. For win95/win98/NT, go + to the <A +HREF="http://ataman.com" +TARGET="_top" +>Ataman</A +> web site, + pick up the Ataman Remote Logon Services for Windows, and + install it. You can get started on the eval period anyway. Add + IUSR_FOOBAR to the list of allowed users, set the HOME directory + to be the same as the FTP default directory. Change the Mode + prompt to simple.</P +><P +>Ok, now you need to pick a directory name to do all the + testing in. For the sake of this example, we'll call it piggy + (i.e. c:\piggy). Create this directory.</P +><P +>You'll need a unix machine. Create a directory for the + scripts you'll need. For this example, we'll use + /usr/local/swamp/testing. You'll need to have a source tree + somewhere, say /usr/src/devo. Now, copy some files from + releng's area in SV to your machine:</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 3-6. Remote host setup</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="SCREEN" +> cd /usr/local/swamp/testing + mkdir boards + scp darkstar.welcomehome.org:/dejagnu/cst/bin/MkTestDir . + scp darkstar.welcomehome.org:/dejagnu/site.exp . + scp darkstar.welcomehome.org:/dejagnu/boards/useless98r2.exp boards/foobar.exp + export DEJAGNU=/usr/local/swamp/testing/site.exp + + </PRE +></TD +></TR +></TABLE +></DIV +><P +>You must edit the boards/foobar.exp file to reflect your + machine; change the hostname (foobar.com), username + (iusr_foobar), password, and ftp_directory (c:/piggy) to match + what you selected.</P +><P +>Edit the global <TT +CLASS="FILENAME" +> site.exp</TT +> to reflect your + boards directory:</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 3-7. Add The Board Directory</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> lappend boards_dir "/usr/local/swamp/testing/boards" + </PRE +></TD +></TR +></TABLE +></DIV +><P +>Now run MkTestDir, which is in the contrib + directory. The first parameter is the toolchain prefix, the + second is the location of your devo tree. If you are testing a + cross compiler (ex: you have sh-hms-gcc.exe in your PATH on + the PC), do something like this:</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 3-8. Setup Cross Remote Testing</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> ./MkTestDir sh-hms /usr/dejagnu/src/devo + </PRE +></TD +></TR +></TABLE +></DIV +><P +>If you are testing a native PC compiler (ex: you have + gcc.exe in your PATH on the PC), do this:</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 3-9. Setup Native Remote Testing</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> ./MkTestDir '' /usr/dejagnu/src/devo + </PRE +></TD +></TR +></TABLE +></DIV +><P +>To test the setup, <B +CLASS="COMMAND" +>ftp</B +> to your PC + using the username (iusr_foobar) and password you selected. CD + to the test directory. Upload a file to the PC. Now telnet to + your PC using the same username and password. CD to the test + directory. Make sure the file is there. Type "set" and/or "gcc + -v" (or sh-hms-gcc -v) and make sure the default PATH contains + the installation you want to test.</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 3-10. Run Test Remotely</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> cd /usr/local/swamp/testing + make -k -w check RUNTESTFLAGS="--host_board foobar --target_board foobar -v -v" > check.out 2>&1 + </PRE +></TD +></TR +></TABLE +></DIV +><P +>To run a specific test, use a command like this (for + this example, you'd run this from the gcc directory that + MkTestDir created):</P +><DIV +CLASS="EXAMPLE" +><P +><B +>Example 3-11. Run a Test Remotely</B +></P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +> make check RUNTESTFLAGS="--host_board sloth --target_board sloth -v compile.exp=921202-1.c" + </PRE +></TD +></TR +></TABLE +></DIV +><P +>Note: if you are testing a cross-compiler, put in the + correct target board. You'll also have to download more .exp + files and modify them for your local configuration. The -v's + are optional.</P +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="boardconfig.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="configfile.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Board Config File</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="customizing.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Config File Values</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/runningtests.html b/doc/overview/runningtests.html new file mode 100644 index 0000000..54e3291 --- /dev/null +++ b/doc/overview/runningtests.html @@ -0,0 +1,257 @@ +<HTML +><HEAD +><TITLE +>Running Tests</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="PREVIOUS" +TITLE="A POSIX conforming test framework" +HREF="posix.html"><LINK +REL="NEXT" +TITLE="Runtest" +HREF="runtest.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="posix.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +></TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="runtest.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="CHAPTER" +><H1 +><A +NAME="RUNNINGTESTS" +>Chapter 2. Running Tests</A +></H1 +><DIV +CLASS="TOC" +><DL +><DT +><B +>Table of Contents</B +></DT +><DT +><A +HREF="runningtests.html#MAKECHECK" +>Make check</A +></DT +><DT +><A +HREF="runtest.html" +>Runtest</A +></DT +><DT +><A +HREF="outputfiles.html" +>The files DejaGnu produces.</A +></DT +></DL +></DIV +><P +>There are two ways to execute a test suite. The most + common way is when there is existing support in the + <TT +CLASS="FILENAME" +>Makefile</TT +>. This support consists of a + <I +CLASS="EMPHASIS" +>check</I +> target. The other way is to execute the + <B +CLASS="COMMAND" +>runtest</B +> program directly. To run + <B +CLASS="COMMAND" +>runtest</B +> directcly from the command line requires + either all the correct options, or the <A +HREF="customizing.html#LOCAL" +><I +>Local Config File</I +></A +> must be setup + correctly.</P +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="MAKECHECK" +>Make check</A +></H1 +><P +>To run tests from an existing collection, first use + <B +CLASS="COMMAND" +>configure</B +> as usual to set up the + build directory. Then try typing:</P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="SCREEN" +> make check + </PRE +></TD +></TR +></TABLE +><P +>If the <I +CLASS="EMPHASIS" +>check</I +> target exists, it + usually saves you some trouble. For instance, it can set up any + auxiliary programs or other files needed by the tests. The most + common file the check builds is the + <I +CLASS="EMPHASIS" +>site.exp</I +>. The site.exp file contains + various variables that DejaGnu used to dertermine the + configuration of the program being tested. This is mostly for + supporting remote testing.</P +><P +>The <I +CLASS="EMPHASIS" +>check</I +> target is supported by GNU + <SPAN +CLASS="PRODUCTNAME" +>Automake</SPAN +>. To have DejaGnu support added to your + generated <TT +CLASS="FILENAME" +>Makefile.in</TT +>, just add the keyword + dejagnu to the AUTOMAKE_OPTIONS variable in your + <TT +CLASS="FILENAME" +>Makefile.am</TT +> file.</P +><P +>Once you have run <I +CLASS="EMPHASIS" +>make check</I +> to build + any auxiliary files, you can invoke the test driver + <B +CLASS="COMMAND" +>runtest</B +> directly to repeat the tests. + You will also have to execute <B +CLASS="COMMAND" +>runtest</B +> + directly for test collections with no + <I +CLASS="EMPHASIS" +>check</I +> target in the + <TT +CLASS="FILENAME" +>Makefile</TT +>.</P +></DIV +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="posix.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="runtest.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>A POSIX conforming test framework</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +> </TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Runtest</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/runtest.html b/doc/overview/runtest.html new file mode 100644 index 0000000..8188e4b --- /dev/null +++ b/doc/overview/runtest.html @@ -0,0 +1,1142 @@ +<HTML +><HEAD +><TITLE +>Runtest</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Running Tests" +HREF="runningtests.html"><LINK +REL="PREVIOUS" +TITLE="Running Tests" +HREF="runningtests.html"><LINK +REL="NEXT" +TITLE="The files DejaGnu produces." +HREF="outputfiles.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="runningtests.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 2. Running Tests</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="outputfiles.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="RUNTEST" +>Runtest</A +></H1 +><P +><B +CLASS="COMMAND" +>runtest</B +> is the executable test driver + for DejaGnu. You can specify two kinds of things on the + <B +CLASS="COMMAND" +>runtest</B +> command line: command line options, + and Tcl variables for the test scripts. The options are listed + alphabetically below.</P +><P +><B +CLASS="COMMAND" +>runtest</B +> returns an exit code of + <I +CLASS="EMPHASIS" +>1</I +> if any test has an unexpected result; otherwise + (if all tests pass or fail as expected) it returns <I +CLASS="EMPHASIS" +>0</I +> + as the exit code.</P +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="OUTPUTS" +>Output States</A +></H2 +><P +><TT +CLASS="FILENAME" +>runtest</TT +> flags the outcome of each + test as one of these cases. <A +HREF="posix.html" +><I +>A POSIX Conforming Test Framework</I +></A +> for a + discussion of how POSIX specifies the meanings of these + cases.</P +><P +></P +><DL +><DT +>PASS</DT +><DD +><P +>The most desirable outcome: the test succeeded, and + was expected to succeed.</P +></DD +><DT +>XPASS</DT +><DD +><P +>A pleasant kind of failure: a test was expected to + fail, but succeeded. This may indicate progress; inspect the test + case to determine whether you should amend it to stop expecting + failure.</P +></DD +><DT +>FAIL</DT +><DD +><P +>A test failed, although it was expected to succeed. + This may indicate regress; inspect the test case and the failing + software to ocate the bug.</P +></DD +><DT +>XFAIL</DT +><DD +><P +>A test failed, but it was expected to fail. This + result indicates no change in a known bug. If a test fails because + the operating system where the test runs lacks some facility required + by the test, the outcome is <I +CLASS="EMPHASIS" +>UNSUPPORTED</I +> + instead.</P +></DD +><DT +>UNRESOLVED</DT +><DD +><P +>Output from a test requires manual inspection; the + test suite could not automatically determine the outcome. For + example, your tests can report this outcome is when a test does not + complete as expected.</P +></DD +><DT +>UNTESTED</DT +><DD +><P +>A test case is not yet complete, and in particular + cannot yet produce a <I +CLASS="EMPHASIS" +>PASS</I +> or + <I +CLASS="EMPHASIS" +>FAIL</I +>. You can also use this outcome in dummy + ``tests'' that note explicitly the absence of a real test case for a + particular property.</P +></DD +><DT +>UNSUPPORTED</DT +><DD +><P +>A test depends on a conditionally available feature + that does not exist (in the configured testing environment). For + example, you can use this outcome to report on a test case that does + not work on a particular target because its operating system support + does not include a required subroutine.</P +></DD +></DL +><P +>runtest may also display the following messages:</P +><P +></P +><DL +><DT +>ERROR</DT +><DD +><P +>Indicates a major problem (detected by the test case + itself) in running the test. This is usually an unrecoverable error, + such as a missing file or loss of communication to the target. (POSIX + test suites should not emit this message; use + <I +CLASS="EMPHASIS" +>UNSUPPORTED</I +>, <I +CLASS="EMPHASIS" +>UNTESTED</I +>, or + <I +CLASS="EMPHASIS" +>UNRESOLVED</I +> instead, as + appropriate.)</P +></DD +><DT +>WARNING</DT +><DD +><P +>Indicates a possible problem in running the + test. Usually warnings correspond to recoverable errors, or display + an important message about the following tests.</P +></DD +><DT +>NOTE</DT +><DD +><P +>An informational message about the test + case.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="INVOKING" +>Invoking Runtest</A +></H2 +><P +>This is the full set of command line options that + <TT +CLASS="FILENAME" +>runtest</TT +> recognizes. Arguments may be + abbreviated to the shortest unique string.</P +><P +></P +><DL +><DT +><TT +CLASS="OPTION" +>--all</TT +> (-a)</DT +><DD +><P +>Display all test output. By default, + <I +CLASS="EMPHASIS" +>runtest</I +> shows only the output of tests that + produce unexpected results; that is, tests with status + <I +CLASS="EMPHASIS" +>FAIL</I +> (unexpected failure), + <I +CLASS="EMPHASIS" +>XPASS</I +> (unexpected success), or + <I +CLASS="EMPHASIS" +>ERROR</I +> (a severe error in the test case + itself). Specify <I +CLASS="EMPHASIS" +>--all</I +> to see output for tests + with status <I +CLASS="EMPHASIS" +>PASS</I +> (success, as expected) + <I +CLASS="EMPHASIS" +>XFAIL</I +> (failure, as expected), or + <I +CLASS="EMPHASIS" +>WARNING</I +> (minor error in the test case + itself).</P +></DD +><DT +><TT +CLASS="OPTION" +>--build [string]</TT +></DT +><DD +><P +><I +CLASS="EMPHASIS" +>string</I +> is a full configuration + ``triple'' name as used by <B +CLASS="COMMAND" +>configure</B +>. This + is the type of machine DejaGnu and the tools to be tested are built + on. For a normal cross this is the same as the host, but for a + canadian cross, they are seperate.</P +></DD +><DT +><TT +CLASS="OPTION" +>--host [string]</TT +></DT +><DD +><P +><SPAN +CLASS="SYMBOL" +>string</SPAN +> is a full configuration + ``triple'' name as used by <I +CLASS="EMPHASIS" +>configure</I +>. Use this + option to override the default string recorded by your + configuration's choice of host. This choice does not change how + anything is actually configured unless --build is also specified; it + affects <I +CLASS="EMPHASIS" +>only</I +> DejaGnu procedures that compare the + host string with particular values. The procedures + <I +CLASS="EMPHASIS" +>ishost</I +>, <I +CLASS="EMPHASIS" +>istarget</I +>, + <I +CLASS="EMPHASIS" +>isnative</I +>, and <I +CLASS="EMPHASIS" +>setup</I +>xfail} + are affected by <I +CLASS="EMPHASIS" +>--host</I +>. In this usage, + <I +CLASS="EMPHASIS" +>host</I +> refers to the machine that the tests are to + be run on, which may not be the same as the + <I +CLASS="EMPHASIS" +>build</I +> machine. If <I +CLASS="EMPHASIS" +>--build</I +> + is also specified, then <I +CLASS="EMPHASIS" +>--host</I +> refers to the + machine that the tests wil, be run on, not the machine DejaGnu is run + on.</P +></DD +><DT +><TT +CLASS="OPTION" +>--host_board [name]</TT +></DT +><DD +><P +>The host board to use.</P +></DD +><DT +><TT +CLASS="OPTION" +>--target [string]</TT +></DT +><DD +><P +>Use this option to override the default setting + (running native tests). <I +CLASS="EMPHASIS" +>string</I +> is a full + configuration ``triple'' name of the form + <I +CLASS="EMPHASIS" +>cpu-vendor-os</I +> as used by + <B +CLASS="COMMAND" +>configure</B +>. This option changes the + configuration <I +CLASS="EMPHASIS" +>runtest</I +> uses for the default tool + names, and other setup information.</P +></DD +><DT +><TT +CLASS="OPTION" +>--debug</TT +> (-de)</DT +><DD +><P +>Turns on the <I +CLASS="EMPHASIS" +>expect</I +> internal + debugging output. Debugging output is displayed as part of the + <I +CLASS="EMPHASIS" +>runtest</I +> output, and logged to a file called + <TT +CLASS="FILENAME" +>dbg.log</TT +>. The extra debugging output does + <I +CLASS="EMPHASIS" +>not</I +> appear on standard output, unless the + verbose level is greater than 2 (for instance, to see debug output + immediately, specify <I +CLASS="EMPHASIS" +>--debug</I +>-v -v}). The + debugging output shows all attempts at matching the test output of + the tool with the scripted patterns describing expected output. The + output generated with <I +CLASS="EMPHASIS" +>--strace</I +> also goes into + <TT +CLASS="FILENAME" +>dbg.log</TT +>.</P +></DD +><DT +><TT +CLASS="OPTION" +>--help</TT +> (-he)</DT +><DD +><P +>Prints out a short summary of the + <I +CLASS="EMPHASIS" +>runtest</I +> options, then exits (even if you also + specify other options).</P +></DD +><DT +><TT +CLASS="OPTION" +>--ignore [name(s)] </TT +></DT +><DD +><P +>The names of specific tests to + ignore.</P +></DD +><DT +><TT +CLASS="OPTION" +>--objdir [path]</TT +></DT +><DD +><P +>Use <I +CLASS="EMPHASIS" +>path</I +> as the top directory + containing any auxiliary compiled test code. This defaults to + <TT +CLASS="FILENAME" +>.</TT +>. Use this option to locate pre-compiled test + code. You can normally prepare any auxiliary files needed with + <I +CLASS="EMPHASIS" +>make</I +>.</P +></DD +><DT +><TT +CLASS="OPTION" +>--outdir [path]</TT +></DT +><DD +><P +>Write output logs in directory + <TT +CLASS="FILENAME" +>path</TT +>. The default is <I +CLASS="EMPHASIS" +>.}, + the</I +> directory where you start + <I +CLASS="EMPHASIS" +>runtest</I +>. This option affects only the summary + and the detailed log files + <TT +CLASS="FILENAME" +>tool.sum</TT +> and + <TT +CLASS="FILENAME" +>tool.log</TT +>. The DejaGnu debug + log <TT +CLASS="FILENAME" +>dbg.log</TT +> always appears (when requested) in + the local directory.</P +></DD +><DT +><TT +CLASS="OPTION" +>--reboot [name]</TT +></DT +><DD +><P +>Reboot the target board when + <I +CLASS="EMPHASIS" +>runtest</I +> initializes. Usually, when running tests + on a separate target board, it is safer to reboot the target to be + certain of its state. However, when developing test scripts, + rebooting takes a lot of time.</P +></DD +><DT +><TT +CLASS="OPTION" +>--srcdir [path]</TT +></DT +><DD +><P +>Use <TT +CLASS="FILENAME" +>path</TT +> as the top directory + for test scripts to run. <I +CLASS="EMPHASIS" +>runtest</I +> looks in this + directory for any subdirectory whose name begins with the toolname + (specified with <I +CLASS="EMPHASIS" +>--tool</I +>). For instance, with + <I +CLASS="EMPHASIS" +>--tool</I +>gdb}, <I +CLASS="EMPHASIS" +>runtest</I +> uses + tests in subdirectories <TT +CLASS="FILENAME" +>gdb.*</TT +> (with the usual + shell-like filename expansion). If you do not use + <I +CLASS="EMPHASIS" +>--srcdir</I +>, <I +CLASS="EMPHASIS" +>runtest</I +> looks for + test directories under the current working + directory.</P +></DD +><DT +><TT +CLASS="OPTION" +>--strace [number]</TT +></DT +><DD +><P +>Turn on internal tracing for + <I +CLASS="EMPHASIS" +>expect</I +>, to n levels deep. By adjusting the + level, you can control the extent to which your output expands + multi-level Tcl statements. This allows you to ignore some levels of + <I +CLASS="EMPHASIS" +>case</I +> or <I +CLASS="EMPHASIS" +>if</I +> statements. + Each procedure call or control structure counts as one ``level''. The + output is recorded in the same file, <TT +CLASS="FILENAME" +>dbg.log</TT +>, + used for output from <I +CLASS="EMPHASIS" +>--debug</I +>.</P +></DD +><DT +><TT +CLASS="OPTION" +>--connect [program]</TT +></DT +><DD +><P +>Connect to a target testing environment as specified + by <I +CLASS="EMPHASIS" +>type</I +>, if the target is not the computer + running <I +CLASS="EMPHASIS" +>runtest</I +>. For example, use + <I +CLASS="EMPHASIS" +>--connect</I +> to change the program used to connect + to a ``bare board'' boot monitor. The choices for + <I +CLASS="EMPHASIS" +>type</I +> in the DejaGnu 1.4 distribution are + <I +CLASS="EMPHASIS" +>rlogin</I +>, <I +CLASS="EMPHASIS" +>telnet</I +>, + <I +CLASS="EMPHASIS" +>rsh</I +>, <I +CLASS="EMPHASIS" +>tip</I +>, + <I +CLASS="EMPHASIS" +>kermit</I +>, and <I +CLASS="EMPHASIS" +>mondfe</I +>.</P +><P +>The default for this option depends on the configuration most + convenient communication method available, but often other + alternatives work as well; you may find it useful to try alternative + connect methods if you suspect a communication problem with your + testing target.</P +></DD +><DT +><TT +CLASS="OPTION" +>--baud [number]</TT +></DT +><DD +><P +>Set the default baud rate to something other than + 9600. (Some serial interface programs, like <I +CLASS="EMPHASIS" +>tip</I +>, + use a separate initialization file instead of this + value.)</P +></DD +><DT +><TT +CLASS="OPTION" +>--target_board [name(s)]</TT +></DT +><DD +><P +>The list of target boards to run tests + on.</P +></DD +><DT +><A +NAME="TOOL-OPT" +><TT +CLASS="OPTION" +>--tool[name(s)]</TT +></A +></DT +><DD +><P +>Specifies which test suite to run, and what + initialization module to use. <TT +CLASS="OPTION" +>--tool</TT +> is used + <I +CLASS="EMPHASIS" +>only</I +> for these two purposes. It is + <I +CLASS="EMPHASIS" +>not</I +> used to name the executable program to + test. Executable tool names (and paths) are recorded in + <TT +CLASS="FILENAME" +>site.exp</TT +> and you can override them by specifying + Tcl variables on the command line.</P +><P +>For example, including "<TT +CLASS="OPTION" +>--tool</TT +> gcc" on the + <I +CLASS="EMPHASIS" +>runtest</I +> command line runs tests from all test + subdirectories whose names match <TT +CLASS="FILENAME" +>gcc.*</TT +>, and uses + one of the initialization modules named + <TT +CLASS="FILENAME" +>config/*-gcc.exp</TT +>. To specify the name of the + compiler (perhaps as an alternative path to what + <I +CLASS="EMPHASIS" +>runtest</I +> would use by default), use + <I +CLASS="EMPHASIS" +>GCC=binname</I +> on the <I +CLASS="EMPHASIS" +>runtest</I +> + command line.</P +></DD +><DT +><TT +CLASS="OPTION" +>--tool_exec [name]</TT +></DT +><DD +><P +>The path to the tool executable to + test.</P +></DD +><DT +><TT +CLASS="OPTION" +>--tool_opts [options]</TT +></DT +><DD +><P +>A list of additional options to pass to the + tool.</P +></DD +><DT +><TT +CLASS="OPTION" +>--verbose</TT +> (-v)</DT +><DD +><P +>Turns on more output. Repeating this option increases + the amount of output displayed. Level one (<I +CLASS="EMPHASIS" +>-v</I +>) + is simply test output. Level two (<I +CLASS="EMPHASIS" +>-v</I +>-v}) shows + messages on options, configuration, and process control. Verbose + messages appear in the detailed (<TT +CLASS="FILENAME" +>*.log</TT +>) log + file, but not in the summary (<TT +CLASS="FILENAME" +>*.sum</TT +>) log + file.</P +></DD +><DT +><TT +CLASS="OPTION" +>--version</TT +> (-V)</DT +><DD +><P +>Prints out the version numbers of DejaGnu, + <I +CLASS="EMPHASIS" +>expect</I +> and Tcl, and exits without running any + tests.</P +></DD +><DT +><TT +CLASS="OPTION" +>--D[0-1]</TT +></DT +><DD +><P +>Start the internal Tcl debugger. The Tcl debugger + supports breakpoints, single stepping, and other common debugging + activities. See the document "Debugger for Tcl Applications} by Don + Libes. (Distributed in PostScript form with + <I +CLASS="EMPHASIS" +>expect</I +> as the file + <TT +CLASS="FILENAME" +>expect/tcl-debug.ps.</TT +>. If you specify + <I +CLASS="EMPHASIS" +>-D1</I +>, the <I +CLASS="EMPHASIS" +>expect</I +> shell stops + at a breakpoint as soon as DejaGnu invokes it. If you specify + <I +CLASS="EMPHASIS" +>-D0</I +>, DejaGnu starts as usual, but you can enter + the debugger by sending an interrupt (e.g. by typing + <B +CLASS="KEYCAP" +>C</B +>-<B +CLASS="KEYCAP" +>c</B +>). + </P +></DD +><DT +><TT +CLASS="FILENAME" +>testfile</TT +>.exp[=arg(s)]</DT +><DD +><P +>Specify the names of testsuites to run. By default, + <I +CLASS="EMPHASIS" +>runtest</I +> runs all tests for the tool, but you can + restrict it to particular testsuites by giving the names of the + <I +CLASS="EMPHASIS" +>.exp expect</I +> scripts that control + them. <I +CLASS="EMPHASIS" +>testsuite</I +>.exp may not include path + information; use plain filenames.</P +></DD +><DT +><TT +CLASS="FILENAME" +>testfile</TT +>.exp="testfile1 ..."</DT +><DD +><P +>Specify a subset of tests in a suite to run. For + compiler or assembler tests, which often use a single + <I +CLASS="EMPHASIS" +>.exp</I +> script covering many different source + files, this option allows you to further restrict the tests by + listing particular source files to compile. Some tools even support + wildcards here. The wildcards supported depend upon the tool, but + typically they are <I +CLASS="EMPHASIS" +>?</I +>, <I +CLASS="EMPHASIS" +>*</I +>, + and <I +CLASS="EMPHASIS" +>[chars]</I +>.</P +></DD +><DT +><SPAN +CLASS="SYMBOL" +>tclvar</SPAN +>=value</DT +><DD +><P +>You can define Tcl variables for use by your test + scripts in the same style used with <I +CLASS="EMPHASIS" +>make</I +> for + environment variables. For example, <I +CLASS="EMPHASIS" +>runtest + GDB=gdb.old</I +> defines a variable called + <B +CLASS="COMMAND" +>GDB</B +>; when your scripts refer to + <SPAN +CLASS="SYMBOL" +>$GDB</SPAN +> in this run, they use the value + <I +CLASS="EMPHASIS" +>gdb.old</I +>.</P +><P +>The default Tcl variables used for most tools are defined in + the main DejaGnu <I +CLASS="EMPHASIS" +>Makefile</I +>; their values are + captured in the <TT +CLASS="FILENAME" +>site.exp</TT +> file.</P +></DD +></DL +></DIV +><DIV +CLASS="SECT2" +><H2 +CLASS="SECT2" +><A +NAME="COMMON" +>Common Options</A +></H2 +><P +>Typically, you don't need must to use any command-line options. + <TT +CLASS="OPTION" +>--tool</TT +> used is only required when there are more than + one test suite in the same directory. The default options are in the + local site.exp file, created by "make site.exp".</P +><P +>For example, if the directory <TT +CLASS="FILENAME" +>gdb/testsuite</TT +> + contains a collection of DejaGnu tests for GDB, you can run them like + this:</P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="SCREEN" +> eg$ cd gdb/testsuite + eg$ runtest --tool gdb + </PRE +></TD +></TR +></TABLE +><P +>Test output follows, ending with:</P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="SCREEN" +> === gdb Summary === + + # of expected passes 508 + # of expected failures 103 + /usr/latest/bin/gdb version 4.14.4 -nx + </PRE +></TD +></TR +></TABLE +><P +>You can use the option <I +CLASS="EMPHASIS" +>--srcdir</I +> to point to + some other directory containing a collection of tests:</P +><TABLE +BORDER="0" +BGCOLOR="#E0E0E0" +WIDTH="100%" +><TR +><TD +><PRE +CLASS="SCREEN" +> eg$ runtest--srcdir /devo/gdb/testsuite + </PRE +></TD +></TR +></TABLE +><P +>By default, <B +CLASS="COMMAND" +>runtest</B +> prints only the + names of the tests it runs, output from any tests that have unexpected + results, and a summary showing how many tests passed and how many + failed. To display output from all tests (whether or not they behave + as expected), use the <I +CLASS="EMPHASIS" +>--all</I +> option. For more + verbose output about processes being run, communication, and so on, use + <I +CLASS="EMPHASIS" +>--verbose</I +>. To see even more output, use multiple + <I +CLASS="EMPHASIS" +>--verbose</I +> options. for a more detailed explanation + of each <B +CLASS="COMMAND" +>runtest</B +> option.</P +><P +>Test output goes into two files in your current directory: + summary output in <TT +CLASS="FILENAME" +>tool.sum</TT +>, + and detailed output in <TT +CLASS="FILENAME" +> tool.log</TT +>. (<I +CLASS="EMPHASIS" +>tool</I +> + refers to the collection of tests; for example, after a run with + <I +CLASS="EMPHASIS" +>--tool</I +> gdb, look for output files + <TT +CLASS="FILENAME" +>gdb.sum</TT +> and + <TT +CLASS="FILENAME" +>gdb.log</TT +>.)</P +></DIV +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="runningtests.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="outputfiles.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Running Tests</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="runningtests.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>The files DejaGnu produces.</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/tvariables.html b/doc/overview/tvariables.html new file mode 100644 index 0000000..0bcb733 --- /dev/null +++ b/doc/overview/tvariables.html @@ -0,0 +1,208 @@ +<HTML +><HEAD +><TITLE +>Special variables used by test cases.</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Extending DejaGnu" +HREF="extending.html"><LINK +REL="PREVIOUS" +TITLE="Hints On Writing A Test Case" +HREF="hints.html"><LINK +REL="NEXT" +TITLE="Reference" +HREF="reference.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="hints.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 4. Extending DejaGnu</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="reference.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="TVARIABLES" +>Special variables used by test cases.</A +></H1 +><P +>There are special variables used by test cases. These contain + other information from DejaGnu. Your test cases can use these variables, + with conventional meanings (as well as the variables saved in + <TT +CLASS="FILENAME" +>site.exp</TT +>. You can use the value of these variables, + but they should never be changed.</P +><P +></P +><DL +><DT +>$prms_id</DT +><DD +><P +>The tracking system (e.g. GNATS) number identifying + a corresponding bugreport. (<I +CLASS="EMPHASIS" +>0</I +>} if you do not + specify it in the test script.)</P +></DD +><DT +>$item bug_id</DT +><DD +><P +>An optional bug id; may reflect a bug + identification from another organization. (<I +CLASS="EMPHASIS" +>0</I +> + if you do not specify it.)</P +></DD +><DT +>$subdir</DT +><DD +><P +>The subdirectory for the current test + case.</P +></DD +><DT +>$expect_out(buffer)</DT +><DD +><P +>The output from the last command. This is an + internal variable set by Expect. More information can be found in + the Expect manual.</P +></DD +><DT +>$exec_output</DT +><DD +><P +>This is the output from a + <TT +CLASS="FUNCTION" +><B +>${tool}_load</B +></TT +> command. This only applies to + tools like GCC and GAS which produce an object file that must in + turn be executed to complete a test.</P +></DD +><DT +>$comp_output</DT +><DD +><P +>This is the output from a + <TT +CLASS="FUNCTION" +><B +>${tool}_start</B +></TT +> command. This is conventionally + used for batch oriented programs, like GCC and GAS, that may + produce interesting output (warnings, errors) without further + interaction.</P +></DD +></DL +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="hints.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="reference.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Hints On Writing A Test Case</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="extending.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Reference</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/overview/writing.html b/doc/overview/writing.html new file mode 100644 index 0000000..b8b8e0f --- /dev/null +++ b/doc/overview/writing.html @@ -0,0 +1,202 @@ +<HTML +><HEAD +><TITLE +>Writing A Test Case</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.33"><LINK +REL="HOME" +TITLE="DejaGnu" +HREF="book1.html"><LINK +REL="UP" +TITLE="Extending DejaGnu" +HREF="extending.html"><LINK +REL="PREVIOUS" +TITLE="Board Config File Values" +HREF="boarddefs.html"><LINK +REL="NEXT" +TITLE="Debugging A Test Case" +HREF="debugging.html"></HEAD +><BODY +><DIV +CLASS="NAVHEADER" +><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TH +COLSPAN="3" +ALIGN="center" +>DejaGnu</TH +></TR +><TR +><TD +WIDTH="10%" +ALIGN="left" +VALIGN="bottom" +><A +HREF="boarddefs.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +>Chapter 4. Extending DejaGnu</TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="debugging.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="SECT1" +><H1 +CLASS="SECT1" +><A +NAME="WRITING" +>Writing A Test Case</A +></H1 +><P +>The easiest way to prepare a new test case is to base it + on an existing one for a similar situation. There are two major + categories of tests: batch or interactive. Batch oriented tests + are usually easier to write.</P +><P +>The GCC tests are a good example of batch oriented tests. + All GCC tests consist primarily of a call to a single common + procedure, Since all the tests either have no output, or only + have a few warning messages when successfully compiled. Any + non-warning output is a test failure. All the C code needed is + kept in the test directory. The test driver, written in Tcl, + need only get a listing of all the C files in the directory, and + compile them all using a generic procedure. This procedure and a + few others supporting for these tests are kept in the library + module <TT +CLASS="FILENAME" +>lib/c-torture.exp</TT +> in the GCC test + suite. Most tests of this kind use very few + <SPAN +CLASS="PRODUCTNAME" +>expect</SPAN +> features, and are coded almost + purely in Tcl.</P +><P +>Writing the complete suite of C tests, then, consisted of + these steps:</P +><P +></P +><UL +><LI +STYLE="list-style-type: disc" +><P +>Copying all the C code into the test directory. + These tests were based on the C-torture test created by Torbjorn + Granlund (on behalf of the Free Software Foundation) for GCC + development.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Writing (and debugging) the generic Tcl procedures for + compilation.</P +></LI +><LI +STYLE="list-style-type: disc" +><P +>Writing the simple test driver: its main task is to + search the directory (using the Tcl procedure + <I +CLASS="EMPHASIS" +>glob</I +> for filename expansion with wildcards) + and call a Tcl procedure with each filename. It also checks for + a few errors from the testing procedure.</P +></LI +></UL +><P +>Testing interactive programs is intrinsically more + complex. Tests for most interactive programs require some trial + and error before they are complete.</P +><P +>However, some interactive programs can be tested in a + simple fashion reminiscent of batch tests. For example, prior + to the creation of DejaGnu, the GDB distribution already + included a wide-ranging testing procedure. This procedure was + very robust, and had already undergone much more debugging and + error checking than many recent DejaGnu test cases. + Accordingly, the best approach was simply to encapsulate the + existing GDB tests, for reporting purposes. Thereafter, new GDB + tests built up a family of Tcl procedures specialized for GDB + testing.</P +></DIV +><DIV +CLASS="NAVFOOTER" +><HR +ALIGN="LEFT" +WIDTH="100%"><TABLE +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="boarddefs.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="book1.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="debugging.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>Board Config File Values</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="extending.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>Debugging A Test Case</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file diff --git a/doc/ref.sgml b/doc/ref.sgml index 6a1a7d6..1256e00 100644 --- a/doc/ref.sgml +++ b/doc/ref.sgml @@ -75,15 +75,15 @@ <listitem><para>Create another directory in the <filename>share</filename> directory, called <filename>dejagnu</filename>, and copy all the library files into - it.</listitem> + it.</para></listitem> <listitem><para>Create a directory in the <filename>dejagnu/share</filename> directory, called <filename>config</filename>, and copy all the configuration files into - it.</listitem> + it.</para></listitem> <listitem><para>Copy the <emphasis>runtest</emphasis> shell script into - <filename>$exec_prefix/bin</filename>. + <filename>$exec_prefix/bin</filename>.</para></listitem> <listitem><para>Copy <filename>runtest.exp</filename> into <filename>$exec_prefix/lib/dejagnu</filename>. This is the main Tcl @@ -539,6 +539,7 @@ <paramdef><parameter></parameter></paramdef> </funcsynopsis> + </sect3> <sect3 id=warning xreflabel="warning procedure"> <title>Warning Procedure</title> @@ -584,6 +585,7 @@ </varlistentry> </variablelist> + </sect3> <sect3 id=perror xreflabel="perror procedure"> <title>Perror Procedure</title> @@ -623,6 +625,7 @@ </varlistentry> </variablelist> + </sect3> <sect3 id=note xreflabel="note procedure"> <title>Note Procedure</title> @@ -3118,6 +3121,7 @@ </variablelist> </sect3> + </sect2> <sect2 id=platformprocs xreflabel="platform dependant procedures"> <title>Platform Dependant Procedures</title> @@ -3210,7 +3214,7 @@ session. You can also use <function>${tool}_exit</function> to remove any temporary files left over from the tests. <command>runtest</command> calls - <function>${tool}_exit</function>.<para> + <function>${tool}_exit</function>.</para> <funcsynopsis role="tcl"> <funcdef><function>${tool}_exit</function></funcdef> @@ -3335,7 +3339,7 @@ <para>Use the optional third argument <emphasis>line</emphasis> to start lines in the result with the line number in <filename>filename</filename>. (This argument is simply an option - flag; type it just as shown <option>--line</option>.) + flag; type it just as shown <option>--line</option>.)</para> <funcsynopsis role="tcl"> <funcdef><function>grep</function></funcdef> @@ -3360,8 +3364,8 @@ regexp matches.</para></listitem> </varlistentry> </variablelist> - </sect3> + <sect3 id=prune xreflabel="prune procedure"> <title>Prune Procedure</title> @@ -3437,7 +3441,7 @@ <para>This sources the file <emphasis>filename</emphasis>, and traps all errors. It also ignores all extraneous output. If there was an error it returns a <emphasis>1</emphasis>, otherwise it returns a - <emphasis>0</emphasis>. + <emphasis>0</emphasis>.</para> <funcsynopsis role="tcl"> <funcdef><function>psource</function></funcdef> @@ -3530,6 +3534,7 @@ </varlistentry> </variablelist> + </sect3> <sect3 id=unsetenv xreflabel="unsetenv procedure"> <title>unsetenv Procedure</title> @@ -3553,7 +3558,7 @@ <title>Getenv Procedure</title> <para>Returns the value of <emphasis>var</emphasis> in the - environment if it exists, otherwise it returns NULL. + environment if it exists, otherwise it returns NULL.</para> <funcsynopsis role="tcl"> <funcdef><function>getenv</function></funcdef> @@ -3567,6 +3572,7 @@ </varlistentry> </variablelist> + </sect3> <sect3 id=prunesystemcrud xreflabel="prune_system_crud procedure"> <title>Prune_system_crud Procedure</title> diff --git a/doc/runtest.1 b/doc/runtest.1 index 2c3a357..861ec66 100644 --- a/doc/runtest.1 +++ b/doc/runtest.1 @@ -53,9 +53,8 @@ The configuration string for the host. .TP .BI --ignore \ test1.exp\ test2.exp\ ... Do not run the specified tests. -.BI --mail \ \'name1\ name2\ ...\' Electronic mail addresses to receive test results. -.TP +.TP .BI --name \ hostname The network hostname of the target board. .TP diff --git a/doc/user.sgml b/doc/user.sgml index 2154d74..143e1ac 100644 --- a/doc/user.sgml +++ b/doc/user.sgml @@ -490,7 +490,7 @@ verbose output about processes being run, communication, and so on, use <emphasis>--verbose</emphasis>. To see even more output, use multiple <emphasis>--verbose</emphasis> options. for a more detailed explanation - of each <command>runtest</command> option. + of each <command>runtest</command> option.</para> <para>Test output goes into two files in your current directory: summary output in <filename>tool.sum</filename>, @@ -498,7 +498,8 @@ tool.log</filename>. (<emphasis>tool</emphasis> refers to the collection of tests; for example, after a run with <emphasis>--tool</emphasis> gdb, look for output files - <filename>gdb.sum</filename> and <filename>gdb.log</filename>.) + <filename>gdb.sum</filename> and + <filename>gdb.log</filename>.)</para> </sect2> </sect1> @@ -529,7 +530,8 @@ (expected and unexpected); and the full pathname and version number of the tool tested. (All possible outcomes, and all errors, are always reflected in the summary output file, - regardless of whether or not you specify <option>--all</option>.) + regardless of whether or not you specify + <option>--all</option>.)</para> <para>If any of your tests use the procedures <command>unresolved</command>, <command>unsupported</command>, @@ -1137,7 +1139,7 @@ </example> <para>If you are testing a native PC compiler (ex: you have - gcc.exe in your PATH on the PC), do this: + gcc.exe in your PATH on the PC), do this:</para> <example> <title>Setup Native Remote Testing</title> @@ -1192,7 +1194,7 @@ called <symbol>target_info</symbol>, and it has two indices. The following fields are part of the array.</para> - <sect1 id=optiondefs xreflabel="Option Variables"> + <sect2 id=optiondefs xreflabel="Option Variables"> <title>Command Line Option Variables</title> <para>In the user editable second section of the <xref @@ -1311,9 +1313,9 @@ </table> </para> - </sect1> + </sect2> - <sect1 id=personal xreflabel="Personal Config File"> + <sect2 id=personal xreflabel="Personal Config File"> <title>Personal Config File</title> <para>The personal config file is used to customize @@ -1342,6 +1344,7 @@ secure shell, as rsh is mostly used to test unix machines within a local network here.</para> + </sect2> </sect1> </chapter> @@ -2146,13 +2149,13 @@ appropriate for the particular test, allow successively higher values of <emphasis>$verbose</emphasis> to generate more information. Be kind to other programmers who use your tests: - provide for a lot of debugging information.</para> + provide for a lot of debugging information.</para></listitem> <listitem><para>Output from the internal debugging functions of Tcl and <productname>Expect</productname>. There is a command line options for each; both forms of debugging output are recorded in the file <filename>dbg.log</filename> in the current - directory.</para> + directory.</para> <para>Use <option>--debug</option> for information from the expect level; it generates displays of the expect attempts to @@ -2162,7 +2165,7 @@ latest attempt at a new test script and the corresponding <filename>dbg.log</filename> can allow you to create the final patterns by ``cut and paste''. This is sometimes the best way - to write a test case.</para> + to write a test case.</para></listitem> <listitem><para>Use <option>--strace</option> to see more detail at the Tcl level; this shows how Tcl procedure @@ -2174,7 +2177,7 @@ the expect command <command>log_user</command>. This command prints all expect actions to the expect standard output, to the detailed log file, and (if <option>--debug</option> is on) to - <filename>dbg.log</filename>.</para> + <filename>dbg.log</filename>.</para></listitem> </itemizedlist> </sect1> @@ -2225,7 +2228,7 @@ directory.</para></listitem> <listitem><para>Add the new test case to the directory, as - above. </para> + above. </para></listitem> <listitem><para>To add support in the new directory for configure and make, you must also create a diff --git a/example/Makefile.am b/example/Makefile.am index ae19604..9408769 100644 --- a/example/Makefile.am +++ b/example/Makefile.am @@ -1,6 +1,5 @@ ## Process this file with automake to generate Makefile.in -AUTOMAKE_OPTIONS = dejagnu cygnus +AUTOMAKE_OPTIONS = dejagnu -all-local: - cd calc; $(MAKE) all +SUBDIRS = calc diff --git a/example/Makefile.in b/example/Makefile.in index 8131e73..7b5faf6 100644 --- a/example/Makefile.in +++ b/example/Makefile.in @@ -60,52 +60,158 @@ POST_UNINSTALL = : BOARDS = @BOARDS@ CC = @CC@ CONFIG = @CONFIG@ +DOCBOOK = @DOCBOOK@ EXEEXT = @EXEEXT@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ PACKAGE = @PACKAGE@ +TCLSH = @TCLSH@ VERSION = @VERSION@ +tclsh = @tclsh@ -AUTOMAKE_OPTIONS = dejagnu cygnus -mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs +AUTOMAKE_OPTIONS = dejagnu + +SUBDIRS = calc +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = gtar +TAR = tar GZIP_ENV = --best -EXPECT = `if test -f $(top_builddir)/../expect/expect; then echo $(top_builddir)/../expect/expect; else echo expect; fi` -RUNTEST = `if test -f $(top_srcdir)/../dejagnu/runtest; then echo $(top_srcdir)/../dejagnu/runtest; else echo runtest; fi` +EXPECT = expect +RUNTEST = runtest all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --cygnus example/Makefile + cd $(top_srcdir) && $(AUTOMAKE) --gnu example/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + tags: TAGS -TAGS: +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = example distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu example/Makefile @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ + cp -pr $$/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || cp -p $$d/$$file $(distdir)/$$file || :; \ fi; \ done + for subdir in $(SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(top_distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done RUNTESTFLAGS = @@ -116,10 +222,6 @@ RUNTESTDEFAULTFLAGS = --tool $(DEJATOOL) --srcdir $$srcdir check-DEJAGNU: site.exp srcdir=`cd $(srcdir) && pwd`; export srcdir; \ EXPECT=$(EXPECT); export EXPECT; \ - if [ -f $(top_builddir)/../expect/expect ]; then \ - TCL_LIBRARY=`cd $(top_srcdir)/../tcl/library && pwd`; \ - export TCL_LIBRARY; \ - fi; \ runtest=$(RUNTEST); \ if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ $$runtest $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \ @@ -139,32 +241,31 @@ site.exp: Makefile @test ! -f site.exp || mv site.exp site.bak @mv $@-t site.exp info-am: -info: info-am +info: info-recursive dvi-am: -dvi: dvi-am -check-am: +dvi: dvi-recursive +check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU -check: check-am +check: check-recursive installcheck-am: -installcheck: installcheck-am -install-info-am: -install-info: install-info-am +installcheck: installcheck-recursive install-exec-am: -install-exec: install-exec-am +install-exec: install-exec-recursive install-data-am: -install-data: install-data-am +install-data: install-data-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -install: install-am +install: install-recursive uninstall-am: -uninstall: uninstall-am -all-am: Makefile all-local -all-redirect: all-am +uninstall: uninstall-recursive +all-am: Makefile +all-redirect: all-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install -installdirs: +installdirs: installdirs-recursive +installdirs-am: mostlyclean-generic: @@ -176,35 +277,39 @@ distclean-generic: -rm -f config.cache config.log stamp-h stamp-h[0-9]* maintainer-clean-generic: -mostlyclean-am: mostlyclean-generic +mostlyclean-am: mostlyclean-tags mostlyclean-generic -mostlyclean: mostlyclean-am +mostlyclean: mostlyclean-recursive -clean-am: clean-generic mostlyclean-am +clean-am: clean-tags clean-generic mostlyclean-am -clean: clean-am +clean: clean-recursive -distclean-am: distclean-generic clean-am +distclean-am: distclean-tags distclean-generic clean-am -distclean: distclean-am +distclean: distclean-recursive -maintainer-clean-am: maintainer-clean-generic distclean-am +maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \ + distclean-am @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." -maintainer-clean: maintainer-clean-am +maintainer-clean: maintainer-clean-recursive -.PHONY: tags distdir check-DEJAGNU info-am info dvi-am dvi check \ -check-am installcheck-am installcheck install-info-am install-info \ +.PHONY: install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir check-DEJAGNU \ +info-am info dvi-am dvi check check-am installcheck-am installcheck \ install-exec-am install-exec install-data-am install-data install-am \ -install uninstall-am uninstall all-local all-redirect all-am all \ +install uninstall-am uninstall all-redirect all-am all installdirs-am \ installdirs mostlyclean-generic distclean-generic clean-generic \ maintainer-clean-generic clean mostlyclean distclean maintainer-clean -all-local: - cd calc; $(MAKE) all - # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/example/calc/AUTHORS b/example/calc/AUTHORS new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/example/calc/AUTHORS diff --git a/example/calc/COPYING b/example/calc/COPYING new file mode 100644 index 0000000..d60c31a --- /dev/null +++ b/example/calc/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + 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 2 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, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/example/calc/INSTALL b/example/calc/INSTALL new file mode 100644 index 0000000..b42a17a --- /dev/null +++ b/example/calc/INSTALL @@ -0,0 +1,182 @@ +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=PATH' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. diff --git a/example/calc/Makefile.am b/example/calc/Makefile.am new file mode 100644 index 0000000..4767579 --- /dev/null +++ b/example/calc/Makefile.am @@ -0,0 +1,23 @@ +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. +# +# 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 1, 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, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# + +AUTOMAKE_OPTIONS = dejagnu + +bin_PROGRAMS = calc +calc_SOURCES = calc.c + +RUNTESTDEFAULTFLAGS = --tool calc CALC=`pwd`/calc --srcdir $$srcdir/testsuite
\ No newline at end of file diff --git a/example/calc/Makefile.in b/example/calc/Makefile.in index f892c7b..8951ec0 100644 --- a/example/calc/Makefile.in +++ b/example/calc/Makefile.in @@ -1,4 +1,16 @@ -# Copyright (C) 92, 93, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # # 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 @@ -15,100 +27,411 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # -# target name -PROG= calc -# compiler specifics -CC = @CC@ -CFLAGS = -g -I$(srcdir) -I. -CALC = calc +SHELL = @SHELL@ -# directory specifics -VPATH = @srcdir@ srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ -# testsuite specifics -# Setup the testing framework, if you have one -# Flags that we pass when building the testsuite. -EXPECT = ` \ - if [ -f $${rootme}/../../../expect/expect ] ; then \ - echo $${rootme}/../../../expect/expect ; \ - else echo expect ; fi` - -RUNTEST = ` \ - if [ -f $${srcdir}/../../../dejagnu/runtest ] ; then \ - echo $${srcdir}/../../../dejagnu/runtest ; \ - else echo runtest ; fi` - -RUNTESTFLAGS= - -## --- NOTHING BELOW HERE SHOULD REQUIRE MODIFICATIONS --- ## - -SRCS= calc.c - -OBJS= calc.o - -all: ${PROG} - -calc.o: calc.c - -.c.o: - ${CC} ${CFLAGS} -I$(srcdir) -I. -c $< - -${PROG}: ${OBJS} ${DPADD} - ${CC} ${LDFLAGS} ${CFLAGS} -o $@ ${OBJS} ${DPADD} ${LDADD} - -check: site.exp all - rootme=`pwd`; export rootme; \ - srcdir=${srcdir} ; export srcdir ; \ - EXPECT=${EXPECT} ; export EXPECT ; \ - if [ -f $${rootme}/../../expect/expect ] ; then \ - TCL_LIBRARY=$${srcdir}/../../tcl/library ; \ - export TCL_LIBRARY ; fi ; \ - ${RUNTEST} ${RUNTESTFLAGS} --tool ${PROG} CALC=${PROG} --srcdir ${srcdir}/testsuite - -site.exp: ./config.status Makefile - @echo "Making a new config file..." - -@rm -f ./tmp? - @touch site.exp - - -@mv site.exp site.bak - @echo "## these variables are automatically generated by make ##" > ./tmp0 - @echo "# Do not edit here. If you wish to override these values" >> ./tmp0 - @echo "# add them to the last section" >> ./tmp0 - @echo "set tool calc" >> ./tmp0 - @echo "set srcdir ${srcdir}" >> ./tmp0 - @echo "set objdir `pwd`" >> ./tmp0 - @echo "## All variables above are generated by configure. Do Not Edit ##" >> ./tmp0 - @cat ./tmp0 > site.exp - @cat site.bak | sed \ - -e '1,/^## All variables above are.*##/ d' >> site.exp - -@rm -f ./tmp? - -install: ${PROG} - -clean mostlyclean: - rm -f a.out [Ee]rrs tags mklog core ${OBJS} ${PROG} - -distclean maintainer-clean realclean: clean - rm -f config.status Makefile calc.h calc.log calc.plog calc.psum - rm -f calc.sum site.exp config.log - -Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) config.status - @echo "Rebuilding the Makefile..." - $(SHELL) ./config.status - -configure: $(srcdir)/configure.in $(srcdir)/Makefile.in $(srcdir)/../../aclocal.m4 - @echo "Rebuilding configure..." - @cd ${srcdir} ;\ - autoconf --localdir=${srcdir}/../.. - -config.status: - @echo "Rebuilding config.status..." +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +CC = @CC@ +MAKEINFO = @MAKEINFO@ +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ + +AUTOMAKE_OPTIONS = dejagnu + +bin_PROGRAMS = calc +calc_SOURCES = calc.c + +RUNTESTDEFAULTFLAGS = --tool calc CALC=`pwd`/calc --srcdir $$srcdir/testsuite +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_HEADER = calc.h +CONFIG_CLEAN_FILES = +PROGRAMS = $(bin_PROGRAMS) + + +DEFS = @DEFS@ -I. -I$(srcdir) -I. +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +calc_OBJECTS = calc.o +calc_LDADD = $(LDADD) +calc_DEPENDENCIES = +calc_LDFLAGS = +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = ./stamp-h.in COPYING INSTALL Makefile.am Makefile.in \ +aclocal.m4 calc.h.in configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DEP_FILES = .deps/calc.P +EXPECT = expect +RUNTEST = runtest +SOURCES = $(calc_SOURCES) +OBJECTS = $(calc_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): configure.in + cd $(srcdir) && $(ACLOCAL) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck +$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +calc.h: stamp-h + @if test ! -f $@; then \ + rm -f stamp-h; \ + $(MAKE) stamp-h; \ + else :; fi +stamp-h: $(srcdir)/calc.h.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES= CONFIG_HEADERS=calc.h \ + $(SHELL) ./config.status + @echo timestamp > stamp-h 2> /dev/null +$(srcdir)/calc.h.in: $(srcdir)/stamp-h.in + @if test ! -f $@; then \ + rm -f $(srcdir)/stamp-h.in; \ + $(MAKE) $(srcdir)/stamp-h.in; \ + else :; fi +$(srcdir)/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOHEADER) + @echo timestamp > $(srcdir)/stamp-h.in 2> /dev/null + +mostlyclean-hdr: + +clean-hdr: + +distclean-hdr: + -rm -f calc.h + +maintainer-clean-hdr: + +mostlyclean-binPROGRAMS: + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +distclean-binPROGRAMS: + +maintainer-clean-binPROGRAMS: + +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \ + $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + list='$(bin_PROGRAMS)'; for p in $$list; do \ + rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \ + done + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +calc: $(calc_OBJECTS) $(calc_DEPENDENCIES) + @rm -f calc + $(LINK) $(calc_LDFLAGS) $(calc_OBJECTS) $(calc_LDADD) $(LIBS) + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) calc.h.in $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)calc.h.in$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags calc.h.in $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile + @for file in $(DISTFILES); do \ + d=$(srcdir); \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + +DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :) + +-include $(DEP_FILES) + +mostlyclean-depend: + +clean-depend: + +distclean-depend: + -rm -rf .deps + +maintainer-clean-depend: + +%.o: %.c + @echo '$(COMPILE) -c $<'; \ + $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-cp .deps/$(*F).pp .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm .deps/$(*F).pp + +%.lo: %.c + @echo '$(LTCOMPILE) -c $<'; \ + $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $< + @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \ + < .deps/$(*F).pp > .deps/$(*F).P; \ + tr ' ' '\012' < .deps/$(*F).pp \ + | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \ + >> .deps/$(*F).P; \ + rm -f .deps/$(*F).pp + +RUNTESTFLAGS = + +DEJATOOL = $(PACKAGE) + +check-DEJAGNU: site.exp + srcdir=`cd $(srcdir) && pwd`; export srcdir; \ + EXPECT=$(EXPECT); export EXPECT; \ + runtest=$(RUNTEST); \ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + $$runtest $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \ + else echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi +site.exp: Makefile + @echo 'Making a new site.exp file...' + @test ! -f site.bak || rm -f site.bak + @echo '## these variables are automatically generated by make ##' > $@-t + @echo '# Do not edit here. If you wish to override these values' >> $@-t + @echo '# edit the last section' >> $@-t + @echo 'set tool $(DEJATOOL)' >> $@-t + @echo 'set srcdir $(srcdir)' >> $@-t + @echo 'set objdir' `pwd` >> $@-t + @echo '## All variables above are generated by configure. Do Not Edit ##' >> $@-t + @test ! -f site.exp || sed '1,/^## All variables above are.*##/ d' site.exp >> $@-t + @test ! -f site.exp || mv site.exp site.bak + @mv $@-t site.exp +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU +check: check-am +installcheck-am: +installcheck: installcheck-am +all-recursive-am: calc.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +install-exec-am: install-binPROGRAMS +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: uninstall-binPROGRAMS +uninstall: uninstall-am +all-am: Makefile $(PROGRAMS) calc.h +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + $(mkinstalldirs) $(DESTDIR)$(bindir) + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-hdr mostlyclean-binPROGRAMS \ + mostlyclean-compile mostlyclean-tags mostlyclean-depend \ + mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-hdr clean-binPROGRAMS clean-compile clean-tags \ + clean-depend clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-hdr distclean-binPROGRAMS distclean-compile \ + distclean-tags distclean-depend distclean-generic \ + clean-am + +distclean: distclean-am + -rm -f config.status + +maintainer-clean-am: maintainer-clean-hdr maintainer-clean-binPROGRAMS \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-depend maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + -rm -f config.status + +.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \ +mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \ +maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir mostlyclean-depend \ +distclean-depend clean-depend maintainer-clean-depend check-DEJAGNU \ +info-am info dvi-am dvi check check-am installcheck-am installcheck \ +all-recursive-am install-exec-am install-exec install-data-am \ +install-data install-am install uninstall-am uninstall all-redirect \ +all-am all installdirs mostlyclean-generic distclean-generic \ +clean-generic maintainer-clean-generic clean mostlyclean distclean \ +maintainer-clean + -info: -install-info: -# Nothing. +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/example/calc/NEWS b/example/calc/NEWS new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/example/calc/NEWS diff --git a/example/calc/README b/example/calc/README new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/example/calc/README diff --git a/example/calc/aclocal.m4 b/example/calc/aclocal.m4 new file mode 100644 index 0000000..bd4779c --- /dev/null +++ b/example/calc/aclocal.m4 @@ -0,0 +1,127 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +# Like AC_CONFIG_HEADER, but automatically create stamp file. + +AC_DEFUN(AM_CONFIG_HEADER, +[AC_PREREQ([2.12]) +AC_CONFIG_HEADER([$1]) +dnl When config.status generates a header, we must update the stamp-h file. +dnl This file resides in the same directory as the config header +dnl that is generated. We must strip everything past the first ":", +dnl and everything past the last "/". +AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl +ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, +<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, +<<am_indx=1 +for am_file in <<$1>>; do + case " <<$>>CONFIG_HEADERS " in + *" <<$>>am_file "*<<)>> + echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx + ;; + esac + am_indx=`expr "<<$>>am_indx" + 1` +done<<>>dnl>>) +changequote([,]))]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + diff --git a/example/calc/calc.c b/example/calc/calc.c index 784e39b..119971a 100644 --- a/example/calc/calc.c +++ b/example/calc/calc.c @@ -1,12 +1,17 @@ +#include "calc.h" + #ifdef HAVE_STDLIB_H #include <stdlib.h> #endif #include <ctype.h> #include <stdio.h> -#include "calc.h" static int words(); +#define NWORD 10 +#define SIZE 100 +#define VERSION "1.1" + int main() { char line[SIZE]; diff --git a/example/calc/calc.h.in b/example/calc/calc.h.in index 1e420a7..1fddcd0 100644 --- a/example/calc/calc.h.in +++ b/example/calc/calc.h.in @@ -1,18 +1,11 @@ -/* - * Check for headers - */ -#ifndef __CALC_H__ -#define __CALC_H__ +/* calc.h.in. Generated automatically from configure.in by autoheader. */ +/* Define if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H -/* - * Check for functions - */ -#undef HAVE_STRCMP +/* Name of package */ +#undef PACKAGE -#define NWORD 10 -#define SIZE 100 -#define VERSION "1.0 Beta" +/* Version number of package */ +#undef VERSION -#endif /* __CALC_H__ */ diff --git a/example/calc/configure b/example/calc/configure index e58d5cf..bf67346 100755 --- a/example/calc/configure +++ b/example/calc/configure @@ -1,7 +1,7 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.12.1 +# Generated automatically using autoconf version 2.13 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation @@ -333,7 +333,7 @@ EOF verbose=yes ;; -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.12.1" + echo "configure generated by autoconf version 2.13" exit 0 ;; -with-* | --with-*) @@ -503,9 +503,11 @@ ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross +ac_exeext= +ac_objext=o if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then @@ -520,13 +522,552 @@ fi -CC=${CC-cc} + + +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:559: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:612: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:669: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + + +PACKAGE=calc + +VERSION=1.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:715: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:728: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:741: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:754: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:767: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:784: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:814: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:865: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:897: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 908 "configure" +#include "confdefs.h" + +main(){return(0);} +EOF +if { (eval echo configure:913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:939: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:944: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:953: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:972: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1015: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' # # Look for various header files # echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:530: checking how to run the C preprocessor" >&5 +echo "configure:1071: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -541,14 +1082,14 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext <<EOF -#line 545 "configure" +#line 1086 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:551: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` +{ (eval echo configure:1092: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else @@ -558,14 +1099,31 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 562 "configure" +#line 1103 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:568: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` +{ (eval echo configure:1109: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -nologo -E" + cat > conftest.$ac_ext <<EOF +#line 1120 "configure" +#include "confdefs.h" +#include <assert.h> +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1126: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else @@ -578,6 +1136,8 @@ fi rm -f conftest* fi rm -f conftest* +fi +rm -f conftest* ac_cv_prog_CPP="$CPP" fi CPP="$ac_cv_prog_CPP" @@ -586,20 +1146,22 @@ else fi echo "$ac_t""$CPP" 1>&6 -ac_safe=`echo "stdlib.h" | sed 'y%./+-%__p_%'` -echo $ac_n "checking for stdlib.h""... $ac_c" 1>&6 -echo "configure:592: checking for stdlib.h" >&5 +for ac_hdr in stdlib.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:1154: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 597 "configure" +#line 1159 "configure" #include "confdefs.h" -#include <stdlib.h> +#include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:602: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out` +{ (eval echo configure:1164: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* eval "ac_cv_header_$ac_safe=yes" @@ -614,26 +1176,27 @@ rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 - : + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <<EOF +#define $ac_tr_hdr 1 +EOF + else echo "$ac_t""no" 1>&6 -cat >> confdefs.h <<\EOF -#define HAVE_STDLIB_H 1 -EOF - fi +done # # Look for various functions # echo $ac_n "checking for strcmp""... $ac_c" 1>&6 -echo "configure:632: checking for strcmp" >&5 +echo "configure:1195: checking for strcmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_strcmp'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 637 "configure" +#line 1200 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char strcmp(); below. */ @@ -656,7 +1219,7 @@ strcmp(); ; return 0; } EOF -if { (eval echo configure:660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strcmp=yes" else @@ -670,10 +1233,7 @@ fi if eval "test \"`echo '$ac_cv_func_'strcmp`\" = yes"; then echo "$ac_t""yes" 1>&6 - cat >> confdefs.h <<\EOF -#define HAVE_STRCMP 1 -EOF - + : else echo "$ac_t""no" 1>&6 fi @@ -705,7 +1265,7 @@ EOF # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. (set) 2>&1 | - case `(ac_space=' '; set) 2>&1 | grep ac_space` in + case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote substitution # turns \\\\ into \\, and sed turns \\ into \). @@ -772,7 +1332,7 @@ do echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.12.1" + echo "$CONFIG_STATUS generated by autoconf version 2.13" exit 0 ;; -help | --help | --hel | --he | --h) echo "\$ac_cs_usage"; exit 0 ;; @@ -781,6 +1341,7 @@ do done ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" trap 'rm -fr `echo "Makefile calc.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 EOF @@ -795,6 +1356,7 @@ s%@SHELL@%$SHELL%g s%@CFLAGS@%$CFLAGS%g s%@CPPFLAGS@%$CPPFLAGS%g s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g s%@DEFS@%$DEFS%g s%@LDFLAGS@%$LDFLAGS%g s%@LIBS@%$LIBS%g @@ -813,8 +1375,19 @@ s%@includedir@%$includedir%g s%@oldincludedir@%$oldincludedir%g s%@infodir@%$infodir%g s%@mandir@%$mandir%g -s%@CPP@%$CPP%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g s%@CC@%$CC%g +s%@CPP@%$CPP%g CEOF EOF @@ -891,6 +1464,10 @@ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then top_srcdir="$ac_dots$ac_given_srcdir" ;; esac + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac echo creating "$ac_file" rm -f "$ac_file" @@ -906,6 +1483,7 @@ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then s%@configure_input@%$configure_input%g s%@srcdir@%$srcdir%g s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g " $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file fi; done rm -f conftest.s* @@ -1020,8 +1598,10 @@ fi; done EOF cat >> $CONFIG_STATUS <<EOF + EOF cat >> $CONFIG_STATUS <<\EOF +test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h exit 0 EOF diff --git a/example/calc/configure.in b/example/calc/configure.in index 3ee022a..73a3204 100644 --- a/example/calc/configure.in +++ b/example/calc/configure.in @@ -1,18 +1,20 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.5) AC_INIT(calc.c) -AC_CONFIG_HEADER(calc.h) -CC=${CC-cc} +AM_CONFIG_HEADER(calc.h) +AM_INIT_AUTOMAKE(calc, 1.1) +AC_PROG_CC +AC_PROG_INSTALL # # Look for various header files # -AC_HEADER_CHECK(stdlib.h, ,AC_DEFINE(HAVE_STDLIB_H)) +AC_CHECK_HEADERS(stdlib.h) # # Look for various functions # -AC_FUNC_CHECK(strcmp, AC_DEFINE(HAVE_STRCMP)) +AC_CHECK_FUNC(strcmp) # # Output Makefile with substitutions diff --git a/example/calc/stamp-h.in b/example/calc/stamp-h.in new file mode 100644 index 0000000..9788f70 --- /dev/null +++ b/example/calc/stamp-h.in @@ -0,0 +1 @@ +timestamp diff --git a/example/calc/testsuite/calc.test/calc.exp b/example/calc/testsuite/calc.test/calc.exp index 8986cf5..6a904ad 100644 --- a/example/calc/testsuite/calc.test/calc.exp +++ b/example/calc/testsuite/calc.test/calc.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org set timeout 3 # diff --git a/example/calc/testsuite/config/unix.exp b/example/calc/testsuite/config/unix.exp index 9b73ac7..5686564 100644 --- a/example/calc/testsuite/config/unix.exp +++ b/example/calc/testsuite/config/unix.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org if ![info exists prompt] then { set prompt "calc: " diff --git a/lib/debugger.exp b/lib/debugger.exp index f00076d..3b7fa5a 100644 --- a/lib/debugger.exp +++ b/lib/debugger.exp @@ -1,4 +1,4 @@ -# Copyright (C) 92, 93, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # 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 @@ -15,9 +15,9 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org -# This file was written by Rob Savoye. (rob@cygnus.com) +# This file was written by Rob Savoye. (rob@welcomehome.org) # # Dump the values of a shell expression representing variable @@ -1,5 +1,5 @@ # `dg' general purpose testcase driver. -# Copyright (C) 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1994 - 2001 Free Software Foundation, Inc. # 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 @@ -16,7 +16,7 @@ # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# dje@cygnus.com. +# bug-dejagnu@gnu.org # This file was written by Doug Evans (dje@cygnus.com). @@ -587,11 +587,11 @@ proc dg-runtest { testcases flags default-extra-flags } { } # dg-trim-dirname -- rip DIR_NAME out of FILE_NAME -# +# # Syntax: dg-trim-dirname dir_name file_name # We need to go through this contorsion in order to properly support # directory-names which might have embedded regexp special characters. - + proc dg-trim-dirname { dir_name file_name } { set special_character "\[\?\+\-\.\(\)\$\|\]" regsub -all $special_character $dir_name "\\\\&" dir_name @@ -612,7 +612,7 @@ proc dg-test { args } { global dg-do-what-default dg-interpreter-batch-mode dg-linenum-format global errorCode errorInfo global tool - global srcdir ;# eg: /calvin/dje/devo/gcc/./testsuite/ + global srcdir ;# eg: /calvin/dje/build/gcc/./testsuite/ global host_triplet target_triplet set keep 0 diff --git a/lib/framework.exp b/lib/framework.exp index b72d38e..2b26fb2 100644 --- a/lib/framework.exp +++ b/lib/framework.exp @@ -1,5 +1,4 @@ -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001 -# Free Software Foundation, Inc. +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # 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 @@ -16,9 +15,9 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org -# This file was written by Rob Savoye. (rob@cygnus.com) +# This file was written by Rob Savoye. (rob@welcomehome.org) # These variables are local to this file. # This or more warnings and a test fails. diff --git a/lib/ftp.exp b/lib/ftp.exp index 641f112..bdc6bfd 100644 --- a/lib/ftp.exp +++ b/lib/ftp.exp @@ -1,4 +1,4 @@ -# Copyright (C) 92, 93, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org # # Support downloading files using ftp. diff --git a/lib/kermit.exp b/lib/kermit.exp index 6e1ac37..ab8747e 100644 --- a/lib/kermit.exp +++ b/lib/kermit.exp @@ -1,4 +1,4 @@ -# Copyright (C) 92, 93, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org # # Connect to DEST using kermit. Note that we're just using kermit as a diff --git a/lib/mondfe.exp b/lib/mondfe.exp index b46484e..912f0f7 100644 --- a/lib/mondfe.exp +++ b/lib/mondfe.exp @@ -1,4 +1,4 @@ -# Copyright (C) 92, 93, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2000, 2001 Free Software Foundation, Inc. # 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 @@ -15,9 +15,9 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org -# This file was written by Rob Savoye. (rob@cygnus.com) +# This file was written by Rob Savoye. (rob@welcomehome.org) # # Connect to udi using mondfe diff --git a/lib/remote.exp b/lib/remote.exp index 0bc8ed0..1c2941d 100644 --- a/lib/remote.exp +++ b/lib/remote.exp @@ -1,4 +1,4 @@ -# Copyright (C) 92, 93, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2000, 2001 Free Software Foundation, Inc. # 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 @@ -15,9 +15,9 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org -# This file was written by Rob Savoye. (rob@cygnus.com) +# This file was written by Rob Savoye. (rob@welcomehome.org) # load various protocol support modules @@ -212,7 +212,7 @@ proc local_exec { commandline inp outp timeout } { } verbose "output is $output"; if { $outp == "" } { - return [list $status $output]; + return [list $status $output]; } else { return [list $status ""]; } @@ -602,7 +602,7 @@ proc remote_raw_file { dest args } { proc standard_file { dest op args } { set file [lindex $args 0]; - verbose "dest in standard_file is $dest"; + verbose "dest in proc standard_file is $dest" 3; if { ![is_remote $dest] } { switch $op { cmp { diff --git a/lib/rlogin.exp b/lib/rlogin.exp index 78745ba..3676481 100644 --- a/lib/rlogin.exp +++ b/lib/rlogin.exp @@ -1,4 +1,4 @@ -# Copyright (C) 92, 93, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2000, 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org # # Connect to ARG using rlogin. This is for systems using rlogin to diff --git a/lib/rsh.exp b/lib/rsh.exp index b099fd5..13c0feb 100644 --- a/lib/rsh.exp +++ b/lib/rsh.exp @@ -1,4 +1,4 @@ -# Copyright (C) 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2000, 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # # Connect to hostname using rlogin diff --git a/lib/standard.exp b/lib/standard.exp index f1822e4..5c6a71c 100644 --- a/lib/standard.exp +++ b/lib/standard.exp @@ -1,4 +1,4 @@ -# Copyright (C) 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # # A set of standard functions for tools. Calls the diff --git a/lib/target.exp b/lib/target.exp index f71c6f6..5cb6288 100644 --- a/lib/target.exp +++ b/lib/target.exp @@ -1,4 +1,4 @@ -# Copyright (C) 92, 93, 94, 95, 96, 97, 98, 1999, 2000 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # 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 @@ -15,9 +15,9 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org -# This file was written by Rob Savoye. (rob@cygnus.com) +# This file was written by Rob Savoye. (rob@welcomehome.org) # and extensively modified by Bob Manson. (manson@cygnus.com) # a hairy pattern to recognize text diff --git a/lib/targetdb.exp b/lib/targetdb.exp index b682d04..28e06ad 100644 --- a/lib/targetdb.exp +++ b/lib/targetdb.exp @@ -1,4 +1,4 @@ -# Copyright (C) 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # # Searches in the appropriate place (the board_info array) for the specified diff --git a/lib/telnet.exp b/lib/telnet.exp index 48c72ac..397822d 100644 --- a/lib/telnet.exp +++ b/lib/telnet.exp @@ -1,4 +1,4 @@ -# Copyright (C) 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # # Connect using telnet. This takes two arguments. The first one is the diff --git a/lib/tip.exp b/lib/tip.exp index 25877a9..3c1598d 100644 --- a/lib/tip.exp +++ b/lib/tip.exp @@ -1,4 +1,4 @@ -# Copyright (C) 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # # Connect via tip as part of remote_open. diff --git a/lib/util-defs.exp b/lib/util-defs.exp index 6048242..35c468e 100644 --- a/lib/util-defs.exp +++ b/lib/util-defs.exp @@ -1,4 +1,4 @@ -# Copyright (C) 92, 93, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # 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 @@ -15,9 +15,9 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org -# This file was written by Rob Savoye. (rob@cygnus.com) +# This file was written by Rob Savoye. (rob@welcomehome.org) # # Run a utility and test the result. diff --git a/lib/utils.exp b/lib/utils.exp index 565f18e..39e1150 100644 --- a/lib/utils.exp +++ b/lib/utils.exp @@ -1,4 +1,4 @@ -# Copyright (C) 92, 93, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # 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 @@ -15,9 +15,9 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org -# This file was written by Rob Savoye. (rob@cygnus.com) +# This file was written by Rob Savoye. (rob@welcomehome.org) # # Most of the procedures found here mimic their unix counter-part. @@ -72,7 +72,7 @@ proc getdirs { args } { } } } - } + } } else { perror "$tmp" return "" diff --git a/lib/xsh.exp b/lib/xsh.exp index 694241d..ed1043c 100644 --- a/lib/xsh.exp +++ b/lib/xsh.exp @@ -1,4 +1,4 @@ -# Copyright (C) 92, 93, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # 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 @@ -15,9 +15,9 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org -# This file was written by Rob Savoye. (rob@cygnus.com) +# This file was written by Rob Savoye. (rob@welcomehome.org) # # Connect to Spectra (VTRX) using xsh @@ -3,7 +3,7 @@ # runtest -- basically all this script does is find the proper expect # shell and then run DejaGnu. # -# Written by Rob Savoye <rob@cygnus.com> +# Written by Rob Savoye <rob@welcomehome.org> # # @@ -65,7 +65,7 @@ fi if [ -x "$expectbin-bld.sh" ]; then expectbin="${CONFIG_SHELL-/bin/sh} $expectbin-bld.sh" fi - + # # Extract a few options from the option list. # diff --git a/runtest.exp b/runtest.exp index cfc2ea8..28663d3 100755 --- a/runtest.exp +++ b/runtest.exp @@ -1,5 +1,5 @@ # Test Framework Driver -# Copyright (C) 92, 93, 94, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # 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 @@ -16,11 +16,11 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org -# This file was written by Rob Savoye. (rob@cygnus.com) +# This file was written by Rob Savoye. (rob@welcomehome.org) -set frame_version 1.3.1 +set frame_version 1.4.0 if ![info exists argv0] { send_error "Must use a version of Expect greater than 5.0\n" exit 1 @@ -661,7 +661,7 @@ unset arg_host_triplet arg_build_triplet if [expr { $build_triplet == "" && $host_triplet == ""} ] { # find config.guess - foreach dir "$libdir $libdir/.. $srcdir/.. $srcdir/../.." { + foreach dir "$libdir $libdir/libexec $libdir/.. $srcdir/.. $srcdir/../.." { verbose "Looking for ${dir}/config.guess" 2 if [file exists ${dir}/config.guess] { set config_guess ${dir}/config.guess diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am index 88dab63..13fe9da 100644 --- a/testsuite/Makefile.am +++ b/testsuite/Makefile.am @@ -1,5 +1,9 @@ ## Process this file with automake to generate Makefile.in -AUTOMAKE_OPTIONS = cygnus dejagnu +AUTOMAKE_OPTIONS = dejagnu + +all: + @echo "Nothing to be done for all" + +RUNTESTDEFAULTFLAGS = --tool runtest --srcdir $$srcdir -DEJATOOL = runtest diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in index eea1b06..11d0fa1 100644 --- a/testsuite/Makefile.in +++ b/testsuite/Makefile.in @@ -60,32 +60,35 @@ POST_UNINSTALL = : BOARDS = @BOARDS@ CC = @CC@ CONFIG = @CONFIG@ +DOCBOOK = @DOCBOOK@ EXEEXT = @EXEEXT@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ PACKAGE = @PACKAGE@ +TCLSH = @TCLSH@ VERSION = @VERSION@ +tclsh = @tclsh@ -AUTOMAKE_OPTIONS = cygnus dejagnu +AUTOMAKE_OPTIONS = dejagnu -DEJATOOL = runtest -mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs +RUNTESTDEFAULTFLAGS = --tool runtest --srcdir $$srcdir +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = -DIST_COMMON = Makefile.am Makefile.in +DIST_COMMON = Makefile.am Makefile.in configure.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = gtar +TAR = tar GZIP_ENV = --best -EXPECT = `if test -f $(top_builddir)/../expect/expect; then echo $(top_builddir)/../expect/expect; else echo expect; fi` -RUNTEST = `if test -f $(top_srcdir)/../dejagnu/runtest; then echo $(top_srcdir)/../dejagnu/runtest; else echo runtest; fi` +EXPECT = expect +RUNTEST = runtest all: all-redirect .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOMAKE) --cygnus testsuite/Makefile + cd $(top_srcdir) && $(AUTOMAKE) --gnu testsuite/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES) cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status @@ -98,10 +101,15 @@ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) subdir = testsuite distdir: $(DISTFILES) + here=`cd $(top_builddir) && pwd`; \ + top_distdir=`cd $(top_distdir) && pwd`; \ + distdir=`cd $(distdir) && pwd`; \ + cd $(top_srcdir) \ + && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu testsuite/Makefile @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ + d=$(srcdir); \ if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ + cp -pr $$/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ @@ -111,15 +119,11 @@ distdir: $(DISTFILES) RUNTESTFLAGS = -RUNTESTDEFAULTFLAGS = --tool $(DEJATOOL) --srcdir $$srcdir +DEJATOOL = $(PACKAGE) check-DEJAGNU: site.exp srcdir=`cd $(srcdir) && pwd`; export srcdir; \ EXPECT=$(EXPECT); export EXPECT; \ - if [ -f $(top_builddir)/../expect/expect ]; then \ - TCL_LIBRARY=`cd $(top_srcdir)/../tcl/library && pwd`; \ - export TCL_LIBRARY; \ - fi; \ runtest=$(RUNTEST); \ if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ $$runtest $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \ @@ -142,13 +146,11 @@ info-am: info: info-am dvi-am: dvi: dvi-am -check-am: +check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU check: check-am installcheck-am: installcheck: installcheck-am -install-info-am: -install-info: install-info-am install-exec-am: install-exec: install-exec-am @@ -195,13 +197,16 @@ maintainer-clean-am: maintainer-clean-generic distclean-am maintainer-clean: maintainer-clean-am .PHONY: tags distdir check-DEJAGNU info-am info dvi-am dvi check \ -check-am installcheck-am installcheck install-info-am install-info \ -install-exec-am install-exec install-data-am install-data install-am \ -install uninstall-am uninstall all-redirect all-am all installdirs \ -mostlyclean-generic distclean-generic clean-generic \ -maintainer-clean-generic clean mostlyclean distclean maintainer-clean +check-am installcheck-am installcheck install-exec-am install-exec \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean +all: + @echo "Nothing to be done for all" + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/testsuite/config/default.exp b/testsuite/config/default.exp index 0d427d0..81f153d 100644 --- a/testsuite/config/default.exp +++ b/testsuite/config/default.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1988, 90-93, 1995, 1996, 1997 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # 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 @@ -15,9 +15,9 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org -# This file was written by Rob Savoye. (rob@cygnus.com) +# This file was written by Rob Savoye. (rob@welcomehome.org) global RUNTEST if ![info exists RUNTEST] then { diff --git a/testsuite/lib/libsup.exp b/testsuite/lib/libsup.exp index eecf5f7..cfdd547 100644 --- a/testsuite/lib/libsup.exp +++ b/testsuite/lib/libsup.exp @@ -1,4 +1,4 @@ -# Copyright (C) 92, 93, 94, 95, 1996 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # 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 @@ -15,9 +15,9 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org -# This file was written by Rob Savoye. (rob@cygnus.com) +# This file was written by Rob Savoye. (rob@welcomehome.org) # # Setup an environment so we can execute library procs without DejaGnu diff --git a/testsuite/runtest.all/libs.exp b/testsuite/runtest.all/libs.exp index eb5e1af..a03d9e2 100644 --- a/testsuite/runtest.all/libs.exp +++ b/testsuite/runtest.all/libs.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org load_lib libsup.exp diff --git a/testsuite/runtest.all/options.exp b/testsuite/runtest.all/options.exp index 0c396ce..c6ae172 100644 --- a/testsuite/runtest.all/options.exp +++ b/testsuite/runtest.all/options.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1988, 90-92, 1994, 1995, 1996, 1997 Free Software Foundation, Inc. +# Copyright (C) 1992 - 2001 Free Software Foundation, Inc. # 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 @@ -15,9 +15,9 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org -# This file was written by Rob Savoye. (rob@cygnus.com) +# This file was written by Rob Savoye. (rob@welcomehome.org) load_lib util-defs.exp diff --git a/testsuite/runtest.all/stats-sub.exp b/testsuite/runtest.all/stats-sub.exp index deb52f8..fc686e2 100644 --- a/testsuite/runtest.all/stats-sub.exp +++ b/testsuite/runtest.all/stats-sub.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to: -# DejaGnu@cygnus.com +# bug-dejagnu@gnu.org # Subordinate to stats.exp. diff --git a/testsuite/runtest.all/stats.exp b/testsuite/runtest.all/stats.exp index 157cb27..4349cbd 100644 --- a/testsuite/runtest.all/stats.exp +++ b/testsuite/runtest.all/stats.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc. +# Copyright (C) 1995 - 2001 Free Software Foundation, Inc. # 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 @@ -15,7 +15,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Please email any bugs, comments, and/or additions to this file to: -# bug-dejagnu@prep.ai.mit.edu +# bug-dejagnu@gnu.org # This file tests pass/fail/etc. # The way we do this is to recursively invoke ourselves on a small testsuite |