Как выполнить несколько запусков/компиляций для проверки тестовых файлов с помощью l3build?

Как выполнить несколько запусков/компиляций для проверки тестовых файлов с помощью l3build?

Я хочу использовать l3buildдля выполнения регрессионных тестов некоторого кода LaTeX, который у меня есть. Мои трудности начинаются, когда мне нужна множественная компиляция для выполнения таких регрессионных тестов. Например, я хочу проверить, правильно ли таблица содержания печатает разделы моего тестового документа.

Если я делаю это вручную, то при первой компиляции оглавление отсутствует, а при второй компиляции все нормально. Но если я делаю это вручную, то l3buildу меня не получается скомпилировать второй раз.

Из документации я узнал, что это 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>}чтобы указать на конкретный файл конфигурации настроек, связанный с этой папкой (и файлами).

Связанный контент