# $Id: tests.list,v 1.34 2007/06/15 21:44:26 dan Exp $ # # Copyright (c) 2003, 2004, 2005, 2006, 2007 Dan McMahill # All rights reserved. # # This code is derived from software written by Dan McMahill # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by Dan McMahill # 4. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # # Format: # # test_name | directories to create | files to touch | arguments to make # # make will be called with -n just to see that the right set of steps # will be taken for each example. If the test_name is prefixed by a '*' # then make will be called _without_ -n. # # By using the special character '@' in the 'files to touch' field, # a pause will be inserted to help avoid any timestamp issues with # touch being called to rapidly. This may be unreasonable paranoia, # but I'd rather not have to deal with debugging someones buggy filesystem. # # Specific files can be copied into the run area by using the following # syntax in the "files to touch" section: # # < @S@/srcfile @R@/destfile > # # The @S@ refers to the source directory and the @R@ refers to the run # directory. The white space around the "<" and ">" are required. # # Please note that more tests should be added here but that each added # test should have the 'golden' output fully verified by hand. # # ----------------------------------------- # Single project, single latex source tests # ----------------------------------------- # # basic tests with the defaults # basic1_dvi1||test1.tex|dvi TEST1=yes basic1_dvi2||test1.tex|test1.dvi TEST1=yes basic1_ps1||test1.tex|ps TEST1=yes basic1_ps2||test1.tex|test1.ps TEST1=yes basic1_pdf1||test1.tex|pdf TEST1=yes basic1_pdf2||test1.tex|test1.pdf TEST1=yes basic1_landscape_pdf||test1.tex|pdf TEST1=yes LANDSCAPE=yes basic1_landscape_ps||test1.tex|ps TEST1=yes LANDSCAPE=yes basic1_landscape_view||test1.tex|view TEST1=yes LANDSCAPE=yes basic1_landscape_viewps||test1.tex|viewps TEST1=yes LANDSCAPE=yes basic1_landscape_viewpdf||test1.tex|viewpdf TEST1=yes LANDSCAPE=yes basic1_clean1||test1.tex|clean TEST1=yes # # Draft targets # draft1||draft.ps test1.tex|test1-draft.ps TEST1=yes DATED_DRAFT_PS=draft.ps # # HTML output -- LaTeX2HTML # basic1_html1||test1.tex|html TEST1=yes USE_LATEX2HTML=yes basic1_html2||test1.tex|test1.html TEST1=yes USE_LATEX2HTML=yes basic1_html3||test1.tex @ test1.dvi @ test1.html-stamp|test1.html TEST1=yes USE_LATEX2HTML=yes basic1_html4||test1.tex|html TEST1=yes # # HTML output -- HeVeA # basic1_html5||test1.tex|html TEST1=yes USE_HEVEA=yes basic1_html6||test1.tex|test1.html TEST1=yes USE_HEVEA=yes # # HTML output -- tex2page # basic1_html7||test1.tex|html TEST1=yes USE_TEX2PAGE=yes basic1_html8||test1.tex|test1.html TEST1=yes USE_TEX2PAGE=yes # # basic tests with USE_DVIPDFM # basic1_dvipdfm_dvi1||test1.tex|dvi TEST1=yes USE_DVIPDFM=yes basic1_dvipdfm_dvi2||test1.tex|test1.dvi TEST1=yes USE_DVIPDFM=yes basic1_landscape_dvipdfm||test1.tex|pdf TEST1=yes USE_DVIPDFM=yes LANDSCAPE=yes basic1_dvipdfm_ps1||test1.tex|ps TEST1=yes USE_DVIPDFM=yes basic1_dvipdfm_ps2||test1.tex|test1.ps TEST1=yes USE_DVIPDFM=yes basic1_dvipdfm_pdf1||test1.tex|pdf TEST1=yes USE_DVIPDFM=yes basic1_dvipdfm_pdf2||test1.tex|test1.pdf TEST1=yes USE_DVIPDFM=yes # # ----------------------------------------- # basic tests with USE_PDFLATEX # ----------------------------------------- # basic1_pdflatex_dvi1||test1.tex|dvi TEST1=yes USE_PDFLATEX=yes basic1_pdflatex_dvi2||test1.tex|test1.dvi TEST1=yes USE_PDFLATEX=yes basic1_pdflatex_ps1||test1.tex|ps TEST1=yes USE_PDFLATEX=yes basic1_pdflatex_ps2||test1.tex|test1.ps TEST1=yes USE_PDFLATEX=yes basic1_pdflatex_pdf1||test1.tex|pdf TEST1=yes USE_PDFLATEX=yes basic1_pdflatex_pdf2||test1.tex|test1.pdf TEST1=yes USE_PDFLATEX=yes # # ----------------------------------------- # BIBTEXSRCS test # ----------------------------------------- # basic_bibtexsrcs_dvi1||test.tex foo.bib|dvi TEST8=yes # this one shouldn't do anything: basic_bibtexsrcs_dvi2||test.tex foo.bib @ test.bib-stamp @ test.dvi @ |dvi TEST8=yes # this one should want to re-run basic_bibtexsrcs_dvi3||test.tex test.dvi @ foo.bib|dvi TEST8=yes # basic_bibtexsrcs_pdf1||test.tex foo.bib|pdf TEST8=yes basic_bibtexsrcs_pdf2||test.tex foo.bib|pdf TEST8=yes USE_PDFLATEX=yes # # ----------------------------------------- # LGRINDSRCS test # ----------------------------------------- # basic_lgrindsrcs||test2.tex src1.c src2.c src2.h|dvi TEST2A=yes basic_lgrindsrcs2||test2.tex src1.c src2.c src2.h|dvi TEST2A=yes src1.c_LGRIND_FLAGS=-myflag1 src2.c_LGRIND_FLAGS=-myflag2 # # ----------------------------------------- # LGRINDDIRS test # ----------------------------------------- # basic_lgrinddirs|lgrinddir1 lgrinddir2|test3.tex lgrinddir1/src1.c lgrinddir1/src1.h lgrinddir2/src3.c |dvi TEST3A=yes basic_lgrinddirs2|lgrinddir1 lgrinddir2|test3.tex lgrinddir1/src1.c lgrinddir1/src1.h lgrinddir2/src3.c |dvi TEST3A=yes lgrinddir1_LGRIND_FLAGS=-mydir1flags lgrinddir2_LGRIND_FLAGS=-mydir2flags # # make sure we can override the directory flags with a file specific flag # basic_lgrinddirs3|lgrinddir1 lgrinddir2|test3.tex lgrinddir1/src1.c lgrinddir1/src1.h lgrinddir2/src3.c |dvi TEST3A=yes lgrinddir1_LGRIND_FLAGS=-mydir1flags lgrinddir1/src1.h_LGRIND_FLAGS=-mysrcflag # # ----------------------------------------- # MPOSTSRCS test # ----------------------------------------- # basic_mpostsrcs1||test2.tex figs1.mp figs2.mp |dvi TEST2B=yes basic_mpostsrcs2||test2.tex figs1.mp figs2.mp |dvi TEST2B=yes USE_PDFLATEX=yes basic_mpostsrcs3||test2.tex figs1.mp figs2.mp |dvi TEST2B=yes MPOST_TWICE=yes mpostsrcs_clean1||test2.tex figs1.mp figs2.mp |clean TEST2B=yes mpostsrcs_clean2||test2.tex figs1.mp figs2.mp |clean TEST2B=yes USE_PDFLATEX=yes # # ----------------------------------------- # MPOSTDIRS test # ----------------------------------------- # basic_mpostdirs1|mpdir1 mpdir2|test3.tex mpdir1/f1.mp mpdir1/f2.mp mpdir2/f3.mp |dvi TEST3B=yes # # # ----------------------------------------- # TGIFSRCS test # ----------------------------------------- # basic_tgifsrcs||test2.tex tgif1.obj tgif2.obj|dvi TEST2=yes tgifsrcs_clean||test2.tex tgif1.obj tgif2.obj|clean TEST2=yes tgif_pdflatex_dvi1||test2.tex tgif1.obj tgif2.obj|dvi TEST2=yes USE_PDFLATEX=yes # # ----------------------------------------- # TGIFDIRS test # ----------------------------------------- # basic_tgifdirs|tgifdir1 tgifdir2|test3.tex tgifdir1/tgifa.obj tgifdir1/tgifb.obj tgifdir2/tgifc.obj |dvi TEST3=yes # # ----------------------------------------- # XFIGSRCS test # ----------------------------------------- # basic_xfigsrcs||test.tex xfig1.fig xfig2.fig|dvi TEST4=yes xfigsrcs_clean||test.tex xfig1.fig xfig2.fig|clean TEST4=yes xfig_pdflatex_dvi1||test.tex xfig1.fig xfig2.fig|dvi TEST4=yes USE_PDFLATEX=yes # # ----------------------------------------- # XFIGDIRS test # ----------------------------------------- # basic_xfigdirs|xfigdir1 xfigdir2|test.tex xfigdir1/xfiga.fig xfigdir1/xfigb.fig xfigdir2/xfigc.fig |dvi TEST5=yes # # ----------------------------------------- # Checks for various configuration variables # ----------------------------------------- # # BIBTEX = the BibTeX executable # BIBTEX_ENV = environment variables set when running the BibTeX executable vars_bibtex||test1.tex|dvi TEST1=yes BIBTEX=mybibtex BIBTEX_FLAGS=mybibtex_flags # # DVIPDFM = the dvipdfm executable # DVIPDFM_ENV = environment variables set when running the dvipdfm executable # DVIPDFM_FLAGS= flags passed to the dvipdfm executable vars_dvipdfm||test1.tex|pdf TEST1=yes DVIPDFM=mydvipdfm DVIPDFM_FLAGS=mydvipdfm_flags DVIPDFM_ENV=foo=dvipdfm USE_DVIPDFM=yes vars_dvipdfm_landscape||test1.tex|pdf TEST1=yes DVIPDFM=mydvipdfm DVIPDFM_ENV=foo=dvipdfm USE_DVIPDFM=yes DVIPDFM_LANDSCAPE_FLAGS=mydvipdfm_landscape LANDSCAPE=yes # # DVIPS = the dvips executable # DVIPS_FLAGS = flags passed to the dvips executable vars_dvips||test1.tex|ps TEST1=yes DVIPS=mydvips DVIPS_FLAGS=mydvips_flags DVIPS_ENV=foo=dvips vars_dvips_landscape||test1.tex|ps TEST1=yes DVIPS=mydvips DVIPS_LANDSCAPE_FLAGS=mydvips_landscape LANDSCAPE=yes # # GV = a postscript previewer executable # GV_FLAGS = flags passed to the postscript previewer executable vars_gv||test1.tex|viewps TEST1=yes GV=mygv GV_FLAGS=mygv_flags vars_gv_landscape||test1.tex|viewps TEST1=yes GV=mygv GV_LANDSCAPE_FLAGS=mygv_landscape LANDSCAPE=yes # # HEVEA = the Hevea executable # HEVEA_ENV = environment variables set when running the Hevea executable # HEVEA_FLAGS = flags passed to the LaTeX executable # IMAGEN = imagen executable vars_hevea||test1.tex|html TEST1=yes IMAGEN=myimagen HEVEA=myhevea HEVEA_FLAGS=myhevea_flags HEVEA_ENV=foo=bar USE_HEVEA=yes # # LATEX = the LaTeX executable # LATEX_ENV = environment variables set when running the LaTeX executable # LATEX_FLAGS = flags passed to the LaTeX executable # POST_BIBTEX_HOOK # = program to be run after a BibTeX run vars_latex||test1.tex|dvi TEST1=yes LATEX=mylatex LATEX_FLAGS=mylatex_flags LATEX_ENV=foo=bar POST_BIBTEX_HOOK=my_post_bibtex # # LATEX2HTML = the LaTeX2HTML executable # LATEX2HTML_ENV = environment variables set when running the LaTeX2HTML executable # LATEX2HTML_FLAGS = flags passed to the LaTeX2HTML executable vars_latex2html||test1.tex|html TEST1=yes LATEX2HTML=mylatex2html LATEX2HTML_FLAGS=mylatex2html_flags LATEX2HTML_ENV=foo=bar USE_LATEX2HTML=yes # # LATEX2RTF = the latex2rtf executable # LATEX2RTF_ENV = environment variables set when running the latex2rtf executable # LATEX2RTF_FLAGS = flags passed to the latex2rtf executable vars_latex2rtf||test1.tex|rtf TEST1=yes LATEX2RTF=mylatex2rtf LATEX2RTF_FLAGS=mylatex2rtf_flags LATEX2RTF_ENV=foortf=barrtf # # LGRIND = lgrind executable # LGRIND_FLAGS = flags passed to LGRIND vars_lgrind||test2.tex src1.c src2.c src2.h|dvi TEST2A=yes LGRIND=mylgrind LGRIND_FLAGS=mylgrind_flags # # LPR = executable to print postscript files # LPR_FLAGS = flags passed to the executable to print postscript files vars_lpr||test1.tex|print TEST1=yes LPR=mylpr LPR_FLAGS=mylpr_flags # # MAKEGLS = makeindex executable for glossaries # MAKEGLS_FLAGS= flags passed to the makeindex for glossaries executable vars_makegls||test1.tex|dvi TEST1=yes MAKEGLS=mymakegls MAKEGLS_FLAGS=mymakegls_flags # # MAKEIDX = makeindex executable # MAKEIDX_FLAGS= flags passed to the makeindex executable vars_makeindex||test1.tex|dvi TEST1=yes MAKEIDX=mymakeindex MAKEIDX_FLAGS=mymakeindex_flags # # MPOST = the METAPOST executable # MPOST_FLAGS = flags passed to ${MPOST} vars_mpost||test2.tex figs1.mp figs2.mp|dvi TEST2B=yes MPOST=mympost MPOST_FLAGS=mympost_flags # # PDFLATEX = pdflatex executable # PDFLATEX_ENV = environment variables set when running the PDFLaTeX executable # PDFLATEX_FLAGS= flags passed to the PDFLaTeX executable vars_pdflatex||test1.tex|pdf TEST1=yes PDFLATEX=mypdflatex PDFLATEX_FLAGS=mypdflatex_flags PDFLATEX_ENV=foo=bar USE_PDFLATEX=yes # # PS2PDF = ps2pdf executable # PS2PDF_FLAGS = flags passed to the ps2pdf executable vars_ps2pdf||test1.tex|pdf TEST1=yes PS2PDF=myps2pdf PS2PDF_FLAGS=myps2pdf_flags # # TEX2PAGE = the tex2page executable # TEX2PAGE_ENV = environment variables set when running the tex2page executable # TEX2PAGE_FLAGS = flags passed to the tex2page executable vars_tex2page||test1.tex|html TEST1=yes TEX2PAGE=mytex2page TEX2PAGE_FLAGS=mytex2page_flags TEX2PAGE_ENV=foo=bar USE_TEX2PAGE=yes # # # VIEWPDF = PDF viewer # VIEWPDF_FLAGS= PDF viewer flags vars_viewpdf||test1.tex|viewpdf TEST1=yes VIEWPDF=myviewpdf VIEWPDF_FLAGS=myviewpdf_flags vars_viewpdf_landscape||test1.tex|viewpdf TEST1=yes VIEWPDF=myviewpdf VIEWPDF_LANDSCAPE_FLAGS=myviewpdf_landscape LANDSCAPE=yes # # XDVI = a .dvi previewer executable # XDVI_FLAGS = flags passed to the .dvi previewer executable vars_xdvi||test1.tex|view TEST1=yes XDVI=myxdvi XDVI_FLAGS=myxdvi_flags vars_xdvi_landscape||test1.tex|view TEST1=yes XDVI=myxdvi XDVI_LANDSCAPE_FLAGS=myxdvi_landscape LANDSCAPE=yes # # ----------------------------------------- # Single project, multiple latex source tests # ----------------------------------------- # basic2_dvi1||test.tex a.tex b.tex|dvi TEST6=yes basic2_dvi2||test.tex @ test.dvi @ a.tex b.tex|dvi TEST6=yes basic2_dvi3||test.tex a.tex @ test.dvi @ b.tex|dvi TEST6=yes # # ----------------------------------------- # Multidocument project # ----------------------------------------- # multi1_dvi1||test1.tex test2.tex|test1.dvi TEST7=yes multi1_dvi2||test1.tex test2.tex|test2.dvi TEST7=yes multi1_dvi3||test1.tex test2.tex|dvi TEST7=yes # # foo_DVIPDFM_FLAGS # multi1_dvipdfm_flag1||test1.tex test2.tex|pdf TEST7=yes test1_DVIPDFM_FLAGS=dvipdfm1_flags test2_DVIPDFM_FLAGS=dvipdfm2_flags DVIPDFM_FLAGS=my_dvipdfm_flags USE_DVIPDFM=yes # # foo_DVIPS_FLAGS # multi1_dvips_flag1||test1.tex test2.tex|ps TEST7=yes test1_DVIPS_FLAGS=dvips1_flags test2_DVIPS_FLAGS=dvips2_flags # # foo_TEXSRCS # multi_texsrcs_dvi1||test1.tex test2.tex xtra1.tex xtra2.tex|test1.dvi TEST9=yes multi_texsrcs_dvi2||test1.tex test2.tex xtra1.tex xtra2.tex|test2.dvi TEST9=yes multi_texsrcs_dvi3||test1.tex test2.tex xtra1.tex xtra2.tex|dvi TEST9=yes multi_texsrcs_dvi4||test1.tex test2.tex xtra1.tex @ test1.dvi test2.dvi @ xtra2.tex|test1.dvi TEST9=yes multi_texsrcs_dvi5||test1.tex test2.tex xtra1.tex @ test1.dvi test2.dvi @ xtra2.tex|test2.dvi TEST9=yes # # distfiles # multi_distfile1||test1.tex test2.tex xtra1.tex xtra2.tex|dist TEST9=yes multi_distfile2||test1.tex test2.tex fig1.obj fig2.obj|dist TEST10=yes multi_distfile3||test1.tex test2.tex src1.c src2.c|dist TEST_MULTI_LGRINDSRCS=yes # # foo_LGRINDSRCS # multi_lgrindsrcs_dvi1||test1.tex test2.tex src1.c src2.c|test1.dvi TEST_MULTI_LGRINDSRCS=yes multi_lgrindsrcs_dvi2||test1.tex test2.tex src1.c src2.c|test2.dvi TEST_MULTI_LGRINDSRCS=yes multi_lgrindsrcs_dvi3||test1.tex test2.tex src1.c src2.c|dvi TEST_MULTI_LGRINDSRCS=yes multi_lgrindsrcs_dvi4||test1.tex test2.tex src1.c src2.c @ src1.c.tex @ test1.dvi test2.dvi|test1.dvi TEST_MULTI_LGRINDSRCS=yes multi_lgrindsrcs_dvi5||test1.tex test2.tex src1.c src2.c @ src1.c.tex @ test1.dvi test2.dvi|test2.dvi TEST_MULTI_LGRINDSRCS=yes multi_lgrindsrcs_dvi6||test1.tex test2.tex src1.c src2.c|dvi TEST_MULTI_LGRINDSRCS=yes src1.c_LGRIND_FLAGS=-myflag1 multi_lgrindsrcs_dvi7||test1.tex test2.tex src1.c src2.c|dvi TEST_MULTI_LGRINDSRCS=yes src1.c_LGRIND_FLAGS=-myflag1 src2.c_LGRIND_FLAGS=-myflag2 # # foo_LGRINDDIRS # multi_lgrinddirs_dvi1|lgd1 lgd2|test1.tex test2.tex lgd1/src1.c lgd1/src2.c lgd2/src1.c|test1.dvi TEST_MULTI_LGRINDDIRS=yes multi_lgrinddirs_dvi2|lgd1 lgd2|test1.tex test2.tex lgd1/src1.c lgd1/src2.c lgd2/src1.c|test2.dvi TEST_MULTI_LGRINDDIRS=yes multi_lgrinddirs_dvi3|lgd1 lgd2|test1.tex test2.tex lgd1/src1.c lgd1/src2.c lgd2/src1.c|dvi TEST_MULTI_LGRINDDIRS=yes multi_lgrinddirs_dvi4|lgd1 lgd2|test1.tex test2.tex lgd1/src1.c lgd1/src2.c lgd2/src1.c|dvi TEST_MULTI_LGRINDDIRS=yes lgd1_LGRIND_FLAGS=-myflags1 multi_lgrinddirs_dvi5|lgd1 lgd2|test1.tex test2.tex lgd1/src1.c lgd1/src2.c lgd2/src1.c|dvi TEST_MULTI_LGRINDDIRS=yes lgd1_LGRIND_FLAGS=-myflags1 lgd2_LGRIND_FLAGS=-myflags2 multi_lgrinddirs_dvi6|lgd1 lgd2|test1.tex test2.tex lgd1/src1.c lgd1/src2.c lgd2/src1.c|dvi TEST_MULTI_LGRINDDIRS=yes lgd1_LGRIND_FLAGS=-myflags1 lgd1/src1.c_LGRIND_FLAGS=-myspecialflag lgd2_LGRIND_FLAGS=-myflags2 # # foo_TGIFSRCS # multi_tgifsrcs_dvi1||test1.tex test2.tex fig1.obj fig2.obj|test1.dvi TEST10=yes multi_tgifsrcs_dvi2||test1.tex test2.tex fig1.obj fig2.obj|test2.dvi TEST10=yes multi_tgifsrcs_dvi3||test1.tex test2.tex fig1.obj fig2.obj|dvi TEST10=yes multi_tgifsrcs_dvi4||test1.tex test2.tex fig1.obj fig2.obj @ fig1.eps @ test1.dvi test2.dvi|test1.dvi TEST10=yes multi_tgifsrcs_dvi5||test1.tex test2.tex fig1.obj fig2.obj @ fig1.eps @ test1.dvi test2.dvi|test2.dvi TEST10=yes # # ----------------------------------------- # Graphic file conversions # ----------------------------------------- # graphic1_dvi1||test1.tex jpg1.jpg jpg2.jpg png1.png png2.png|dvi TEST11=yes # # # ----------------------------------------- # Graphic file conversions # ----------------------------------------- # *subdir1|||TEST_SUBDIR=yes *subdir2|dir2|< @S@/simple.mk @R@/dir2/Makefile >|TEST_SUBDIR=yes *subdir3|dir1 dir2|< @S@/simple.mk @R@/dir1/Makefile > < @S@/simple.mk @R@/dir2/Makefile >|TEST_SUBDIR=yes *subdir4|dir1 dir2 dir3|< @S@/simple.mk @R@/dir2/Makefile >|TEST_SUBDIR=yes *subdir5|dir2|< @S@/simple.mk @R@/dir2/Makefile >|TEST_SUBDIR=yes view