Como executar múltiplas execuções/compilações para verificar arquivos de teste com l3build?

Como executar múltiplas execuções/compilações para verificar arquivos de teste com l3build?

Quero usar l3buildpara realizar testes de regressão em algum código LaTeX que possuo. Minhas dificuldades começam quando preciso de múltiplas compilações para fazer tais testes de regressão. Por exemplo, quero verificar se um índice analítico está imprimindo corretamente as seções do meu documento de teste.

Se eu fizer manualmente, na 1ª compilação falta o índice, e na 2ª compilação está tudo bem. Mas, se eu fizer isso com l3buildnão consigo compilar uma 2ª vez.

Pela documentação, descobri que runtest_taskspoderia ser uma opção. No entanto, parece não funcionar corretamente no meu caso. Acho que perdi alguma coisinha, mas como não encontrei nenhum exemplo, é difícil para mim encontrar essa coisinha.

Aqui está um 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

e um 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}

Então, como realizar um teste de regressão l3buildexigindo várias execuções/compilações?

Responder1

Estou transformando os comentários de @Ulrike Fischer em uma resposta.

Existe simplesmente a opção checkruns=3disponível para esse fim. Além disso, se as múltiplas execuções de verificação se referirem apenas a alguns arquivos, elas poderão ser separadas em uma pasta diferente e usar a checkconfigs={<file>}opção para apontar para um arquivo de configuração específico relacionado a essa pasta (e arquivos).

informação relacionada