l3build でテストファイルをチェックするために複数の実行/コンパイルを実行する方法は?

l3build でテストファイルをチェックするために複数の実行/コンパイルを実行する方法は?

所有している LaTeX コードの回帰テストを実行するために使用したいと考えていますl3build。このような回帰テストを実行するために複数のコンパイルが必要なときに問題が発生します。たとえば、目次がテスト ドキュメントのセクションを正しく印刷しているかどうかを確認したいとします。

手動で行う場合、最初のコンパイルでは目次が欠落し、2 回目のコンパイルではすべて正常になります。ただし、手動で行う場合は、l3build2 回目のコンパイルができません。

ドキュメントから、それがruntest_tasksオプションになる可能性があることがわかりました。ただし、私のケースでは正しく機能しないようです。何かを見落としていると思いますが、例が見つからないため、この小さな何かを見つけるのは困難です。

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

そして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}

l3buildでは、複数回の実行/コンパイルを必要とする回帰テストを実行するにはどうすればよいでしょうか?

答え1

@Ulrike Fischer のコメントを回答に変換しています。

そのためのオプションがcheckruns=3用意されています。さらに、複数のチェックランが一部のファイルにのみ関係する場合は、それらを別のフォルダーに分離し、checkconfigs={<file>}そのフォルダー (およびファイル) に関連する特定の設定構成ファイルを指すオプションを使用できます。

関連情報