mirror of
https://github.com/Myriad-Dreamin/tinymist.git
synced 2025-11-20 11:55:34 +00:00
70 lines
1.9 KiB
Python
70 lines
1.9 KiB
Python
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
def run_tests(test_files=None):
|
|
"""
|
|
Run the Neovim test suite with the specified test files.
|
|
If no test files are specified, it runs all tests in the 'spec' directory.
|
|
"""
|
|
init_lua = os.path.realpath(
|
|
os.path.join(__file__, "../../scripts/minimal_init.lua")
|
|
)
|
|
|
|
if test_files is None:
|
|
# all test files in the 'spec' directory
|
|
test_files = []
|
|
for root, _, files in os.walk(os.path.dirname(__file__)):
|
|
test_files.extend(
|
|
os.path.join(root, f) for f in files if f.endswith("_spec.lua")
|
|
)
|
|
test_files = " ".join(test_files)
|
|
|
|
command = [
|
|
"nvim",
|
|
"--headless",
|
|
"--clean",
|
|
"-u",
|
|
init_lua,
|
|
"-c",
|
|
f'lua require("inanis").run{{ specs = vim.split("{test_files}", " "), minimal_init = "{init_lua}", sequential = vim.env.TEST_SEQUENTIAL ~= nil }}',
|
|
]
|
|
|
|
subprocess.run(command, check=True)
|
|
|
|
|
|
def prepare():
|
|
bookdir = os.environ.get("BOOKDIR", "/home/runner/dev/workspaces/book")
|
|
if not os.path.exists(bookdir):
|
|
print(f"Book directory {bookdir} does not exist.")
|
|
sys.exit(1)
|
|
|
|
# compile
|
|
compile_command = [
|
|
"tinymist",
|
|
"compile",
|
|
"--lockfile",
|
|
os.path.join(bookdir, "tinymist.lock"),
|
|
os.path.join(bookdir, "main.typ"),
|
|
os.path.join(bookdir, "book.pdf"),
|
|
]
|
|
|
|
try:
|
|
subprocess.run(compile_command, check=True)
|
|
except subprocess.CalledProcessError as e:
|
|
print(f"Compilation failed: {e}")
|
|
sys.exit(1)
|
|
|
|
print("Compilation completed successfully.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# Check if any test files are provided as command line arguments
|
|
if len(sys.argv) > 1:
|
|
test_files = " ".join(sys.argv[1:])
|
|
else:
|
|
test_files = None
|
|
|
|
prepare()
|
|
run_tests(test_files)
|