Quiero usarlo l3build
para realizar pruebas de regresión en algún código LaTeX que tengo. Mis dificultades comienzan cuando necesito compilaciones múltiples para realizar este tipo de pruebas de regresión. Por ejemplo, quiero comprobar si una tabla de contenido imprime correctamente las secciones de mi documento de prueba.
Si lo hago manualmente, con la 1ª compilación falta la tabla de contenido y en la 2ª compilación todo está bien. Pero, si lo hago con l3build
no logro compilar por segunda vez.
De la documentación, descubrí que runtest_tasks
podría ser una opción. Sin embargo, en mi caso parece no funcionar correctamente. Creo que me perdí algo, pero como no encontré ningún ejemplo, me resulta difícil encontrar ese detalle.
Aquí hay un MWE: build.lua:
checksearch = true -- Enable command printing during check phase
-- Function to check if a file name matches a certain pattern
local function match_pattern(filename, pattern)
return true
-- string.match(filename, pattern) ~=nil
end
-- Define the runtest_tasks function
runtest_tasks = function(name, run)
if run == 1 then
print("Debug: name =", name, "run =", run, current_engine )
-- Run additional tasks for files matching a specific pattern
if match_pattern(name, "mytest") then
print("")
print("Executing additional tasks for files matching the pattern.")
print("tex(name)")
-- Add your specific tasks here
errorlevel = tex(name..'.lvt') -- second compilation
print("Executing additional tasks DONE")
return "echo "..errorlevel -- I get 256, and no table of content printed
else
return "echo "..0
end
else
return "echo "..0
end
end
y un mytest.lvt
\input regression-test.tex\relax
\documentclass{article}
\begin{document}
\START
\showoutput
\TEST{toc section}{
\tableofcontents
\newpage
\section{test}
}
\END
\vfil\break
\end{document}
Entonces, ¿cómo realizar una prueba de regresión que l3build
requiera múltiples ejecuciones/compilaciones?
Respuesta1
Estoy convirtiendo los comentarios de @Ulrike Fischer en una respuesta.
Simplemente existe la opción checkruns=3
disponible para ese propósito. Además, si las múltiples ejecuciones de verificación se refieren solo a algunos archivos, se pueden separar en una carpeta diferente y usar la checkconfigs={<file>}
opción para apuntar a un archivo de configuración de configuración específico relacionado con esa carpeta (y archivos).