¿Cómo ejecutar múltiples ejecuciones/compilaciones para verificar archivos de prueba con l3build?

¿Cómo ejecutar múltiples ejecuciones/compilaciones para verificar archivos de prueba con l3build?

Quiero usarlo l3buildpara 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 l3buildno logro compilar por segunda vez.

De la documentación, descubrí que runtest_taskspodrí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 l3buildrequiera múltiples ejecuciones/compilaciones?

Respuesta1

Estoy convirtiendo los comentarios de @Ulrike Fischer en una respuesta.

Simplemente existe la opción checkruns=3disponible 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).

información relacionada