From cc9c5c66b9e6ae378ed92da735b5dd16bd94f0d5 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 17 Jun 2016 15:17:17 +0000 Subject: l3build (17Jun) git-svn-id: svn://tug.org/texlive/trunk@41469 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/l3build/README.md | 2 +- Master/texmf-dist/doc/latex/l3build/l3build.pdf | Bin 603146 -> 611153 bytes Master/texmf-dist/source/latex/l3build/l3build.dtx | 115 +++++++-- Master/texmf-dist/tex/latex/l3build/l3build.lua | 257 +++++++++++++++------ .../tex/latex/l3build/regression-test.tex | 35 ++- 5 files changed, 321 insertions(+), 88 deletions(-) (limited to 'Master') diff --git a/Master/texmf-dist/doc/latex/l3build/README.md b/Master/texmf-dist/doc/latex/l3build/README.md index cf0ca12e8d5..6fbbf126bfd 100644 --- a/Master/texmf-dist/doc/latex/l3build/README.md +++ b/Master/texmf-dist/doc/latex/l3build/README.md @@ -1,7 +1,7 @@ l3build: a testing and building system for LaTeX3 ================================================= -Release 2016/03/26 (r6466) +Release 2016/06/14 (r6608) Overview -------- diff --git a/Master/texmf-dist/doc/latex/l3build/l3build.pdf b/Master/texmf-dist/doc/latex/l3build/l3build.pdf index 393bcec3644..db2ac3fe23e 100644 Binary files a/Master/texmf-dist/doc/latex/l3build/l3build.pdf and b/Master/texmf-dist/doc/latex/l3build/l3build.pdf differ diff --git a/Master/texmf-dist/source/latex/l3build/l3build.dtx b/Master/texmf-dist/source/latex/l3build/l3build.dtx index 91847d2db7e..97fe4972e8d 100644 --- a/Master/texmf-dist/source/latex/l3build/l3build.dtx +++ b/Master/texmf-dist/source/latex/l3build/l3build.dtx @@ -39,12 +39,11 @@ \RequirePackage{expl3} \def\ExplFileName{l3build} \def\ExplFileDescription{L3 Regression test suite} -\def\ExplFileDate{2016/03/26} -\def\ExplFileVersion{6466} +\def\ExplFileDate{2016/06/14} +\def\ExplFileVersion{6608} \documentclass[full]{l3doc} \renewcommand\partname{Part} \usepackage{multicol,needspace} - \makeatletter \addtolength\columnsep{1em} \renewcommand\columnseprule{0.4pt} @@ -58,7 +57,6 @@ \@nobreakfalse \end{multicols}} \makeatother - \newenvironment{buildcmd}[1]{% \bigskip\par\noindent\hspace{-\parindent}% \fbox{\ttfamily \textcolor[gray]{0.5}{\$} texlua build.lua #1}% @@ -114,10 +112,13 @@ \luavarset{versionfiles} {\{"*.dtx"\}} {Files for automatic version editing.} \luavarseparator \luavarset{bakext} {".bak"} {Extension of backup files.} +\luavarset{dviext} {".dvi"} {Extension of DVI files.} \luavarset{lvtext} {".lvt"} {Extension of test files.} \luavarset{tlgext} {".tlg"} {Extension of test file output.} \luavarset{lvtext} {".lve"} {Extension of auto-generating test file output.} \luavarset{logext} {".log"} {Extension of checking output, before processing it into a \texttt{.tlg}.} +\luavarset{pdfext} {".pdf"} {Extension of PDF file for checking and saving.} +\luavarset{psext} {".ps"} {Extension of PostScript files.} \luavarseparator \luavarset{checkdeps} {\{~\}} {List of build unpack dependencies for checking.} \luavarset{typesetdeps} {\{~\}} {\dots for typesetting docs.} @@ -154,6 +155,7 @@ \luavarseparator \luavarset{asciiengines}{\{"pdftex"\}}{Engines which should log as sure ASCII} \luavarset{checkruns} {1} {How many times to run a check file before comparing the log.} +\luavarset{epoch} {1463734800} {Epoch (Unix date) to set for test runs.} \luavarset{maxprintline}{79} {Length of line to use in log files.} \luavarset{packtdszip} {false} {Build a TDS-style zip file for CTAN?} \luavarset{scriptname} {"build.lua"} {Name of script used in dependencies.} @@ -187,17 +189,14 @@ \end{longtable} \endgroup } - \newcommand\code{\texttt} \newcommand\var{\texttt} - \usepackage[procnames]{listings} \lstset{ basicstyle=\ttfamily\small, numbers=left, numberstyle={\tiny\color[gray]{0.4}}, } - \usepackage{shortvrb} \usepackage{enumitem} \usepackage{longtable} @@ -310,17 +309,24 @@ % \item doc % \item install % \item save \meta{name(s)} +% \item setversion % \end{itemize} % These commands are described below. % % As well as these commands, the system recognises the options % \begin{itemize} +% \item \texttt{--date} (\texttt{-d}) Date to use when setting version +% data % \item \texttt{--engine} (\texttt{-e}) Sets the engine to use for % testing % \item \texttt{--halt-on-error} (\texttt{-H}) Specifies that checks % should stop as soon as possible, rather than running all requested % tests +% \item \texttt{--pdf} (\texttt{-p}) Test PDF file against a reference +% version rather than using a log comparison % \item \texttt{--quiet} (\texttt{-q}) Suppresses output from unpacking +% \item \texttt{--version} (\texttt{-v}) Version string to use when setting +% version data % \end{itemize} % % \begin{buildcmd}{check} @@ -367,6 +373,16 @@ % testing to a single engine. % \end{buildcmd} % +% \begin{buildcmd}{check -p} +% Rather than the log-based checking carried out by the standard +% |check| target, running with the |-p| option carries out a binary +% comparison of the PDF files produced by typesetting against those +% saved in \var{testfiledir}. +% +% This functionality requires \TeX{} Live 2016 or later as it needs support +% from the engines not available in earlier releases. +% \end{buildcmd} +% % \begin{buildcmd}{cmdcheck} % For \cls{l3doc}-based sources, allows checking that the commands defined in the code part (by \var{cmdchkfiles}) are documented in the description part. % This is performed by passing the |check| option to the \cls{l3doc} class, typesetting the file(s) to check with engine \var{stdengine} with options \var{cmdchkopts}, and checking the resultant |.cmds| file(s). @@ -461,6 +477,15 @@ % A normalisation process is performed when checking to avoid common differences such as register allocation; full details are listed in section~\ref{sec:norm}. % \end{buildcmd} % +% \begin{buildcmd}{save -p \meta{name(s)}} +% This version of |save| will store the PDF files produced from +% \texttt{\meta{name(s)}.lvt} in addition to the |.tlg| file, and thus allows +% binary comparison of the result of typesetting. +% +% This functionality requires \TeX{} Live 2016 or later as it needs support +% from the engines not available in earlier releases. +% \end{buildcmd} +% % \begin{buildcmd}{setversion} % Modifies the content of files specified by |versionfiles| to allow % automatic updating of the file date and version. The latter are @@ -875,6 +900,31 @@ % \label{fig:box-log} % \end{figure} % +% \subsection{Additional test tasks} +% +% A standard test will run the file \texttt{\meta{name}.lvt} using one +% or more engines, but will not carry out any additional processing. For +% some tests, for example bibliography generation, it may be desirable to +% call one or more tools in addition to the engine. This can be arranged +% by defining |runtest_tasks|, a function taking one argument, the name +% of the current test (this is equivalent to \TeX{}'s \cs{jobname}, +% \emph{i.e.}~it lacks an extension). The function |runtest_tasks| +% is is into a call to the system to run the engine. As such, it +% should take return a string with the appropriate command(s) +% and option(s). If more than one task is required, these should be separated +% by use of |os_concat|, a string variable defined by \pkg{l3build} as the +% correct concatenation marker for the system. An example of |runtest_tasks| +% suitable for calling Biber is shown in Listing~\ref{fig:test-tasks}. +% \begin{figure} +% \begin{lstlisting}[frame=single,language={[5.2]Lua},gobble = 6] +% function runtest_tasks(name) +% return "biber " .. name +% end +% \end{lstlisting} +% \caption{Example \texttt{runtest_tasks} function.} +% \label{fig:test-tasks} +% \end{figure} +% % \section{Alternative test formats} % % \subsection{Generating test files with \pkg{DocStrip}} @@ -956,7 +1006,7 @@ % \item |ExplFileName| --- Searches for lines using |\def\ExplFileName|, % |\def\ExplFileDate|, \dots, formulation. % \end{itemize} -% +% % For more complex cases, the programmer may directly define the % Lua function |setversion_update_line()|, which takes as arguments the line of the % source, the supplied date and the supplied version. It should return a @@ -1091,7 +1141,6 @@ \def\loggingoutput{\tracingoutput1 \showboxbreadth\maxdimen\showboxdepth\maxdimen} % \end{macrocode} - % % Set the newline character: \LaTeXe{} does this but plain-based formats % do not. @@ -1323,14 +1372,56 @@ \SEPARATOR \LONGTYPEOUT{}% } - \def \TRUE {\TYPE{TRUE}} \def \FALSE {\TYPE{FALSE}} \def \YES {\TYPE{YES}} \def \NO {\TYPE{NO}} - \def \NEWLINE {\TYPE{^^J}} % \end{macrocode} +% +% \subsection{Suppressing variable data in output} +% +% To make any PDF file produced comparable we need to suppress various +% pieces of data. This works in concert with setting the epoch from the +% environment side (as not all output can be controlled here). We are +% somewhat stuck if \texttt{dvips} is being used so just hope for the best! +% There is a limit to what can be done with the underlying PDF structure so +% there is no point entirely suppressing \texttt{Producer}: simply avoid +% any version numbers. +% \begin{macrocode} +\ifnum 0% + \ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>0 1\fi\fi + \ifx\outputmode\@undefined\else\ifnum\outputmode>0 1\fi\fi + >0 % + \ifx\pdfvariable\@undefined + \pdfinfo{/Producer (\ifx\directlua\@undefined pdf\else Lua\fi TeX)} + \ifx\pdfinfoomitdate\@undefined\else + \pdfinfoomitdate = 1 % + \pdfsuppressptexinfo = 1 % + \pdftrailerid{} + \fi + \else + \pdfextension info{/Producer (LuaTeX)} + \pdfvariable suppressoptionalinfo \numexpr + 0 + + 1 % PTEX.Fullbanner + + 32 % CreationDate + + 64 % ModDate + \relax + \fi +\else + \special{% + pdf: docinfo + << + /Creator (TeX) + /CreationDate () + /ModDate () + /Producer (\ifx\XeTeXversion\@undefined\else x\fi dvipdfmx) + >> + } +\fi +% \end{macrocode} +% % Finish up. % \begin{macrocode} \reset@catcodes @@ -1361,5 +1452,3 @@ % \end{implementation} % % \PrintIndex - - diff --git a/Master/texmf-dist/tex/latex/l3build/l3build.lua b/Master/texmf-dist/tex/latex/l3build/l3build.lua index edb88994984..4348135b50d 100644 --- a/Master/texmf-dist/tex/latex/l3build/l3build.lua +++ b/Master/texmf-dist/tex/latex/l3build/l3build.lua @@ -17,8 +17,8 @@ --]] -- Version information: should be identical to that in l3build.dtx -release_date = "2016/03/26" -release_ver = "6466" +release_date = "2016/06/14" +release_ver = "6608" -- "module" is a deprecated function in Lua 5.2: as we want the name -- for other purposes, and it should eventually be 'free', simply @@ -149,6 +149,7 @@ makeindexopts = makeindexopts or "" -- Other required settings asciiengines = asciiengines or {"pdftex"} checkruns = checkruns or 1 +epoch = epoch or 1463734800 maxprintline = maxprintline or 79 packtdszip = packtdszip or false -- Not actually needed but clearer scriptname = scriptname or "build.lua" -- Script used in each directory @@ -157,9 +158,12 @@ versionform = versionform or "" -- Extensions for various file types: used to abstract out stuff a bit bakext = bakext or ".bak" +dviext = dviext or ".dvi" logext = logext or ".log" lveext = lveext or ".lve" lvtext = lvtext or ".lvt" +pdfext = pdfext or ".pdf" +psext = psext or ".ps" tlgext = tlgext or ".tlg" -- Run time options @@ -176,6 +180,7 @@ function argparse() ["halt-on-error"] = "halt" , ["halt-on-failure"] = "halt" , help = "help" , + pdf = "pdf" , quiet = "quiet" , version = "version" } @@ -185,6 +190,7 @@ function argparse() e = "engine" , h = "help" , H = "halt" , + p = "pdf" , q = "quiet" , v = "version" } @@ -194,6 +200,7 @@ function argparse() engine = true , halt = false, help = false, + pdf = false, quiet = false, version = true } @@ -303,6 +310,7 @@ optdate = userargs["date"] optengines = userargs["engine"] opthalt = userargs["halt"] opthelp = userargs["help"] +optpdf = userargs["pdf"] optquiet = userargs["quiet"] optversion = userargs["version"] @@ -387,6 +395,8 @@ end -- the support functions if os.type == "windows" then os_ascii = "@echo." + os_cmpexe = os.getenv("cmpexe") or "fc /b" + os_cmpext = os.getenv("cmpext") or ".cmp" os_concat = "&" os_diffext = os.getenv("diffext") or ".fc" os_diffexe = os.getenv("diffexe") or "fc /n" @@ -399,6 +409,8 @@ if os.type == "windows" then os_yes = "for /l %I in (1,1,200) do @echo y" else os_ascii = "echo \"\"" + os_cmpexe = os.getenv("cmpexe") or "cmp" + os_cmpext = os.getenv("cmpext") or ".cmp" os_concat = ";" os_diffext = os.getenv("diffext") or ".diff" os_diffexe = os.getenv("diffexe") or "diff -c --strip-trailing-cr" @@ -607,6 +619,8 @@ function allmodules(target) .. (opthalt and " -H" or "") .. date .. engines + .. (optpdf and " -p" or "") + .. (optquiet and " -q" or "") .. version ) if errorlevel ~= 0 then @@ -828,7 +842,7 @@ function formatlog(logfile, newfile, engine) break elseif line == "OMIT" then skipping = true - elseif line == "TIMO" then + elseif string.match(line, "^%)?TIMO$") then skipping = false elseif not prestart and not skipping then line = normalize(line) @@ -1045,8 +1059,8 @@ function listmodules() return modules end --- Runs a single test: needs the name of the test rather than the .lvt file --- One 'test' here may apply to multiple engines +-- Run one test which may have multiple engine-dependent comparisons +-- Should create a difference file for each failed test function runcheck(name, hide) local checkengines = checkengines if optengines then @@ -1055,73 +1069,122 @@ function runcheck(name, hide) local errorlevel = 0 for _,i in ipairs(checkengines) do -- Allow for luatex == luajittex for .tlg purposes - local enginename = i - if i == "luajittex" then - enginename = "luatex" - newfile = testdir .. "/" .. name .. "." .. i .. logext - end - local testname = name .. "." .. enginename - local difffile = testdir .. "/" .. testname .. os_diffext - local newfile = newfile or testdir .. "/" .. testname .. logext - -- Use engine-specific file if available - local tlgfile = locate( - {testfiledir, unpackdir}, - {testname .. tlgext, name .. tlgext} - ) - if tlgfile then - cp(name .. tlgext, testfiledir, testdir) - else - -- Attempt to generate missing test goal from expectation - tlgfile = testdir .. "/" .. testname .. tlgext - if not locate({unpackdir, testfiledir}, {name .. lveext}) then - print( - "Error: failed to find " .. tlgext .. " or " - .. lveext .. " file for " .. name .. "!" - ) - os.exit(1) - end - runtest(name, i, hide, lveext) - ren(testdir, testname .. logext, testname .. tlgext) + local engine = i + if i == "luajitex" then + engine = "luatex" end + setup_check(name, engine) runtest(name, i, hide, lvtext) - if os_windows then - tlgfile = unix_to_win(tlgfile) - end + -- Generation of results heavily depends on test type local errlevel - -- Do additional log formatting if the engine is LuaTeX, there is no - -- LuaTeX-specific .tlg file and the default engine is not LuaTeX - if enginename == "luatex" - and not string.match(tlgfile, "%.luatex" .. "%" .. tlgext) - and stdengine ~= "luatex" - and stdengine ~= "luajittex" then - local luatlgfile = testdir .. "/" .. name .. ".luatex" .. tlgext - if os_windows then - luatlgfile = unix_to_win(luatlgfile) - end - formatlualog(tlgfile, luatlgfile) - formatlualog(newfile, newfile) - errlevel = os.execute( - os_diffexe .. " " .. luatlgfile .. " " .. newfile - .. " > " .. difffile - ) + if optpdf then + errlevel = compare_pdf(name, engine) else - errlevel = os.execute( - os_diffexe .. " " .. tlgfile .. " " .. newfile .. " > " .. difffile - ) + errlevel = compare_tlg(name, engine) end - if errlevel == 0 then - os.remove(difffile) - else - if opthalt then - checkdiff() - return errlevel - end + if errlevel ~= 0 and opthalt then + checkdiff() + return errlevel + end + if errlevel > errorlevel then errorlevel = errlevel end end return errorlevel end +function setup_check(name, engine) + local testname = name .. "." .. engine + local refext = ((optpdf and pdfext) or tlgext) + local reffile = locate( + {testfiledir, unpackdir}, + {testname .. refext, name .. refext} + ) + -- Attempt to generate missing reference file from expectation + if not reffile then + if not locate({unpackdir, testfiledir}, {name .. lveext}) then + print( + "Error: failed to find " .. refext .. " or " + .. lveext .. " file for " .. name .. "!" + ) + os.exit(1) + end + runtest(name, engine, hide, lveext) + reffile = testdir .. "/" .. testname .. refext + if not optpdf then + ren(testdir, testname .. logext, testname .. tlgext) + end + else + cp( + string.match(reffile, ".*/(.*)"), + string.match(reffile, "(.*)/.*"), + testdir + ) + end + if optpdf then + local reffile = string.match(reffile, ".*/(.*)") + ren( + testdir, + reffile, + string.gsub(reffile, pdfext .. "$", ".ref" .. pdfext) + ) + end +end + +function compare_pdf(name, engine) + local errorlevel + local testname = name .. "." .. engine + local cmpfile = testdir .. "/" .. testname .. os_cmpext + local pdffile = testdir .. "/" .. testname .. pdfext + local refpdffile = locate( + {testdir}, {testname .. ".ref" .. pdfext, name .. ".ref" .. pdfext} + ) + if os_windows then + refpdffile = unix_to_win(refpdffile) + end + errorlevel = os.execute( + os_cmpexe .. " " .. refpdffile .. " " .. pdffile .. " > " .. cmpfile + ) + if errorlevel == 0 then + os.remove(cmpfile) + end + return errorlevel +end + +function compare_tlg(name, engine) + local errorlevel + local testname = name .. "." .. engine + local difffile = testdir .. "/" .. testname .. os_diffext + local logfile = testdir .. "/" .. testname .. logext + local tlgfile = locate({testdir}, {testname .. tlgext, name .. tlgext}) + if os_windows then + tlgfile = unix_to_win(tlgfile) + end + -- Do additional log formatting if the engine is LuaTeX, there is no + -- LuaTeX-specific .tlg file and the default engine is not LuaTeX + if engine == "luatex" + and not string.match(tlgfile, "%.luatex" .. "%" .. tlgext) + and stdengine ~= "luatex" + and stdengine ~= "luajittex" + then + local luatlgfile = testdir .. "/" .. name .. ".luatex" .. tlgext + if os_windows then + luatlgfile = unix_to_win(luatlgfile) + end + formatlualog(tlgfile, luatlgfile) + formatlualog(logfile, logfile) + -- This allows code sharing below: we only need the .tlg name in one place + tlgfile = luatlgfile + end + errorlevel = os.execute( + os_diffexe .. " " .. tlgfile .. " " .. logfile .. " > " .. difffile + ) + if errorlevel == 0 then + os.remove(difffile) + end + return errorlevel +end + -- Run one of the test files: doesn't check the result so suitable for -- both creating and verifying .tlg files function runtest(name, engine, hide, ext) @@ -1154,7 +1217,9 @@ function runtest(name, engine, hide, ext) -- Special casing for XeTeX engine local checkopts = checkopts if string.match(engine, "xetex") then - checkopts = checkopts .. " -no-pdf" + if not optpdf then + checkopts = checkopts .. " -no-pdf" + end end local logfile = testdir .. "/" .. name .. logext local newfile = testdir .. "/" .. name .. "." .. engine .. logext @@ -1175,14 +1240,26 @@ function runtest(name, engine, hide, ext) -- Avoid spurious output from (u)pTeX os_setenv .. " GUESS_INPUT_KANJI_ENCODING=0" .. os_concat .. + -- Fix the time of the run + os_setenv .. " SOURCE_DATE_EPOCH=" .. epoch + .. os_concat .. + os_setenv .. " SOURCE_DATE_EPOCH_TEX_PRIMITIVES=1" + .. os_concat .. -- Ensure lines are of a known length os_setenv .. " max_print_line=" .. maxprintline .. os_concat .. realengine .. format .. " " .. checkopts .. " " .. asciiopt .. lvtfile .. (hide and (" > " .. os_null) or "") + .. os_concat .. + runtest_tasks(stripext(lvtfile)) ) end + if optpdf then + if fileexists(testdir .. "/" .. name .. dviext) then + dvitopdf(name, testdir, engine, hide) + end + end formatlog(logfile, newfile, engine) -- Store secondary files for this engine for _,i in ipairs(filelist(testdir, name .. ".???")) do @@ -1199,6 +1276,34 @@ function runtest(name, engine, hide, ext) end end +-- A hook to allow additional tasks to run for the tests +runtest_tasks = runtest_tasks or function(name) + return "" +end + +function dvitopdf(name, dir, engine, hide) + if string.match(engine, "^u?ptex$") then + run( + dir, + os_setenv .. " SOURCE_DATE_EPOCH=" .. epoch + .. os_concat .. + "dvipdfmx " .. name .. dviext + .. (hide and (" > " .. os_null) or "") + ) + else + run( + dir, + os_setenv .. " SOURCE_DATE_EPOCH=" .. epoch + .. os_concat .. + "dvips " .. name .. dviext + .. (hide and (" > " .. os_null) or "") + .. os_concat .. + "ps2pdf " .. name .. psext + .. (hide and (" > " .. os_null) or "") + ) + end +end + -- Strip the extension from a file name (if present) function stripext(file) local name = string.match(file, "^(.*)%.") @@ -1325,7 +1430,7 @@ typeset = typeset or function(file) ) end errorlevel = cycle(name) - if errorlevel ~= 0 then + if errorlevel == 0 then errorlevel = cycle(name) end end @@ -1336,7 +1441,7 @@ end -- Standard versions of the main targets for building modules -- Simply print out how to use the build system -help = help or function() +function help() print("usage: " .. arg[0] .. " [] []") print("") print("The most commonly used l3build commands are:") @@ -1361,8 +1466,9 @@ help = help or function() print(" --date|-d Sets the date to insert into sources") print(" --engine|-e Sets the engine to use for running test") print(" --halt-on-error|-H Stops running tests after the first failure") - print(" --version|-v Sets the version to insert into sources") + print(" --pdf|-p Check/save PDF files") print(" --quiet|-q Suppresses TeX output when unpacking") + print(" --version|-v Sets the version to insert into sources") print("") print("See l3build.pdf for further details.") end @@ -1419,6 +1525,9 @@ function checkdiff() for _,i in ipairs(filelist(testdir, "*" .. os_diffext)) do print(" - " .. testdir .. "/" .. i) end + for _,i in ipairs(filelist(testdir, "*" .. os_cmpext)) do + print(" - " .. testdir .. "/" .. i) + end print("") end @@ -1666,13 +1775,21 @@ function save(names) local engine for _,engine in pairs(engines) do local tlgengine = ((engine == stdengine and "") or "." .. engine) - local tlgfile = name .. tlgengine .. tlgext - local newfile = name .. "." .. engine .. logext + local tlgfile = name .. tlgengine .. tlgext + local spdffile = name .. tlgengine .. pdfext + local newfile = name .. "." .. engine .. logext + local pdffile = name .. "." .. engine .. pdfext + local refext = ((optpdf and pdfext) or tlgext) if testexists(name) then - print("Creating and copying " .. tlgfile) + print("Creating and copying " .. refext) runtest(name, engine, false, lvtext) - ren(testdir, newfile, tlgfile) - cp(tlgfile, testdir, testfiledir) + if optpdf then + ren(testdir, pdffile, spdffile) + cp(spdffile, testdir, testfiledir) + else + ren(testdir, newfile, tlgfile) + cp(tlgfile, testdir, testfiledir) + end if fileexists(unpackdir .. "/" .. tlgfile) then print( "Saved " .. tlgext diff --git a/Master/texmf-dist/tex/latex/l3build/regression-test.tex b/Master/texmf-dist/tex/latex/l3build/regression-test.tex index a4256a227dc..c6ea45f02ac 100644 --- a/Master/texmf-dist/tex/latex/l3build/regression-test.tex +++ b/Master/texmf-dist/tex/latex/l3build/regression-test.tex @@ -57,7 +57,6 @@ \showboxdepth=\maxdimen \def\loggingoutput{\tracingoutput1 \showboxbreadth\maxdimen\showboxdepth\maxdimen} - \newlinechar=`\^^J \long\def\LONGTYPEOUT#1{% \begingroup @@ -209,15 +208,43 @@ \SEPARATOR \LONGTYPEOUT{}% } - \def \TRUE {\TYPE{TRUE}} \def \FALSE {\TYPE{FALSE}} \def \YES {\TYPE{YES}} \def \NO {\TYPE{NO}} - \def \NEWLINE {\TYPE{^^J}} +\ifnum 0% + \ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>0 1\fi\fi + \ifx\outputmode\@undefined\else\ifnum\outputmode>0 1\fi\fi + >0 % + \ifx\pdfvariable\@undefined + \pdfinfo{/Producer (\ifx\directlua\@undefined pdf\else Lua\fi TeX)} + \ifx\pdfinfoomitdate\@undefined\else + \pdfinfoomitdate = 1 % + \pdfsuppressptexinfo = 1 % + \pdftrailerid{} + \fi + \else + \pdfextension info{/Producer (LuaTeX)} + \pdfvariable suppressoptionalinfo \numexpr + 0 + + 1 % PTEX.Fullbanner + + 32 % CreationDate + + 64 % ModDate + \relax + \fi +\else + \special{% + pdf: docinfo + << + /Creator (TeX) + /CreationDate () + /ModDate () + /Producer (\ifx\XeTeXversion\@undefined\else x\fi dvipdfmx) + >> + } +\fi \reset@catcodes - %% %% %% End of file `regression-test.tex'. -- cgit v1.2.3