From e0ae200df6c3317cf24ccc9d9bbee23866c4dcd1 Mon Sep 17 00:00:00 2001 From: Joscha Date: Wed, 25 Feb 2026 17:28:12 +0100 Subject: [PATCH 01/15] Remove obsolete .gitignore --- doc/.gitignore | 1 - 1 file changed, 1 deletion(-) delete mode 100644 doc/.gitignore diff --git a/doc/.gitignore b/doc/.gitignore deleted file mode 100644 index 1fcb1529f8e5..000000000000 --- a/doc/.gitignore +++ /dev/null @@ -1 +0,0 @@ -out From 995531cf4a4b889731e37097bca75d9551dfb9c7 Mon Sep 17 00:00:00 2001 From: Joscha Date: Mon, 2 Mar 2026 16:41:35 +0100 Subject: [PATCH 02/15] Refactor cmakelists path handling --- tests/CMakeLists.txt | 70 +++++++++++++++++++++++++++----------------- 1 file changed, 43 insertions(+), 27 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a5d9ff911fb6..65549e54d8c7 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -50,9 +50,9 @@ endblock() ## Helper functions ## ###################### -function(check_test_bench_scripts DIR DIR_ABS) - set(RUN_TEST "${DIR_ABS}/run_test") - set(RUN_BENCH "${DIR_ABS}/run_bench") +function(check_test_bench_scripts DIR) + set(RUN_TEST "${DIR}/run_test") + set(RUN_BENCH "${DIR}/run_bench") set(RUN_TEST_EXISTS FALSE) set(RUN_BENCH_EXISTS FALSE) @@ -64,6 +64,7 @@ function(check_test_bench_scripts DIR DIR_ABS) endif() if(NOT RUN_TEST_EXISTS AND NOT RUN_BENCH_EXISTS) + cmake_path(RELATIVE_PATH DIR) message(FATAL_ERROR "${DIR}: Found neither a run_test nor a run_bench file") return() endif() @@ -77,10 +78,12 @@ endfunction() function(check_bench_argument DIR ARGS_BENCH RUN_BENCH_EXISTS) if(RUN_BENCH_EXISTS AND NOT ARGS_BENCH) + cmake_path(RELATIVE_PATH DIR) message(FATAL_ERROR "${DIR}: run_bench file found, BENCH argument must be specified") return() endif() if(NOT RUN_BENCH_EXISTS AND ARGS_BENCH) + cmake_path(RELATIVE_PATH DIR) message(FATAL_ERROR "${DIR}: BENCH argument specified but no run_bench file found") return() endif() @@ -115,9 +118,9 @@ endfunction() # added to the list specified by the BENCH argument. function(add_test_pile DIR GLOB) cmake_parse_arguments(ARGS "" BENCH "" ${ARGN}) - set(DIR_ABS "${CMAKE_CURRENT_SOURCE_DIR}/${DIR}") + cmake_path(ABSOLUTE_PATH DIR NORMALIZE) - check_test_bench_scripts("${DIR}" "${DIR_ABS}") + check_test_bench_scripts("${DIR}") check_bench_argument("${DIR}" "${ARGS_BENCH}" "${RUN_BENCH_EXISTS}") # The test files' individual measurement files that will later be combined @@ -125,38 +128,40 @@ function(add_test_pile DIR GLOB) set(MEASUREMENTS_FILES "") # Iterate over all files matching the glob - file(GLOB TEST_FILES "${DIR_ABS}/${GLOB}") - foreach(FILE_ABS IN LISTS TEST_FILES) - # Path relative to source directory - cmake_path(RELATIVE_PATH FILE_ABS BASE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" OUTPUT_VARIABLE FILE) - # Path relative to pile directory - cmake_path(RELATIVE_PATH FILE_ABS BASE_DIRECTORY "${DIR_ABS}" OUTPUT_VARIABLE FILE_NAME) - - if(RUN_TEST_EXISTS AND NOT EXISTS "${FILE_ABS}.no_test") + file(GLOB TEST_FILES "${DIR}/${GLOB}") + foreach(FILE IN LISTS TEST_FILES) + cmake_path(RELATIVE_PATH FILE OUTPUT_VARIABLE FILE_IN_SOURCE_DIR) + cmake_path(RELATIVE_PATH FILE BASE_DIRECTORY "${DIR}" OUTPUT_VARIABLE FILE_IN_DIR) + + if(FILE_IN_DIR MATCHES "^run_(test|bench)") + continue() + endif() + + if(RUN_TEST_EXISTS AND NOT EXISTS "${FILE}.no_test") add_test( - NAME "${FILE}" - WORKING_DIRECTORY "${DIR_ABS}" + NAME "${FILE_IN_SOURCE_DIR}" + WORKING_DIRECTORY "${DIR}" # On Windows, we can't call the file directly, hence we always use bash. - COMMAND bash "${RUN_TEST}" "${FILE_NAME}" + COMMAND bash "${RUN_TEST}" "${FILE_IN_DIR}" ) endif() - if(RUN_BENCH_EXISTS AND NOT EXISTS "${FILE_ABS}.no_bench") - set(MEASUREMENTS_FILE "${FILE_ABS}.measurements.jsonl") + if(RUN_BENCH_EXISTS AND NOT EXISTS "${FILE}.no_bench") + set(MEASUREMENTS_FILE "${FILE}.measurements.jsonl") list(APPEND MEASUREMENTS_FILES "${MEASUREMENTS_FILE}") add_custom_command( OUTPUT "${MEASUREMENTS_FILE}" - WORKING_DIRECTORY "${DIR_ABS}" + WORKING_DIRECTORY "${DIR}" COMMAND "${CMAKE_COMMAND}" -E remove -f "${MEASUREMENTS_FILE}" # On Windows, we can't call the file directly, hence we always use bash. - COMMAND bash "${RUN_BENCH}" "${FILE_NAME}" + COMMAND bash "${RUN_BENCH}" "${FILE_IN_DIR}" ) endif() endforeach() # Combine measurements if(RUN_BENCH_EXISTS) - set(MEASUREMENTS_FILE "${DIR_ABS}/measurements.jsonl") + set(MEASUREMENTS_FILE "${DIR}/measurements.jsonl") list(APPEND "${ARGS_BENCH}" "${MEASUREMENTS_FILE}") set("${ARGS_BENCH}" "${${ARGS_BENCH}}" PARENT_SCOPE) add_combined_measurements("${MEASUREMENTS_FILE}" "${MEASUREMENTS_FILES}") @@ -167,16 +172,17 @@ endfunction() # alongside any additional files or subdirectories required by that test. function(add_test_dir DIR) cmake_parse_arguments(ARGS "" BENCH "" ${ARGN}) - set(DIR_ABS "${CMAKE_CURRENT_SOURCE_DIR}/${DIR}") + cmake_path(ABSOLUTE_PATH DIR NORMALIZE) - check_test_bench_scripts("${DIR}" "${DIR_ABS}") + check_test_bench_scripts("${DIR}") check_bench_argument("${DIR}" "${ARGS_BENCH}" "${RUN_BENCH_EXISTS}") # Add as test if(RUN_TEST_EXISTS) + cmake_path(RELATIVE_PATH DIR OUTPUT_VARIABLE DIR_IN_SOURCE_DIR) add_test( - NAME "${DIR}" - WORKING_DIRECTORY "${DIR_ABS}" + NAME "${DIR_IN_SOURCE_DIR}" + WORKING_DIRECTORY "${DIR}" # On Windows, we can't call the file directly, hence we always use bash. COMMAND bash "${RUN_TEST}" ) @@ -184,12 +190,12 @@ function(add_test_dir DIR) # Add as benchmark if(RUN_BENCH_EXISTS) - set(MEASUREMENTS_FILE "${DIR_ABS}/measurements.jsonl") + set(MEASUREMENTS_FILE "${DIR}/measurements.jsonl") list(APPEND "${ARGS_BENCH}" "${MEASUREMENTS_FILE}") set("${ARGS_BENCH}" "${${ARGS_BENCH}}" PARENT_SCOPE) add_custom_command( OUTPUT "${MEASUREMENTS_FILE}" - WORKING_DIRECTORY "${DIR_ABS}" + WORKING_DIRECTORY "${DIR}" COMMAND "${CMAKE_COMMAND}" -E remove -f "${MEASUREMENTS_FILE}" # On Windows, we can't call the file directly, hence we always use bash. COMMAND bash "${RUN_BENCH}" @@ -197,6 +203,16 @@ function(add_test_dir DIR) endif() endfunction() +function(add_dir_of_test_dirs DIR) + cmake_path(ABSOLUTE_PATH DIR NORMALIZE) + file(GLOB TEST_DIRS "${DIR}/*") + foreach(TEST_DIR IN LISTS TEST_DIRS) + if(IS_DIRECTORY "${TEST_DIR}") + add_test_dir("${TEST_DIR}") + endif() + endforeach() +endfunction() + # Benchmarks are split into two parts which should be roughly equal in total runtime. # In radar, each part is run on a different runner. set(PART1 "") From bf6ab274dc854dd441090e6b7665aa01284a60b4 Mon Sep 17 00:00:00 2001 From: Joscha Date: Mon, 2 Mar 2026 18:07:37 +0100 Subject: [PATCH 03/15] Migrate tests/lean/run tests --- tests/{lean/run => elab}/10067.lean | 0 tests/{lean/run => elab}/10850.lean | 0 tests/{lean/run => elab}/async_http_encode.lean | 0 tests/{lean/run => elab}/async_http_string_quoting.lean | 0 tests/{lean/run => elab}/mvcgenRflReducibility.lean | 0 tests/{lean/run => elab}/ppFVarsAnonymous.lean | 0 tests/lean/run/test_single.sh | 6 ------ 7 files changed, 6 deletions(-) rename tests/{lean/run => elab}/10067.lean (100%) rename tests/{lean/run => elab}/10850.lean (100%) rename tests/{lean/run => elab}/async_http_encode.lean (100%) rename tests/{lean/run => elab}/async_http_string_quoting.lean (100%) rename tests/{lean/run => elab}/mvcgenRflReducibility.lean (100%) rename tests/{lean/run => elab}/ppFVarsAnonymous.lean (100%) delete mode 100755 tests/lean/run/test_single.sh diff --git a/tests/lean/run/10067.lean b/tests/elab/10067.lean similarity index 100% rename from tests/lean/run/10067.lean rename to tests/elab/10067.lean diff --git a/tests/lean/run/10850.lean b/tests/elab/10850.lean similarity index 100% rename from tests/lean/run/10850.lean rename to tests/elab/10850.lean diff --git a/tests/lean/run/async_http_encode.lean b/tests/elab/async_http_encode.lean similarity index 100% rename from tests/lean/run/async_http_encode.lean rename to tests/elab/async_http_encode.lean diff --git a/tests/lean/run/async_http_string_quoting.lean b/tests/elab/async_http_string_quoting.lean similarity index 100% rename from tests/lean/run/async_http_string_quoting.lean rename to tests/elab/async_http_string_quoting.lean diff --git a/tests/lean/run/mvcgenRflReducibility.lean b/tests/elab/mvcgenRflReducibility.lean similarity index 100% rename from tests/lean/run/mvcgenRflReducibility.lean rename to tests/elab/mvcgenRflReducibility.lean diff --git a/tests/lean/run/ppFVarsAnonymous.lean b/tests/elab/ppFVarsAnonymous.lean similarity index 100% rename from tests/lean/run/ppFVarsAnonymous.lean rename to tests/elab/ppFVarsAnonymous.lean diff --git a/tests/lean/run/test_single.sh b/tests/lean/run/test_single.sh deleted file mode 100755 index 64705ca4a6d3..000000000000 --- a/tests/lean/run/test_single.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash -source ../../common.sh - -# `--root` to infer same private names as in the server -# Elab.inServer to allow for arbitrary `#eval` -exec_check_raw lean --root=../.. -Dlinter.all=false -DElab.inServer=true "$f" From f465248081c35b8ac7cad5e507b2c12955cc8ed0 Mon Sep 17 00:00:00 2001 From: Joscha Date: Mon, 2 Mar 2026 18:22:34 +0100 Subject: [PATCH 04/15] Complete tests/lean migration --- tests/CMakeLists.txt | 14 -------------- tests/lean/copy-produced | 11 ----------- tests/lean/test_single.sh | 8 -------- tests/lint.py | 2 +- 4 files changed, 1 insertion(+), 34 deletions(-) delete mode 100755 tests/lean/copy-produced delete mode 100755 tests/lean/test_single.sh diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 65549e54d8c7..2a9d9a29913e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -222,20 +222,6 @@ set(PART2 "") ## Tests and benchmarks ## ########################## -# LEAN TESTS -file(GLOB LEANTESTS "${LEAN_SOURCE_DIR}/../tests/lean/*.lean") -foreach(T ${LEANTESTS}) - if(NOT T MATCHES "\\.#") - get_filename_component(T_NAME ${T} NAME) - cmake_path(RELATIVE_PATH T BASE_DIRECTORY ${LEAN_SOURCE_DIR}/.. OUTPUT_VARIABLE T_PATH) - add_test( - NAME "${T_PATH}" - WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean" - COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}" - ) - endif() -endforeach(T) - # LEAN RUN TESTS file(GLOB LEANRUNTESTS "${LEAN_SOURCE_DIR}/../tests/lean/run/*.lean") foreach(T ${LEANRUNTESTS}) diff --git a/tests/lean/copy-produced b/tests/lean/copy-produced deleted file mode 100755 index 6730b3e5430f..000000000000 --- a/tests/lean/copy-produced +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -# -# Updates all *.expected.out files it finds within tests/lean -# - -find "$(dirname "$0")" -name '*.expected.out' | -while read -r to; do - from="${to/.expected.out/.produced.out}" - [ ! -f "$from" ] || cmp -s "$from" "$to" || cp -v "$from" "$to" -done diff --git a/tests/lean/test_single.sh b/tests/lean/test_single.sh deleted file mode 100755 index 12d20dedbb9e..000000000000 --- a/tests/lean/test_single.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash -source ../common.sh - -# these tests don't have to succeed -# `--root` to infer same private names as in the server -# Elab.inServer to allow for arbitrary `#eval` -exec_capture lean --root=.. -DprintMessageEndPos=true -Dlinter.all=false -DElab.inServer=true "$f" || true -diff_produced diff --git a/tests/lint.py b/tests/lint.py index d1ecc4376209..a7f6000b121a 100755 --- a/tests/lint.py +++ b/tests/lint.py @@ -22,7 +22,6 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: for dir in ( "tests/compiler", - "tests/lean", "tests/lean/run", ): for glob in ( @@ -45,6 +44,7 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: for dir in ( "tests/bench/cbv", "tests/bench/inundation", + "tests/lean", "tests/lean/trust0", ): for glob in ( From 8e33934d6e0228f220d4956204762cb313cdcd0e Mon Sep 17 00:00:00 2001 From: Joscha Date: Mon, 2 Mar 2026 18:23:16 +0100 Subject: [PATCH 05/15] Complete tests/lean/run migration --- tests/CMakeLists.txt | 14 -------------- tests/lint.py | 15 +++++++-------- 2 files changed, 7 insertions(+), 22 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 2a9d9a29913e..17f19b475f1f 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -222,20 +222,6 @@ set(PART2 "") ## Tests and benchmarks ## ########################## -# LEAN RUN TESTS -file(GLOB LEANRUNTESTS "${LEAN_SOURCE_DIR}/../tests/lean/run/*.lean") -foreach(T ${LEANRUNTESTS}) - if(NOT T MATCHES "\\.#") - get_filename_component(T_NAME ${T} NAME) - cmake_path(RELATIVE_PATH T BASE_DIRECTORY ${LEAN_SOURCE_DIR}/.. OUTPUT_VARIABLE T_PATH) - add_test( - NAME "${T_PATH}" - WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean/run" - COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}" - ) - endif() -endforeach(T) - # LEAN RUN doc/examples file(GLOB LEANDOCEXS "${LEAN_SOURCE_DIR}/../doc/examples/*.lean") foreach(T ${LEANDOCEXS}) diff --git a/tests/lint.py b/tests/lint.py index a7f6000b121a..caf5883396a8 100755 --- a/tests/lint.py +++ b/tests/lint.py @@ -20,10 +20,7 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: # Directories that should no longer be used but still work for now. -for dir in ( - "tests/compiler", - "tests/lean/run", -): +for dir in ("tests/compiler",): for glob in ( f"{dir}/*.lean", f"{dir}/*.expected.out", @@ -38,15 +35,17 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: for file in Path().glob("tests/speedcenter.exec.velcom.yaml"): nag("removed file", file) -for file in Path().glob("tests/bench-radar/*"): - nag("removed dir", file) - for dir in ( + "tests/bench-radar", "tests/bench/cbv", "tests/bench/inundation", - "tests/lean", + "tests/lean/run", "tests/lean/trust0", ): + for file in Path().glob(f"{dir}/*"): + nag("removed dir", file) + +for dir in ("tests/lean",): for glob in ( f"{dir}/*.lean", f"{dir}/*.expected.out", From 0b6c8ac101650b49b8c35f5e99ae22da8f6219b3 Mon Sep 17 00:00:00 2001 From: Joscha Date: Wed, 25 Feb 2026 15:46:48 +0100 Subject: [PATCH 06/15] Migrate doc/examples --- doc/examples/.gitignore | 2 ++ doc/examples/bintree.lean.out.expected | 2 ++ doc/examples/compiler/run_test | 11 ++++++++++ doc/examples/compiler/test.lean.out.expected | 1 + doc/examples/interp.lean.out.expected | 3 +++ doc/examples/palindromes.lean.out.expected | 2 ++ doc/examples/phoas.lean.out.expected | 2 ++ doc/examples/run_test | 9 +++++++++ doc/examples/test_single.sh | 4 ---- tests/CMakeLists.txt | 21 ++------------------ tests/lint.py | 1 + 11 files changed, 35 insertions(+), 23 deletions(-) create mode 100644 doc/examples/.gitignore create mode 100644 doc/examples/bintree.lean.out.expected create mode 100755 doc/examples/compiler/run_test create mode 100644 doc/examples/compiler/test.lean.out.expected create mode 100644 doc/examples/interp.lean.out.expected create mode 100644 doc/examples/palindromes.lean.out.expected create mode 100644 doc/examples/phoas.lean.out.expected create mode 100755 doc/examples/run_test delete mode 100755 doc/examples/test_single.sh diff --git a/doc/examples/.gitignore b/doc/examples/.gitignore new file mode 100644 index 000000000000..822dedbc851b --- /dev/null +++ b/doc/examples/.gitignore @@ -0,0 +1,2 @@ +*.out.produced +*.exit.produced diff --git a/doc/examples/bintree.lean.out.expected b/doc/examples/bintree.lean.out.expected new file mode 100644 index 000000000000..8ed37666c9dd --- /dev/null +++ b/doc/examples/bintree.lean.out.expected @@ -0,0 +1,2 @@ +Tree.node (Tree.node (Tree.leaf) 1 "one" (Tree.leaf)) 2 "two" (Tree.node (Tree.leaf) 3 "three" (Tree.leaf)) +[(1, "one"), (2, "two"), (3, "three")] diff --git a/doc/examples/compiler/run_test b/doc/examples/compiler/run_test new file mode 100755 index 000000000000..e7220509c4c9 --- /dev/null +++ b/doc/examples/compiler/run_test @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +source ../../../tests/env_test.sh +source "$TEST_DIR/util.sh" + +leanmake --always-make bin + +exec_capture test.lean \ + ./build/bin/test hello world + +check_exit test.lean +check_out test.lean diff --git a/doc/examples/compiler/test.lean.out.expected b/doc/examples/compiler/test.lean.out.expected new file mode 100644 index 000000000000..1f3b70c6840a --- /dev/null +++ b/doc/examples/compiler/test.lean.out.expected @@ -0,0 +1 @@ +[hello, world] diff --git a/doc/examples/interp.lean.out.expected b/doc/examples/interp.lean.out.expected new file mode 100644 index 000000000000..cccbb7bd52f4 --- /dev/null +++ b/doc/examples/interp.lean.out.expected @@ -0,0 +1,3 @@ +30 +interp.lean:146:4: warning: declaration uses `sorry` +3628800 diff --git a/doc/examples/palindromes.lean.out.expected b/doc/examples/palindromes.lean.out.expected new file mode 100644 index 000000000000..da29283aaa47 --- /dev/null +++ b/doc/examples/palindromes.lean.out.expected @@ -0,0 +1,2 @@ +true +false diff --git a/doc/examples/phoas.lean.out.expected b/doc/examples/phoas.lean.out.expected new file mode 100644 index 000000000000..db295c1faa33 --- /dev/null +++ b/doc/examples/phoas.lean.out.expected @@ -0,0 +1,2 @@ +"(((fun x_1 => (fun x_2 => (x_1 + x_2))) 1) 2)" +"((((fun x_1 => (fun x_2 => (x_1 + x_2))) 1) 2) + 5)" diff --git a/doc/examples/run_test b/doc/examples/run_test new file mode 100755 index 000000000000..893f8eb4145b --- /dev/null +++ b/doc/examples/run_test @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +source ../../tests/env_test.sh +source "$TEST_DIR/util.sh" + +exec_capture "$1" \ + lean -Dlinter.all=false "$1" + +check_exit "$1" +check_out "$1" diff --git a/doc/examples/test_single.sh b/doc/examples/test_single.sh deleted file mode 100755 index 31388a16b8be..000000000000 --- a/doc/examples/test_single.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -source ../../tests/common.sh - -exec_check_raw lean -Dlinter.all=false "$f" diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 17f19b475f1f..a259cdfdeb29 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -222,20 +222,6 @@ set(PART2 "") ## Tests and benchmarks ## ########################## -# LEAN RUN doc/examples -file(GLOB LEANDOCEXS "${LEAN_SOURCE_DIR}/../doc/examples/*.lean") -foreach(T ${LEANDOCEXS}) - if(NOT T MATCHES "\\.#") - get_filename_component(T_NAME ${T} NAME) - cmake_path(RELATIVE_PATH T BASE_DIRECTORY ${LEAN_SOURCE_DIR}/.. OUTPUT_VARIABLE T_PATH) - add_test( - NAME "${T_PATH}" - WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../doc/examples" - COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}" - ) - endif() -endforeach(T) - # LEAN COMPILER TESTS file(GLOB LEANCOMPTESTS "${LEAN_SOURCE_DIR}/../tests/compiler/*.lean") foreach(T ${LEANCOMPTESTS}) @@ -253,11 +239,6 @@ add_test( WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/compiler/foreign" COMMAND bash -c "${LEAN_BIN}/leanmake --always-make" ) -add_test( - NAME leancomptest_doc_example - WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../doc/examples/compiler" - COMMAND bash -c "export ${TEST_VARS}; leanmake --always-make bin && ./build/bin/test hello world" -) # LEAN INTERPRETER TESTS file(GLOB LEANINTERPTESTS "${LEAN_SOURCE_DIR}/../tests/compiler/*.lean") @@ -398,6 +379,7 @@ endforeach(T) add_test(NAME lint.py COMMAND python3 lint.py WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") set_tests_properties(lint.py PROPERTIES RUN_SERIAL TRUE) +add_test_pile(../doc/examples *.lean) add_test_pile(compile *.lean BENCH PART2) add_test_pile(compile_bench *.lean BENCH PART2) add_test_pile(elab *.lean) @@ -406,6 +388,7 @@ add_test_pile(elab_fail *.lean) add_test_pile(misc *.sh) add_test_pile(misc_bench *.sh BENCH PART2) +add_test_dir(../doc/examples/compiler) add_test_dir(bench/build BENCH PART1) add_test_dir(bench/size BENCH PART1) add_test_dir(lake_bench/inundation BENCH PART2) diff --git a/tests/lint.py b/tests/lint.py index caf5883396a8..d8a5bc88164a 100755 --- a/tests/lint.py +++ b/tests/lint.py @@ -58,6 +58,7 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: # Files that use the old naming convention in the new directories. for dir in ( + "doc/examples", "tests/compile", "tests/compile_bench", "tests/elab", From d7bd408d987762d1eba5989e5dca30256d56cd74 Mon Sep 17 00:00:00 2001 From: Joscha Date: Mon, 2 Mar 2026 18:32:39 +0100 Subject: [PATCH 07/15] Remove tests/compiler/foreign It has been made obsolete by tests/lake/examples/ffi. --- tests/CMakeLists.txt | 6 --- tests/compiler/foreign/.gitignore | 1 - tests/compiler/foreign/Main.lean | 11 ------ tests/compiler/foreign/Main/S.lean | 11 ------ tests/compiler/foreign/Makefile | 40 -------------------- tests/compiler/foreign/README.md | 19 ---------- tests/compiler/foreign/myfuns.cpp | 61 ------------------------------ tests/lint.py | 1 + 8 files changed, 1 insertion(+), 149 deletions(-) delete mode 100644 tests/compiler/foreign/.gitignore delete mode 100644 tests/compiler/foreign/Main.lean delete mode 100644 tests/compiler/foreign/Main/S.lean delete mode 100644 tests/compiler/foreign/Makefile delete mode 100644 tests/compiler/foreign/README.md delete mode 100644 tests/compiler/foreign/myfuns.cpp diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a259cdfdeb29..b3bb9b387a6f 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -234,12 +234,6 @@ foreach(T ${LEANCOMPTESTS}) ) endforeach(T) -add_test( - NAME leancomptest_foreign - WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/compiler/foreign" - COMMAND bash -c "${LEAN_BIN}/leanmake --always-make" -) - # LEAN INTERPRETER TESTS file(GLOB LEANINTERPTESTS "${LEAN_SOURCE_DIR}/../tests/compiler/*.lean") foreach(T ${LEANINTERPTESTS}) diff --git a/tests/compiler/foreign/.gitignore b/tests/compiler/foreign/.gitignore deleted file mode 100644 index fcb6a2f4c6b9..000000000000 --- a/tests/compiler/foreign/.gitignore +++ /dev/null @@ -1 +0,0 @@ -build diff --git a/tests/compiler/foreign/Main.lean b/tests/compiler/foreign/Main.lean deleted file mode 100644 index 4e8cab93a90c..000000000000 --- a/tests/compiler/foreign/Main.lean +++ /dev/null @@ -1,11 +0,0 @@ -import Main.S - -def main : IO Unit := do - IO.println (mkS 10 20 "hello").addXY - IO.println (mkS 10 20 "hello").string - appendToGlobalS "foo" - appendToGlobalS "bla" - getGlobalString >>= IO.println - updateGlobalS (mkS 0 0 "world") - getGlobalString >>= IO.println - pure () diff --git a/tests/compiler/foreign/Main/S.lean b/tests/compiler/foreign/Main/S.lean deleted file mode 100644 index 5bd1d4348298..000000000000 --- a/tests/compiler/foreign/Main/S.lean +++ /dev/null @@ -1,11 +0,0 @@ -opaque SPointed : NonemptyType -def S : Type := SPointed.type -instance : Nonempty S := SPointed.property - -@[extern "lean_mk_S"] opaque mkS (x y : UInt32) (s : @& String) : S -@[extern "lean_S_add_x_y"] opaque S.addXY (s : @& S) : UInt32 -@[extern "lean_S_string"] opaque S.string (s : @& S) : String --- The following 3 externs have side effects. Thus, we put them in IO. -@[extern "lean_S_global_append"] opaque appendToGlobalS (str : @& String) : IO Unit -@[extern "lean_S_global_string"] opaque getGlobalString : IO String -@[extern "lean_S_update_global"] opaque updateGlobalS (s : @& S) : IO Unit diff --git a/tests/compiler/foreign/Makefile b/tests/compiler/foreign/Makefile deleted file mode 100644 index 37099b60fa9c..000000000000 --- a/tests/compiler/foreign/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -CXX ?= c++ -CPPFLAGS = -O3 -# TODO: use Lake instead -include lean.mk - -CPP_SRCS = myfuns.cpp -CPP_OBJS = $(addprefix $(OUT)/testcpp/,$(CPP_SRCS:.cpp=.o)) - -all: run_test run_interp - -$(OUT)/testcpp/%.o: %.cpp - @mkdir -p "$(@D)" - $(CXX) -std=c++14 -c -o $@ $< $(CPPFLAGS) `leanc --print-cflags` - -# to avoid conflicts between the system C++ stdlib needed by the above object file and the internal one used in the Lean runtime, -# we need to dynamically link the Lean runtime. - -ifeq ($(OS),Windows_NT) -# make S.so find testcpp.so - export PATH := $(BIN_OUT):$(PATH) -else -# find libleanshared.so - TEST_SHARED_LINK_FLAGS := -Wl,-rpath,`lean --print-prefix`/lib/lean -endif - -$(BIN_OUT)/testcpp.so: $(CPP_OBJS) | $(BIN_OUT) - $(CXX) -shared -o $@ $^ `leanc -shared --print-ldflags` - -$(BIN_OUT)/test: $(LIB_OUT)/libMain.a $(CPP_OBJS) | $(BIN_OUT) - $(CXX) -o $@ $^ `leanc -shared --print-ldflags` -lInit_shared -lleanshared_2 -lleanshared_1 -lleanshared $(TEST_SHARED_LINK_FLAGS) - -run_test: $(BIN_OUT)/test - $^ - -# also test interpreter; see doc/dev/ffi.md -$(BIN_OUT)/S.so: $(C_OUT)/Main/S.c $(BIN_OUT)/testcpp.so - leanc -shared -o $@ $^ - -run_interp: $(BIN_OUT)/S.so - lean --load-dynlib=$^ --run Main.lean diff --git a/tests/compiler/foreign/README.md b/tests/compiler/foreign/README.md deleted file mode 100644 index 32a4754ce094..000000000000 --- a/tests/compiler/foreign/README.md +++ /dev/null @@ -1,19 +0,0 @@ -Small project implemented using Lean and C++. -The C++ file `myfuns.cpp` wraps a C++ object using an `lean_external_object`. -The file `myfuns.cpp` exposes pure and effectful primitives. -The file `Main.lean` contains a small Lean program that uses the exported primitives. - -Build instructions -===== - -Assuming the Lean `bin/` directory (e.g. from `build/release/stage1`) is in your `PATH`, -executing `leanmake build/bin/test` will create the executable `build/bin/test`; see the -`Makefile` for further variants. - -The executable `build/bin/test` should produce the output -``` -30 -hello -foobla -world -``` diff --git a/tests/compiler/foreign/myfuns.cpp b/tests/compiler/foreign/myfuns.cpp deleted file mode 100644 index 4b99840ad74e..000000000000 --- a/tests/compiler/foreign/myfuns.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include -#include -#include - -struct S { - unsigned m_x; - unsigned m_y; - std::string m_s; - S(unsigned x, unsigned y, char const * s):m_x(x), m_y(y), m_s(s) {} -}; - -static void S_finalize(void * obj) { - delete static_cast(obj); -} - -static void S_foreach(void *, b_lean_obj_arg) { - // do nothing since `S` does not contain nested Lean objects -} - -static lean_external_class * g_S_class = nullptr; - -static inline lean_object * S_to_lean(S * s) { - if (g_S_class == nullptr) { - g_S_class = lean_register_external_class(S_finalize, S_foreach); - } - return lean_alloc_external(g_S_class, s); -} - -static inline S const * to_S(b_lean_obj_arg s) { - return static_cast(lean_get_external_data(s)); -} - -extern "C" LEAN_EXPORT lean_object * lean_mk_S(uint32_t x, uint32_t y, b_lean_obj_arg s) { - return S_to_lean(new S(x, y, lean_string_cstr(s))); -} - -extern "C" LEAN_EXPORT uint32_t lean_S_add_x_y(b_lean_obj_arg s) { - return to_S(s)->m_x + to_S(s)->m_y; -} - -extern "C" LEAN_EXPORT lean_object * lean_S_string(b_lean_obj_arg s) { - return lean_mk_string(to_S(s)->m_s.c_str()); -} - -static S g_s(0, 0, ""); - -extern "C" LEAN_EXPORT lean_object * lean_S_global_append(b_lean_obj_arg str, lean_object * /* w */) { - g_s.m_s += lean_string_cstr(str); - return lean_io_result_mk_ok(lean_box(0)); -} - -extern "C" LEAN_EXPORT lean_object * lean_S_global_string(lean_object * /* w */) { - return lean_io_result_mk_ok(lean_mk_string(g_s.m_s.c_str())); -} - -extern "C" LEAN_EXPORT lean_object * lean_S_update_global(b_lean_obj_arg s, lean_object * /* w */) { - g_s.m_x = to_S(s)->m_x; - g_s.m_y = to_S(s)->m_y; - g_s.m_s = to_S(s)->m_s; - return lean_io_result_mk_ok(lean_box(0)); -} diff --git a/tests/lint.py b/tests/lint.py index d8a5bc88164a..80139157ee73 100755 --- a/tests/lint.py +++ b/tests/lint.py @@ -39,6 +39,7 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: "tests/bench-radar", "tests/bench/cbv", "tests/bench/inundation", + "tests/compiler/foreign", "tests/lean/run", "tests/lean/trust0", ): From 700f725d19292dc02969b044f0d3a826f331d878 Mon Sep 17 00:00:00 2001 From: Joscha Date: Mon, 2 Mar 2026 18:35:54 +0100 Subject: [PATCH 08/15] Complete tests/compiler migration --- tests/CMakeLists.txt | 26 ------------------------- tests/compiler/test_single.sh | 18 ----------------- tests/compiler/test_single_interpret.sh | 5 ----- tests/lint.py | 14 +------------ 4 files changed, 1 insertion(+), 62 deletions(-) delete mode 100755 tests/compiler/test_single.sh delete mode 100755 tests/compiler/test_single_interpret.sh diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index b3bb9b387a6f..45c9e3b37934 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -222,32 +222,6 @@ set(PART2 "") ## Tests and benchmarks ## ########################## -# LEAN COMPILER TESTS -file(GLOB LEANCOMPTESTS "${LEAN_SOURCE_DIR}/../tests/compiler/*.lean") -foreach(T ${LEANCOMPTESTS}) - get_filename_component(T_NAME ${T} NAME) - cmake_path(RELATIVE_PATH T BASE_DIRECTORY ${LEAN_SOURCE_DIR}/.. OUTPUT_VARIABLE T_PATH) - add_test( - NAME "${T_PATH}" - WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/compiler" - COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}" - ) -endforeach(T) - -# LEAN INTERPRETER TESTS -file(GLOB LEANINTERPTESTS "${LEAN_SOURCE_DIR}/../tests/compiler/*.lean") -foreach(T ${LEANINTERPTESTS}) - if(NOT EXISTS "${T}.no_interpreter") - get_filename_component(T_NAME ${T} NAME) - cmake_path(RELATIVE_PATH T BASE_DIRECTORY ${LEAN_SOURCE_DIR}/.. OUTPUT_VARIABLE T_PATH) - add_test( - NAME "${T_PATH} (interpreted)" - WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/compiler" - COMMAND bash -c "${TEST_VARS} ./test_single_interpret.sh ${T_NAME}" - ) - endif() -endforeach(T) - # LEAN BENCHMARK TESTS # do not test all .lean files in bench/ file(GLOB LEANBENCHTESTS "${LEAN_SOURCE_DIR}/../tests/bench/*.lean.expected.out") diff --git a/tests/compiler/test_single.sh b/tests/compiler/test_single.sh deleted file mode 100755 index 6267b39514e7..000000000000 --- a/tests/compiler/test_single.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash -source ../common.sh - -# First check the C version actually works... -echo "running C program..." -rm "./$f.out" || true -compile_lean_c_backend -exec_check "./$f.out" -diff_produced - -# Then check the LLVM version -if lean_has_llvm_support; then - echo "running LLVM program..." - rm "./$f.out" || true - compile_lean_llvm_backend - exec_check "./$f.out" - diff_produced -fi diff --git a/tests/compiler/test_single_interpret.sh b/tests/compiler/test_single_interpret.sh deleted file mode 100755 index a4e60cda7c27..000000000000 --- a/tests/compiler/test_single_interpret.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -source ../common.sh - -exec_check lean -Dlinter.all=false --run "$f" -diff_produced diff --git a/tests/lint.py b/tests/lint.py index 80139157ee73..f8d0217be137 100755 --- a/tests/lint.py +++ b/tests/lint.py @@ -18,18 +18,6 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: ERROR = True -# Directories that should no longer be used but still work for now. - -for dir in ("tests/compiler",): - for glob in ( - f"{dir}/*.lean", - f"{dir}/*.expected.out", - f"{dir}/*.expected.ret", - ): - for file in Path().glob(glob): - nag("deprecated dir", file, fatal=False) - - # Files and directories that will no longer work. for file in Path().glob("tests/speedcenter.exec.velcom.yaml"): @@ -39,7 +27,7 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: "tests/bench-radar", "tests/bench/cbv", "tests/bench/inundation", - "tests/compiler/foreign", + "tests/compiler", "tests/lean/run", "tests/lean/trust0", ): From 4ee56a92da9ab2ab72da28578a5dbbce0aeef8a9 Mon Sep 17 00:00:00 2001 From: Joscha Date: Mon, 2 Mar 2026 18:40:07 +0100 Subject: [PATCH 09/15] Remove tests/bench tests --- tests/CMakeLists.txt | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 45c9e3b37934..c84d20605dd4 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -222,20 +222,6 @@ set(PART2 "") ## Tests and benchmarks ## ########################## -# LEAN BENCHMARK TESTS -# do not test all .lean files in bench/ -file(GLOB LEANBENCHTESTS "${LEAN_SOURCE_DIR}/../tests/bench/*.lean.expected.out") -foreach(T_OUT ${LEANBENCHTESTS}) - string(REPLACE ".expected.out" "" T ${T_OUT}) - get_filename_component(T_NAME ${T} NAME) - cmake_path(RELATIVE_PATH T BASE_DIRECTORY ${LEAN_SOURCE_DIR}/.. OUTPUT_VARIABLE T_PATH) - add_test( - NAME "${T_PATH}" - WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/bench" - COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}" - ) -endforeach(T_OUT) - file(GLOB LEANINTERPTESTS "${LEAN_SOURCE_DIR}/../tests/plugin/*.lean") foreach(T ${LEANINTERPTESTS}) get_filename_component(T_NAME ${T} NAME) From fc13529b7317237c9c4ec0734a90b3ddd8a258ad Mon Sep 17 00:00:00 2001 From: Joscha Date: Mon, 2 Mar 2026 16:08:08 +0100 Subject: [PATCH 10/15] Migrate tests/plugin --- tests/CMakeLists.txt | 13 ++----------- tests/lint.py | 1 + tests/misc_dir/plugin/.gitignore | 2 ++ tests/{ => misc_dir}/plugin/SnakeLinter.lean | 0 .../plugin/SnakeLinter.lean.out.expected} | 0 tests/misc_dir/plugin/run_test | 11 +++++++++++ tests/plugin/.gitignore | 4 ---- tests/plugin/test_single.sh | 8 -------- 8 files changed, 16 insertions(+), 23 deletions(-) create mode 100644 tests/misc_dir/plugin/.gitignore rename tests/{ => misc_dir}/plugin/SnakeLinter.lean (100%) rename tests/{plugin/SnakeLinter.lean.expected.out => misc_dir/plugin/SnakeLinter.lean.out.expected} (100%) create mode 100755 tests/misc_dir/plugin/run_test delete mode 100644 tests/plugin/.gitignore delete mode 100755 tests/plugin/test_single.sh diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c84d20605dd4..c7697f986120 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -222,17 +222,6 @@ set(PART2 "") ## Tests and benchmarks ## ########################## -file(GLOB LEANINTERPTESTS "${LEAN_SOURCE_DIR}/../tests/plugin/*.lean") -foreach(T ${LEANINTERPTESTS}) - get_filename_component(T_NAME ${T} NAME) - cmake_path(RELATIVE_PATH T BASE_DIRECTORY ${LEAN_SOURCE_DIR}/.. OUTPUT_VARIABLE T_PATH) - add_test( - NAME "${T_PATH}" - WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/plugin" - COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}" - ) -endforeach(T) - # LEAN PACKAGE TESTS file(GLOB LEANPKGTESTS "${LEAN_SOURCE_DIR}/../tests/pkg/*") foreach(T ${LEANPKGTESTS}) @@ -347,6 +336,8 @@ add_test_dir(bench/build BENCH PART1) add_test_dir(bench/size BENCH PART1) add_test_dir(lake_bench/inundation BENCH PART2) +add_dir_of_test_dirs(misc_dir) + ####################### ## Benchmark targets ## ####################### diff --git a/tests/lint.py b/tests/lint.py index f8d0217be137..840abe73c3a9 100755 --- a/tests/lint.py +++ b/tests/lint.py @@ -30,6 +30,7 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: "tests/compiler", "tests/lean/run", "tests/lean/trust0", + "tests/plugin", ): for file in Path().glob(f"{dir}/*"): nag("removed dir", file) diff --git a/tests/misc_dir/plugin/.gitignore b/tests/misc_dir/plugin/.gitignore new file mode 100644 index 000000000000..4b8a745c751d --- /dev/null +++ b/tests/misc_dir/plugin/.gitignore @@ -0,0 +1,2 @@ +*.c +*.so diff --git a/tests/plugin/SnakeLinter.lean b/tests/misc_dir/plugin/SnakeLinter.lean similarity index 100% rename from tests/plugin/SnakeLinter.lean rename to tests/misc_dir/plugin/SnakeLinter.lean diff --git a/tests/plugin/SnakeLinter.lean.expected.out b/tests/misc_dir/plugin/SnakeLinter.lean.out.expected similarity index 100% rename from tests/plugin/SnakeLinter.lean.expected.out rename to tests/misc_dir/plugin/SnakeLinter.lean.out.expected diff --git a/tests/misc_dir/plugin/run_test b/tests/misc_dir/plugin/run_test new file mode 100755 index 000000000000..f3b4a5024845 --- /dev/null +++ b/tests/misc_dir/plugin/run_test @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +source ../../env_test.sh +source "$TEST_DIR/util.sh" + +# LEAN_EXPORTING needs to be defined for .c files included in shared libraries +lean --c=SnakeLinter.c SnakeLinter.lean +leanc ${LEANC_OPTS-} -O3 -DNDEBUG -DLEAN_EXPORTING -shared -o SnakeLinter.so SnakeLinter.c + +exec_capture SnakeLinter.lean lean -Dlinter.all=false --plugin=SnakeLinter.so SnakeLinter.lean +check_exit SnakeLinter.lean 1 +check_out SnakeLinter.lean diff --git a/tests/plugin/.gitignore b/tests/plugin/.gitignore deleted file mode 100644 index 08888784f790..000000000000 --- a/tests/plugin/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.c -*.o -*.so -*.dSYM diff --git a/tests/plugin/test_single.sh b/tests/plugin/test_single.sh deleted file mode 100755 index 702438fd388b..000000000000 --- a/tests/plugin/test_single.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash -source ../common.sh - -# LEAN_EXPORTING needs to be defined for .c files included in shared libraries -compile_lean_c_backend -shared -o "${f%.lean}.so" -DLEAN_EXPORTING -expected_ret=1 -exec_check lean -Dlinter.all=false --plugin="${f%.lean}.so" "$f" -diff_produced From 12175ca798a73e2ddfac11e87659e3dcbb5c3417 Mon Sep 17 00:00:00 2001 From: Joscha Date: Wed, 4 Mar 2026 15:32:52 +0100 Subject: [PATCH 11/15] Migrate tests/lean/server --- tests/CMakeLists.txt | 15 +-------------- tests/lean/server/.gitignore | 1 - tests/lean/server/test_single.sh | 4 ---- tests/lint.py | 4 ++++ tests/{lean => }/server/content_changes.log | 0 tests/{lean => }/server/diags.lean | 4 ++-- tests/server/diags.lean.after.sh | 1 + .../diags.lean.content_diag.json} | 0 tests/{lean => }/server/edits.lean_disabled | 0 tests/{lean => }/server/edits_diag.json | 0 tests/{lean => }/server/init_exit.lean | 0 tests/{lean => }/server/init_exit_with_zed.lean | 0 tests/{lean => }/server/init_exit_worker.lean | 0 tests/{lean => }/server/init_vscode_1_47_2.log | 0 tests/{lean => }/server/init_zed_0_150_4.log | 0 tests/{lean => }/server/open_content.log | 0 tests/{lean => }/server/open_empty.log | 0 tests/server/run_test | 13 +++++++++++++ 18 files changed, 21 insertions(+), 21 deletions(-) delete mode 100644 tests/lean/server/.gitignore delete mode 100755 tests/lean/server/test_single.sh rename tests/{lean => }/server/content_changes.log (100%) rename tests/{lean => }/server/diags.lean (80%) create mode 100644 tests/server/diags.lean.after.sh rename tests/{lean/server/content_diag.json => server/diags.lean.content_diag.json} (100%) rename tests/{lean => }/server/edits.lean_disabled (100%) rename tests/{lean => }/server/edits_diag.json (100%) rename tests/{lean => }/server/init_exit.lean (100%) rename tests/{lean => }/server/init_exit_with_zed.lean (100%) rename tests/{lean => }/server/init_exit_worker.lean (100%) rename tests/{lean => }/server/init_vscode_1_47_2.log (100%) rename tests/{lean => }/server/init_zed_0_150_4.log (100%) rename tests/{lean => }/server/open_content.log (100%) rename tests/{lean => }/server/open_empty.log (100%) create mode 100755 tests/server/run_test diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c7697f986120..e55089e22ddf 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -232,20 +232,6 @@ foreach(T ${LEANPKGTESTS}) endif() endforeach(T) -# LEAN SERVER TESTS -file(GLOB LEANTESTS "${LEAN_SOURCE_DIR}/../tests/lean/server/*.lean") -foreach(T ${LEANTESTS}) - if(NOT T MATCHES "\\.#") - get_filename_component(T_NAME ${T} NAME) - cmake_path(RELATIVE_PATH T BASE_DIRECTORY ${LEAN_SOURCE_DIR}/.. OUTPUT_VARIABLE T_PATH) - add_test( - NAME "${T_PATH}" - WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean/server" - COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}" - ) - endif() -endforeach(T) - # LEAN INTERACTIVE SERVER TESTS file(GLOB LEANTESTS "${LEAN_SOURCE_DIR}/../tests/lean/interactive/*.lean") foreach(T ${LEANTESTS}) @@ -330,6 +316,7 @@ add_test_pile(elab_bench *.lean BENCH PART2) add_test_pile(elab_fail *.lean) add_test_pile(misc *.sh) add_test_pile(misc_bench *.sh BENCH PART2) +add_test_pile(server *.lean) add_test_dir(../doc/examples/compiler) add_test_dir(bench/build BENCH PART1) diff --git a/tests/lean/server/.gitignore b/tests/lean/server/.gitignore deleted file mode 100644 index 0d248bf94aa1..000000000000 --- a/tests/lean/server/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.produced diff --git a/tests/lean/server/test_single.sh b/tests/lean/server/test_single.sh deleted file mode 100755 index 5a26d89c48c8..000000000000 --- a/tests/lean/server/test_single.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -source ../../common.sh - -exec_check_raw lean -Dlinter.all=false --run "$f" diff --git a/tests/lint.py b/tests/lint.py index 840abe73c3a9..9786067bfa15 100755 --- a/tests/lint.py +++ b/tests/lint.py @@ -29,6 +29,7 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: "tests/bench/inundation", "tests/compiler", "tests/lean/run", + "tests/lean/server", "tests/lean/trust0", "tests/plugin", ): @@ -54,6 +55,9 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: "tests/elab", "tests/elab_bench", "tests/elab_fail", + "tests/misc", + "tests/misc_bench", + "tests/server", ): for glob in ( f"{dir}/*.no_interpreter", diff --git a/tests/lean/server/content_changes.log b/tests/server/content_changes.log similarity index 100% rename from tests/lean/server/content_changes.log rename to tests/server/content_changes.log diff --git a/tests/lean/server/diags.lean b/tests/server/diags.lean similarity index 80% rename from tests/lean/server/diags.lean rename to tests/server/diags.lean index b21a82403d26..0e4b19ac30bd 100644 --- a/tests/lean/server/diags.lean +++ b/tests/server/diags.lean @@ -13,10 +13,10 @@ def main : IO Unit := do hIn.flush let some diag ← Ipc.collectDiagnostics 1 "file:///test.lean" 1 | throw $ userError "Test failed, no diagnostics received." - FS.writeFile "content_diag.json.produced" (toString <| toJson (diag : JsonRpc.Message)) + FS.writeFile "diags.lean.content_diag.json.produced" (toString <| toJson (diag : JsonRpc.Message)) if let Except.ok (refDiag : JsonRpc.Notification PublishDiagnosticsParams) := - (Json.parse $ ←FS.readFile "content_diag.json") >>= fromJson? + (Json.parse $ ←FS.readFile "diags.lean.content_diag.json") >>= fromJson? then assert! (diag == refDiag) else diff --git a/tests/server/diags.lean.after.sh b/tests/server/diags.lean.after.sh new file mode 100644 index 000000000000..7b10d7a85840 --- /dev/null +++ b/tests/server/diags.lean.after.sh @@ -0,0 +1 @@ +rm -f diags.lean.content_diag.json.produced diff --git a/tests/lean/server/content_diag.json b/tests/server/diags.lean.content_diag.json similarity index 100% rename from tests/lean/server/content_diag.json rename to tests/server/diags.lean.content_diag.json diff --git a/tests/lean/server/edits.lean_disabled b/tests/server/edits.lean_disabled similarity index 100% rename from tests/lean/server/edits.lean_disabled rename to tests/server/edits.lean_disabled diff --git a/tests/lean/server/edits_diag.json b/tests/server/edits_diag.json similarity index 100% rename from tests/lean/server/edits_diag.json rename to tests/server/edits_diag.json diff --git a/tests/lean/server/init_exit.lean b/tests/server/init_exit.lean similarity index 100% rename from tests/lean/server/init_exit.lean rename to tests/server/init_exit.lean diff --git a/tests/lean/server/init_exit_with_zed.lean b/tests/server/init_exit_with_zed.lean similarity index 100% rename from tests/lean/server/init_exit_with_zed.lean rename to tests/server/init_exit_with_zed.lean diff --git a/tests/lean/server/init_exit_worker.lean b/tests/server/init_exit_worker.lean similarity index 100% rename from tests/lean/server/init_exit_worker.lean rename to tests/server/init_exit_worker.lean diff --git a/tests/lean/server/init_vscode_1_47_2.log b/tests/server/init_vscode_1_47_2.log similarity index 100% rename from tests/lean/server/init_vscode_1_47_2.log rename to tests/server/init_vscode_1_47_2.log diff --git a/tests/lean/server/init_zed_0_150_4.log b/tests/server/init_zed_0_150_4.log similarity index 100% rename from tests/lean/server/init_zed_0_150_4.log rename to tests/server/init_zed_0_150_4.log diff --git a/tests/lean/server/open_content.log b/tests/server/open_content.log similarity index 100% rename from tests/lean/server/open_content.log rename to tests/server/open_content.log diff --git a/tests/lean/server/open_empty.log b/tests/server/open_empty.log similarity index 100% rename from tests/lean/server/open_empty.log rename to tests/server/open_empty.log diff --git a/tests/server/run_test b/tests/server/run_test new file mode 100755 index 000000000000..1857cfef4c90 --- /dev/null +++ b/tests/server/run_test @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +source ../env_test.sh +source "$TEST_DIR/util.sh" + +run_before "$1" + +exec_capture "$1" \ + lean -Dlinter.all=false --run "$1" + +check_exit "$1" +check_out "$1" + +run_after "$1" From 5e9023948022ae8f39adb986e587700013ebaf4c Mon Sep 17 00:00:00 2001 From: Joscha Date: Wed, 25 Feb 2026 19:22:29 +0100 Subject: [PATCH 12/15] Migrate tests/lean/interactive --- tests/CMakeLists.txt | 15 +------- tests/README.md | 34 +++++++++++++++++++ tests/lean/interactive/1031.lean.expected.out | 0 tests/lean/interactive/1525.lean.expected.out | 0 .../isRflParallel.lean.expected.out | 0 .../interactive/stdOutput.lean.expected.out | 0 tests/lean/interactive/test_single.sh | 10 ------ tests/lint.py | 2 ++ .../1018unknowMVarIssue.lean | 0 .../1018unknowMVarIssue.lean.out.expected} | 0 .../1031.lean | 0 .../10898.lean | 0 .../10898.lean.out.expected} | 0 .../1265.lean | 0 .../1265.lean.out.expected} | 0 .../1403.lean | 0 .../1403.lean.out.expected} | 0 .../1525.lean | 0 .../1659.lean | 0 .../1659.lean.out.expected} | 0 .../2058.lean | 0 .../2058.lean.out.expected} | 0 .../2881.lean | 0 .../2881.lean.out.expected} | 0 .../4078.lean | 0 .../4078.lean.out.expected} | 0 .../4880.lean | 0 .../4880.lean.out.expected} | 0 .../533.lean | 0 .../533.lean.out.expected} | 0 .../5659.lean | 0 .../5659.lean.out.expected} | 0 .../6594.lean | 0 .../6594.lean.out.expected} | 0 .../863.lean | 0 .../863.lean.out.expected} | 0 .../Diff.lean | 0 .../Diff.lean.out.expected} | 0 .../amb.lean | 0 .../amb.lean.out.expected} | 0 .../anonHyp.lean | 0 .../anonHyp.lean.out.expected} | 0 .../autoBoundIssue.lean | 0 .../autoBoundIssue.lean.out.expected} | 0 .../builtinCodeactions.lean | 0 .../builtinCodeactions.lean.out.expected} | 0 .../cancellation.lean | 0 .../cancellation.lean.out.expected} | 0 .../catHover.lean | 0 .../catHover.lean.out.expected} | 0 .../codeActions.lean | 0 .../codeActions.lean.out.expected} | 0 .../codeaction.lean | 0 .../codeaction.lean.out.expected} | 0 .../compHeader.lean | 0 .../compHeader.lean.out.expected} | 0 .../compNamespace.lean | 0 .../compNamespace.lean.out.expected} | 0 .../completion.lean | 0 .../completion.lean.out.expected} | 0 .../completion2.lean | 0 .../completion2.lean.out.expected} | 0 .../completion3.lean | 0 .../completion3.lean.out.expected} | 0 .../completion4.lean | 0 .../completion4.lean.out.expected} | 0 .../completion5.lean | 0 .../completion5.lean.out.expected} | 0 .../completion6.lean | 0 .../completion6.lean.out.expected} | 0 .../completion7.lean | 0 .../completion7.lean.out.expected} | 0 .../completionAtPrint.lean | 0 .../completionAtPrint.lean.out.expected} | 0 .../completionBracketedDot.lean | 0 .../completionBracketedDot.lean.out.expected} | 0 .../completionCheck.lean | 0 .../completionCheck.lean.out.expected} | 0 .../completionDanglingDot.lean | 0 .../completionDanglingDot.lean.out.expected} | 0 .../completionDeprecation.lean | 0 .../completionDeprecation.lean.out.expected} | 0 .../completionEOF.lean | 0 .../completionEOF.lean.out.expected} | 0 .../completionEndSection.lean | 0 .../completionEndSection.lean.out.expected} | 0 .../completionFallback.lean | 0 .../completionFallback.lean.out.expected} | 0 .../completionFromExpectedType.lean | 0 ...pletionFromExpectedType.lean.out.expected} | 0 .../completionIStr.lean | 0 .../completionIStr.lean.out.expected} | 0 .../completionOpenNamespaces.lean | 0 ...ompletionOpenNamespaces.lean.out.expected} | 0 .../completionOption.lean | 0 .../completionOption.lean.out.expected} | 0 .../completionPrefixIssue.lean | 0 .../completionPrefixIssue.lean.out.expected} | 0 .../completionPrivateTypes.lean | 0 .../completionPrivateTypes.lean.out.expected} | 0 .../completionPrv.lean | 0 .../completionPrv.lean.out.expected} | 0 .../completionStructureInstance.lean | 0 ...letionStructureInstance.lean.out.expected} | 0 .../completionTactics.lean | 0 .../completionTactics.lean.out.expected} | 0 .../definition.lean | 0 .../definition.lean.out.expected} | 0 .../discrsIssue.lean | 0 .../discrsIssue.lean.out.expected} | 0 .../docstringLinksExamples.lean | 0 .../docstringLinksExamples.lean.out.expected} | 0 .../documentSymbols.lean | 0 .../documentSymbols.lean.out.expected} | 0 .../dotIdCompletion.lean | 0 .../dotIdCompletion.lean.out.expected} | 0 .../dottedIdentNotation.lean | 0 .../dottedIdentNotation.lean.out.expected} | 0 .../editAfterError.lean | 0 .../editAfterError.lean.out.expected} | 0 .../editCompletion.lean | 0 .../editCompletion.lean.out.expected} | 0 .../errorExplanationInteractive.lean | 0 ...rExplanationInteractive.lean.out.expected} | 0 .../expectedTypeAsGoal.lean | 0 .../expectedTypeAsGoal.lean.out.expected} | 0 .../explicitAppInstHole.lean | 0 .../explicitAppInstHole.lean.out.expected} | 0 .../findReferences.lean | 0 .../findReferences.lean.out.expected} | 0 .../foldingRange.lean | 0 .../foldingRange.lean.out.expected} | 0 .../fvarIdCollision.lean | 0 .../fvarIdCollision.lean.out.expected} | 0 .../ghostGoals.lean | 0 .../ghostGoals.lean.out.expected} | 0 .../goTo.lean | 0 .../goTo.lean.out.expected} | 0 .../goTo2.lean | 0 .../goTo2.lean.out.expected} | 0 .../goalEOF.lean | 0 .../goalEOF.lean.out.expected} | 0 .../goalIssue.lean | 0 .../goalIssue.lean.out.expected} | 0 .../goalsAccomplished.lean | 0 .../goalsAccomplished.lean.out.expected} | 0 .../guardMsgsCodeAction.lean | 0 .../guardMsgsCodeAction.lean.out.expected} | 0 .../haveInfo.lean | 0 .../haveInfo.lean.out.expected} | 0 .../highlight.lean | 0 .../highlight.lean.out.expected} | 0 .../highlightMatches.lean | 0 .../highlightMatches.lean.out.expected} | 0 .../hover.lean | 0 .../hover.lean.out.expected} | 0 .../hoverAt.lean | 0 .../hoverAt.lean.out.expected} | 0 .../hoverBinderUnderscore.lean | 0 .../hoverBinderUnderscore.lean.out.expected} | 0 .../hoverDot.lean | 0 .../hoverDot.lean.out.expected} | 0 .../hoverException.lean | 0 .../hoverException.lean.out.expected} | 0 .../hoverMatch.lean | 0 .../hoverMatch.lean.out.expected} | 0 .../hoverTacticExt.lean | 0 .../hoverTacticExt.lean.out.expected} | 0 .../importCompletion.lean | 0 .../importCompletion.lean.out.expected} | 0 .../inWordCompletion.lean | 0 .../inWordCompletion.lean.out.expected} | 0 .../incomingCallHierarchy.lean | 0 .../incomingCallHierarchy.lean.out.expected} | 0 .../incomingCallHierarchyWhere.lean | 0 ...omingCallHierarchyWhere.lean.out.expected} | 0 .../incrementalCombinator.lean | 0 .../incrementalCombinator.lean.out.expected} | 0 .../incrementalCommand.lean | 0 .../incrementalCommand.lean.out.expected} | 0 .../incrementalInduction.lean | 0 .../incrementalInduction.lean.out.expected} | 0 .../incrementalMutual.lean | 0 .../incrementalMutual.lean.out.expected} | 0 .../incrementalTactic.lean | 0 .../incrementalTactic.lean.out.expected} | 0 .../infoIssues.lean | 0 .../infoIssues.lean.out.expected} | 0 .../inlayHints.lean | 0 .../inlayHints.lean.out.expected} | 0 .../interactiveDiagnostics.lean | 0 .../interactiveDiagnostics.lean.out.expected} | 0 .../interactiveGoalGoToLoc.lean | 0 .../interactiveGoalGoToLoc.lean.out.expected} | 0 .../interactiveGoalPopups.lean | 0 .../interactiveGoalPopups.lean.out.expected} | 0 .../interactiveTermGoals.lean | 0 .../interactiveTermGoals.lean.out.expected} | 0 .../interactiveTraces.lean | 0 .../interactiveTraces.lean.out.expected} | 0 .../internalNamesIssue.lean | 0 .../internalNamesIssue.lean.out.expected} | 0 .../isRflParallel.lean | 0 .../issue4527.lean | 0 .../issue4527.lean.out.expected} | 0 .../issue5021.lean | 0 .../issue5021.lean.out.expected} | 0 .../issue5597.lean | 0 .../issue5597.lean.out.expected} | 0 .../jumpMutual.lean | 0 .../jumpMutual.lean.out.expected} | 0 .../keywordCompletion.lean | 0 .../keywordCompletion.lean.out.expected} | 0 .../lean3HoverIssue.lean | 0 .../lean3HoverIssue.lean.out.expected} | 0 .../macroGoalIssue.lean | 0 .../macroGoalIssue.lean.out.expected} | 0 .../match.lean | 0 .../match.lean.out.expected} | 0 .../matchPatternHover.lean | 0 .../matchPatternHover.lean.out.expected} | 0 .../matchStxCompletion.lean | 0 .../matchStxCompletion.lean.out.expected} | 0 .../moduleHierarchyImports.lean | 0 .../moduleHierarchyImports.lean.out.expected} | 0 .../outgoingCallHierarchy.lean | 0 .../outgoingCallHierarchy.lean.out.expected} | 0 .../partialNamespace.lean | 0 .../partialNamespace.lean.out.expected} | 0 .../plainGoal.lean | 0 .../plainGoal.lean.out.expected} | 0 .../plainTermGoal.lean | 0 .../plainTermGoal.lean.out.expected} | 0 .../ppShowLetValues.lean | 0 .../ppShowLetValues.lean.out.expected} | 0 .../rename.lean | 0 .../rename.lean.out.expected} | 0 tests/server_interactive/run_test | 16 +++++++++ .../run_test.lean} | 0 .../rwElabConst.lean | 0 .../rwElabConst.lean.out.expected} | 0 .../semanticTokens.lean | 0 .../semanticTokens.lean.out.expected} | 0 .../semanticTokensVersoDocs.lean | 0 ...semanticTokensVersoDocs.lean.out.expected} | 0 .../signatureHelp.lean | 0 .../signatureHelp.lean.out.expected} | 0 .../stdOutput.lean | 0 .../strInterpSynthError.lean | 0 .../strInterpSynthError.lean.out.expected} | 0 .../structInstFieldHints.lean | 0 .../structInstFieldHints.lean.out.expected} | 0 .../structNameParentProj.lean | 0 .../structNameParentProj.lean.out.expected} | 0 .../tacticInduction.lean | 0 .../tacticInduction.lean.out.expected} | 0 .../terminationBySuggestion.lean | 0 ...terminationBySuggestion.lean.out.expected} | 0 .../travellingCompletions.lean | 0 .../travellingCompletions.lean.out.expected} | 0 .../tryThisCodeAction.lean | 0 .../tryThisCodeAction.lean.out.expected} | 0 .../unknownIdentifierCodeActions.lean | 0 ...wnIdentifierCodeActions.lean.out.expected} | 0 .../unterminatedDocComment.lean | 0 .../unterminatedDocComment.lean.out.expected} | 0 .../userWidget.lean | 0 .../userWidget.lean.out.expected} | 0 .../workspaceSymbols.lean | 0 .../workspaceSymbols.lean.out.expected} | 0 270 files changed, 53 insertions(+), 24 deletions(-) delete mode 100644 tests/lean/interactive/1031.lean.expected.out delete mode 100644 tests/lean/interactive/1525.lean.expected.out delete mode 100644 tests/lean/interactive/isRflParallel.lean.expected.out delete mode 100644 tests/lean/interactive/stdOutput.lean.expected.out delete mode 100755 tests/lean/interactive/test_single.sh rename tests/{lean/interactive => server_interactive}/1018unknowMVarIssue.lean (100%) rename tests/{lean/interactive/1018unknowMVarIssue.lean.expected.out => server_interactive/1018unknowMVarIssue.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/1031.lean (100%) rename tests/{lean/interactive => server_interactive}/10898.lean (100%) rename tests/{lean/interactive/10898.lean.expected.out => server_interactive/10898.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/1265.lean (100%) rename tests/{lean/interactive/1265.lean.expected.out => server_interactive/1265.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/1403.lean (100%) rename tests/{lean/interactive/1403.lean.expected.out => server_interactive/1403.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/1525.lean (100%) rename tests/{lean/interactive => server_interactive}/1659.lean (100%) rename tests/{lean/interactive/1659.lean.expected.out => server_interactive/1659.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/2058.lean (100%) rename tests/{lean/interactive/2058.lean.expected.out => server_interactive/2058.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/2881.lean (100%) rename tests/{lean/interactive/2881.lean.expected.out => server_interactive/2881.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/4078.lean (100%) rename tests/{lean/interactive/4078.lean.expected.out => server_interactive/4078.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/4880.lean (100%) rename tests/{lean/interactive/4880.lean.expected.out => server_interactive/4880.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/533.lean (100%) rename tests/{lean/interactive/533.lean.expected.out => server_interactive/533.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/5659.lean (100%) rename tests/{lean/interactive/5659.lean.expected.out => server_interactive/5659.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/6594.lean (100%) rename tests/{lean/interactive/6594.lean.expected.out => server_interactive/6594.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/863.lean (100%) rename tests/{lean/interactive/863.lean.expected.out => server_interactive/863.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/Diff.lean (100%) rename tests/{lean/interactive/Diff.lean.expected.out => server_interactive/Diff.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/amb.lean (100%) rename tests/{lean/interactive/amb.lean.expected.out => server_interactive/amb.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/anonHyp.lean (100%) rename tests/{lean/interactive/anonHyp.lean.expected.out => server_interactive/anonHyp.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/autoBoundIssue.lean (100%) rename tests/{lean/interactive/autoBoundIssue.lean.expected.out => server_interactive/autoBoundIssue.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/builtinCodeactions.lean (100%) rename tests/{lean/interactive/builtinCodeactions.lean.expected.out => server_interactive/builtinCodeactions.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/cancellation.lean (100%) rename tests/{lean/interactive/cancellation.lean.expected.out => server_interactive/cancellation.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/catHover.lean (100%) rename tests/{lean/interactive/catHover.lean.expected.out => server_interactive/catHover.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/codeActions.lean (100%) rename tests/{lean/interactive/codeActions.lean.expected.out => server_interactive/codeActions.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/codeaction.lean (100%) rename tests/{lean/interactive/codeaction.lean.expected.out => server_interactive/codeaction.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/compHeader.lean (100%) rename tests/{lean/interactive/compHeader.lean.expected.out => server_interactive/compHeader.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/compNamespace.lean (100%) rename tests/{lean/interactive/compNamespace.lean.expected.out => server_interactive/compNamespace.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completion.lean (100%) rename tests/{lean/interactive/completion.lean.expected.out => server_interactive/completion.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completion2.lean (100%) rename tests/{lean/interactive/completion2.lean.expected.out => server_interactive/completion2.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completion3.lean (100%) rename tests/{lean/interactive/completion3.lean.expected.out => server_interactive/completion3.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completion4.lean (100%) rename tests/{lean/interactive/completion4.lean.expected.out => server_interactive/completion4.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completion5.lean (100%) rename tests/{lean/interactive/completion5.lean.expected.out => server_interactive/completion5.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completion6.lean (100%) rename tests/{lean/interactive/completion6.lean.expected.out => server_interactive/completion6.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completion7.lean (100%) rename tests/{lean/interactive/completion7.lean.expected.out => server_interactive/completion7.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionAtPrint.lean (100%) rename tests/{lean/interactive/completionAtPrint.lean.expected.out => server_interactive/completionAtPrint.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionBracketedDot.lean (100%) rename tests/{lean/interactive/completionBracketedDot.lean.expected.out => server_interactive/completionBracketedDot.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionCheck.lean (100%) rename tests/{lean/interactive/completionCheck.lean.expected.out => server_interactive/completionCheck.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionDanglingDot.lean (100%) rename tests/{lean/interactive/completionDanglingDot.lean.expected.out => server_interactive/completionDanglingDot.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionDeprecation.lean (100%) rename tests/{lean/interactive/completionDeprecation.lean.expected.out => server_interactive/completionDeprecation.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionEOF.lean (100%) rename tests/{lean/interactive/completionEOF.lean.expected.out => server_interactive/completionEOF.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionEndSection.lean (100%) rename tests/{lean/interactive/completionEndSection.lean.expected.out => server_interactive/completionEndSection.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionFallback.lean (100%) rename tests/{lean/interactive/completionFallback.lean.expected.out => server_interactive/completionFallback.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionFromExpectedType.lean (100%) rename tests/{lean/interactive/completionFromExpectedType.lean.expected.out => server_interactive/completionFromExpectedType.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionIStr.lean (100%) rename tests/{lean/interactive/completionIStr.lean.expected.out => server_interactive/completionIStr.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionOpenNamespaces.lean (100%) rename tests/{lean/interactive/completionOpenNamespaces.lean.expected.out => server_interactive/completionOpenNamespaces.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionOption.lean (100%) rename tests/{lean/interactive/completionOption.lean.expected.out => server_interactive/completionOption.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionPrefixIssue.lean (100%) rename tests/{lean/interactive/completionPrefixIssue.lean.expected.out => server_interactive/completionPrefixIssue.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionPrivateTypes.lean (100%) rename tests/{lean/interactive/completionPrivateTypes.lean.expected.out => server_interactive/completionPrivateTypes.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionPrv.lean (100%) rename tests/{lean/interactive/completionPrv.lean.expected.out => server_interactive/completionPrv.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionStructureInstance.lean (100%) rename tests/{lean/interactive/completionStructureInstance.lean.expected.out => server_interactive/completionStructureInstance.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/completionTactics.lean (100%) rename tests/{lean/interactive/completionTactics.lean.expected.out => server_interactive/completionTactics.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/definition.lean (100%) rename tests/{lean/interactive/definition.lean.expected.out => server_interactive/definition.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/discrsIssue.lean (100%) rename tests/{lean/interactive/discrsIssue.lean.expected.out => server_interactive/discrsIssue.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/docstringLinksExamples.lean (100%) rename tests/{lean/interactive/docstringLinksExamples.lean.expected.out => server_interactive/docstringLinksExamples.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/documentSymbols.lean (100%) rename tests/{lean/interactive/documentSymbols.lean.expected.out => server_interactive/documentSymbols.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/dotIdCompletion.lean (100%) rename tests/{lean/interactive/dotIdCompletion.lean.expected.out => server_interactive/dotIdCompletion.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/dottedIdentNotation.lean (100%) rename tests/{lean/interactive/dottedIdentNotation.lean.expected.out => server_interactive/dottedIdentNotation.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/editAfterError.lean (100%) rename tests/{lean/interactive/editAfterError.lean.expected.out => server_interactive/editAfterError.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/editCompletion.lean (100%) rename tests/{lean/interactive/editCompletion.lean.expected.out => server_interactive/editCompletion.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/errorExplanationInteractive.lean (100%) rename tests/{lean/interactive/errorExplanationInteractive.lean.expected.out => server_interactive/errorExplanationInteractive.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/expectedTypeAsGoal.lean (100%) rename tests/{lean/interactive/expectedTypeAsGoal.lean.expected.out => server_interactive/expectedTypeAsGoal.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/explicitAppInstHole.lean (100%) rename tests/{lean/interactive/explicitAppInstHole.lean.expected.out => server_interactive/explicitAppInstHole.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/findReferences.lean (100%) rename tests/{lean/interactive/findReferences.lean.expected.out => server_interactive/findReferences.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/foldingRange.lean (100%) rename tests/{lean/interactive/foldingRange.lean.expected.out => server_interactive/foldingRange.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/fvarIdCollision.lean (100%) rename tests/{lean/interactive/fvarIdCollision.lean.expected.out => server_interactive/fvarIdCollision.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/ghostGoals.lean (100%) rename tests/{lean/interactive/ghostGoals.lean.expected.out => server_interactive/ghostGoals.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/goTo.lean (100%) rename tests/{lean/interactive/goTo.lean.expected.out => server_interactive/goTo.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/goTo2.lean (100%) rename tests/{lean/interactive/goTo2.lean.expected.out => server_interactive/goTo2.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/goalEOF.lean (100%) rename tests/{lean/interactive/goalEOF.lean.expected.out => server_interactive/goalEOF.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/goalIssue.lean (100%) rename tests/{lean/interactive/goalIssue.lean.expected.out => server_interactive/goalIssue.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/goalsAccomplished.lean (100%) rename tests/{lean/interactive/goalsAccomplished.lean.expected.out => server_interactive/goalsAccomplished.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/guardMsgsCodeAction.lean (100%) rename tests/{lean/interactive/guardMsgsCodeAction.lean.expected.out => server_interactive/guardMsgsCodeAction.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/haveInfo.lean (100%) rename tests/{lean/interactive/haveInfo.lean.expected.out => server_interactive/haveInfo.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/highlight.lean (100%) rename tests/{lean/interactive/highlight.lean.expected.out => server_interactive/highlight.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/highlightMatches.lean (100%) rename tests/{lean/interactive/highlightMatches.lean.expected.out => server_interactive/highlightMatches.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/hover.lean (100%) rename tests/{lean/interactive/hover.lean.expected.out => server_interactive/hover.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/hoverAt.lean (100%) rename tests/{lean/interactive/hoverAt.lean.expected.out => server_interactive/hoverAt.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/hoverBinderUnderscore.lean (100%) rename tests/{lean/interactive/hoverBinderUnderscore.lean.expected.out => server_interactive/hoverBinderUnderscore.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/hoverDot.lean (100%) rename tests/{lean/interactive/hoverDot.lean.expected.out => server_interactive/hoverDot.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/hoverException.lean (100%) rename tests/{lean/interactive/hoverException.lean.expected.out => server_interactive/hoverException.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/hoverMatch.lean (100%) rename tests/{lean/interactive/hoverMatch.lean.expected.out => server_interactive/hoverMatch.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/hoverTacticExt.lean (100%) rename tests/{lean/interactive/hoverTacticExt.lean.expected.out => server_interactive/hoverTacticExt.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/importCompletion.lean (100%) rename tests/{lean/interactive/importCompletion.lean.expected.out => server_interactive/importCompletion.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/inWordCompletion.lean (100%) rename tests/{lean/interactive/inWordCompletion.lean.expected.out => server_interactive/inWordCompletion.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/incomingCallHierarchy.lean (100%) rename tests/{lean/interactive/incomingCallHierarchy.lean.expected.out => server_interactive/incomingCallHierarchy.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/incomingCallHierarchyWhere.lean (100%) rename tests/{lean/interactive/incomingCallHierarchyWhere.lean.expected.out => server_interactive/incomingCallHierarchyWhere.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/incrementalCombinator.lean (100%) rename tests/{lean/interactive/incrementalCombinator.lean.expected.out => server_interactive/incrementalCombinator.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/incrementalCommand.lean (100%) rename tests/{lean/interactive/incrementalCommand.lean.expected.out => server_interactive/incrementalCommand.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/incrementalInduction.lean (100%) rename tests/{lean/interactive/incrementalInduction.lean.expected.out => server_interactive/incrementalInduction.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/incrementalMutual.lean (100%) rename tests/{lean/interactive/incrementalMutual.lean.expected.out => server_interactive/incrementalMutual.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/incrementalTactic.lean (100%) rename tests/{lean/interactive/incrementalTactic.lean.expected.out => server_interactive/incrementalTactic.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/infoIssues.lean (100%) rename tests/{lean/interactive/infoIssues.lean.expected.out => server_interactive/infoIssues.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/inlayHints.lean (100%) rename tests/{lean/interactive/inlayHints.lean.expected.out => server_interactive/inlayHints.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/interactiveDiagnostics.lean (100%) rename tests/{lean/interactive/interactiveDiagnostics.lean.expected.out => server_interactive/interactiveDiagnostics.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/interactiveGoalGoToLoc.lean (100%) rename tests/{lean/interactive/interactiveGoalGoToLoc.lean.expected.out => server_interactive/interactiveGoalGoToLoc.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/interactiveGoalPopups.lean (100%) rename tests/{lean/interactive/interactiveGoalPopups.lean.expected.out => server_interactive/interactiveGoalPopups.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/interactiveTermGoals.lean (100%) rename tests/{lean/interactive/interactiveTermGoals.lean.expected.out => server_interactive/interactiveTermGoals.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/interactiveTraces.lean (100%) rename tests/{lean/interactive/interactiveTraces.lean.expected.out => server_interactive/interactiveTraces.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/internalNamesIssue.lean (100%) rename tests/{lean/interactive/internalNamesIssue.lean.expected.out => server_interactive/internalNamesIssue.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/isRflParallel.lean (100%) rename tests/{lean/interactive => server_interactive}/issue4527.lean (100%) rename tests/{lean/interactive/issue4527.lean.expected.out => server_interactive/issue4527.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/issue5021.lean (100%) rename tests/{lean/interactive/issue5021.lean.expected.out => server_interactive/issue5021.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/issue5597.lean (100%) rename tests/{lean/interactive/issue5597.lean.expected.out => server_interactive/issue5597.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/jumpMutual.lean (100%) rename tests/{lean/interactive/jumpMutual.lean.expected.out => server_interactive/jumpMutual.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/keywordCompletion.lean (100%) rename tests/{lean/interactive/keywordCompletion.lean.expected.out => server_interactive/keywordCompletion.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/lean3HoverIssue.lean (100%) rename tests/{lean/interactive/lean3HoverIssue.lean.expected.out => server_interactive/lean3HoverIssue.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/macroGoalIssue.lean (100%) rename tests/{lean/interactive/macroGoalIssue.lean.expected.out => server_interactive/macroGoalIssue.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/match.lean (100%) rename tests/{lean/interactive/match.lean.expected.out => server_interactive/match.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/matchPatternHover.lean (100%) rename tests/{lean/interactive/matchPatternHover.lean.expected.out => server_interactive/matchPatternHover.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/matchStxCompletion.lean (100%) rename tests/{lean/interactive/matchStxCompletion.lean.expected.out => server_interactive/matchStxCompletion.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/moduleHierarchyImports.lean (100%) rename tests/{lean/interactive/moduleHierarchyImports.lean.expected.out => server_interactive/moduleHierarchyImports.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/outgoingCallHierarchy.lean (100%) rename tests/{lean/interactive/outgoingCallHierarchy.lean.expected.out => server_interactive/outgoingCallHierarchy.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/partialNamespace.lean (100%) rename tests/{lean/interactive/partialNamespace.lean.expected.out => server_interactive/partialNamespace.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/plainGoal.lean (100%) rename tests/{lean/interactive/plainGoal.lean.expected.out => server_interactive/plainGoal.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/plainTermGoal.lean (100%) rename tests/{lean/interactive/plainTermGoal.lean.expected.out => server_interactive/plainTermGoal.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/ppShowLetValues.lean (100%) rename tests/{lean/interactive/ppShowLetValues.lean.expected.out => server_interactive/ppShowLetValues.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/rename.lean (100%) rename tests/{lean/interactive/rename.lean.expected.out => server_interactive/rename.lean.out.expected} (100%) create mode 100755 tests/server_interactive/run_test rename tests/{lean/interactive/run.lean => server_interactive/run_test.lean} (100%) rename tests/{lean/interactive => server_interactive}/rwElabConst.lean (100%) rename tests/{lean/interactive/rwElabConst.lean.expected.out => server_interactive/rwElabConst.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/semanticTokens.lean (100%) rename tests/{lean/interactive/semanticTokens.lean.expected.out => server_interactive/semanticTokens.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/semanticTokensVersoDocs.lean (100%) rename tests/{lean/interactive/semanticTokensVersoDocs.lean.expected.out => server_interactive/semanticTokensVersoDocs.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/signatureHelp.lean (100%) rename tests/{lean/interactive/signatureHelp.lean.expected.out => server_interactive/signatureHelp.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/stdOutput.lean (100%) rename tests/{lean/interactive => server_interactive}/strInterpSynthError.lean (100%) rename tests/{lean/interactive/strInterpSynthError.lean.expected.out => server_interactive/strInterpSynthError.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/structInstFieldHints.lean (100%) rename tests/{lean/interactive/structInstFieldHints.lean.expected.out => server_interactive/structInstFieldHints.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/structNameParentProj.lean (100%) rename tests/{lean/interactive/structNameParentProj.lean.expected.out => server_interactive/structNameParentProj.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/tacticInduction.lean (100%) rename tests/{lean/interactive/tacticInduction.lean.expected.out => server_interactive/tacticInduction.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/terminationBySuggestion.lean (100%) rename tests/{lean/interactive/terminationBySuggestion.lean.expected.out => server_interactive/terminationBySuggestion.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/travellingCompletions.lean (100%) rename tests/{lean/interactive/travellingCompletions.lean.expected.out => server_interactive/travellingCompletions.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/tryThisCodeAction.lean (100%) rename tests/{lean/interactive/tryThisCodeAction.lean.expected.out => server_interactive/tryThisCodeAction.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/unknownIdentifierCodeActions.lean (100%) rename tests/{lean/interactive/unknownIdentifierCodeActions.lean.expected.out => server_interactive/unknownIdentifierCodeActions.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/unterminatedDocComment.lean (100%) rename tests/{lean/interactive/unterminatedDocComment.lean.expected.out => server_interactive/unterminatedDocComment.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/userWidget.lean (100%) rename tests/{lean/interactive/userWidget.lean.expected.out => server_interactive/userWidget.lean.out.expected} (100%) rename tests/{lean/interactive => server_interactive}/workspaceSymbols.lean (100%) rename tests/{lean/interactive/workspaceSymbols.lean.expected.out => server_interactive/workspaceSymbols.lean.out.expected} (100%) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index e55089e22ddf..b8fe38a80931 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -232,20 +232,6 @@ foreach(T ${LEANPKGTESTS}) endif() endforeach(T) -# LEAN INTERACTIVE SERVER TESTS -file(GLOB LEANTESTS "${LEAN_SOURCE_DIR}/../tests/lean/interactive/*.lean") -foreach(T ${LEANTESTS}) - if(NOT T MATCHES "\\.#" AND NOT T MATCHES "run.lean") - get_filename_component(T_NAME ${T} NAME) - cmake_path(RELATIVE_PATH T BASE_DIRECTORY ${LEAN_SOURCE_DIR}/.. OUTPUT_VARIABLE T_PATH) - add_test( - NAME "${T_PATH}" - WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean/interactive" - COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}" - ) - endif() -endforeach(T) - # LEAN INTERACTIVE PROJECT SERVER TESTS file(GLOB_RECURSE LEANTESTS "${LEAN_SOURCE_DIR}/../tests/lean/interactive/projects/*Test.lean") foreach(T ${LEANTESTS}) @@ -317,6 +303,7 @@ add_test_pile(elab_fail *.lean) add_test_pile(misc *.sh) add_test_pile(misc_bench *.sh BENCH PART2) add_test_pile(server *.lean) +add_test_pile(server_interactive *.lean) add_test_dir(../doc/examples/compiler) add_test_dir(bench/build BENCH PART1) diff --git a/tests/README.md b/tests/README.md index b8091476b7c0..67315eb532b2 100644 --- a/tests/README.md +++ b/tests/README.md @@ -39,6 +39,8 @@ Benchmarks belonging to the old framework are not included in this description. Like `elab`, but expecting an exit code of 1 instead of 0. - `elab_bench`: Like `elab`, but measuring the elaboration performance. +- `server`, `server_interactive`: + Test LSP server requests. - `lake_bench`: Benchmark directories that measure lake performance. - `misc`: @@ -251,3 +253,35 @@ These bash variables (set via `.init.sh`) are used by the run script: - `TEST_ARGS`: A bash array of arguments to the compiled (or interpreted) program. Check `TEST_BENCH` if you want to specify more intense parameters for benchmarks. + +## The `interactive` test pile + +These tests are designed to test LSP server requests at a given position in the input file. +Each `.lean` file contains comments that indicate how to simulate a client request at a position, +using a `--^` point to the line position. + +Example: + +```lean,ignore +open Foo in +theorem tst2 (h : a ≤ b) : a + 2 ≤ b + 2 := +Bla. + --^ completion +``` + +In this example, the test driver will simulate an auto-completion request at `Bla.`. +The expected output is stored in the corresponding `.out.expected` file +in the json format that is part of the +[Language Server Protocol](https://microsoft.github.io/language-server-protocol/). + +This can also be used to test the following additional requests: + +``` +--^ textDocument/hover +--^ textDocument/typeDefinition +--^ textDocument/definition +--^ $/lean/plainGoal +--^ $/lean/plainTermGoal +--^ insert: ... +--^ collectDiagnostics +``` diff --git a/tests/lean/interactive/1031.lean.expected.out b/tests/lean/interactive/1031.lean.expected.out deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/tests/lean/interactive/1525.lean.expected.out b/tests/lean/interactive/1525.lean.expected.out deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/tests/lean/interactive/isRflParallel.lean.expected.out b/tests/lean/interactive/isRflParallel.lean.expected.out deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/tests/lean/interactive/stdOutput.lean.expected.out b/tests/lean/interactive/stdOutput.lean.expected.out deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/tests/lean/interactive/test_single.sh b/tests/lean/interactive/test_single.sh deleted file mode 100755 index b0dc01580d6c..000000000000 --- a/tests/lean/interactive/test_single.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash -source ../../common.sh - -# IO.Process.exit (used by the file worker) seems to be incompatible with LSAN -# TODO: investigate or work around -export ASAN_OPTIONS=detect_leaks=0 - -# these tests don't have to succeed -exec_capture lean -Dlinter.all=false --run run.lean "$f" || true -diff_produced diff --git a/tests/lint.py b/tests/lint.py index 9786067bfa15..b269907f4e0d 100755 --- a/tests/lint.py +++ b/tests/lint.py @@ -28,6 +28,7 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: "tests/bench/cbv", "tests/bench/inundation", "tests/compiler", + "tests/lean/interactive", "tests/lean/run", "tests/lean/server", "tests/lean/trust0", @@ -58,6 +59,7 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: "tests/misc", "tests/misc_bench", "tests/server", + "tests/server_interactive", ): for glob in ( f"{dir}/*.no_interpreter", diff --git a/tests/lean/interactive/1018unknowMVarIssue.lean b/tests/server_interactive/1018unknowMVarIssue.lean similarity index 100% rename from tests/lean/interactive/1018unknowMVarIssue.lean rename to tests/server_interactive/1018unknowMVarIssue.lean diff --git a/tests/lean/interactive/1018unknowMVarIssue.lean.expected.out b/tests/server_interactive/1018unknowMVarIssue.lean.out.expected similarity index 100% rename from tests/lean/interactive/1018unknowMVarIssue.lean.expected.out rename to tests/server_interactive/1018unknowMVarIssue.lean.out.expected diff --git a/tests/lean/interactive/1031.lean b/tests/server_interactive/1031.lean similarity index 100% rename from tests/lean/interactive/1031.lean rename to tests/server_interactive/1031.lean diff --git a/tests/lean/interactive/10898.lean b/tests/server_interactive/10898.lean similarity index 100% rename from tests/lean/interactive/10898.lean rename to tests/server_interactive/10898.lean diff --git a/tests/lean/interactive/10898.lean.expected.out b/tests/server_interactive/10898.lean.out.expected similarity index 100% rename from tests/lean/interactive/10898.lean.expected.out rename to tests/server_interactive/10898.lean.out.expected diff --git a/tests/lean/interactive/1265.lean b/tests/server_interactive/1265.lean similarity index 100% rename from tests/lean/interactive/1265.lean rename to tests/server_interactive/1265.lean diff --git a/tests/lean/interactive/1265.lean.expected.out b/tests/server_interactive/1265.lean.out.expected similarity index 100% rename from tests/lean/interactive/1265.lean.expected.out rename to tests/server_interactive/1265.lean.out.expected diff --git a/tests/lean/interactive/1403.lean b/tests/server_interactive/1403.lean similarity index 100% rename from tests/lean/interactive/1403.lean rename to tests/server_interactive/1403.lean diff --git a/tests/lean/interactive/1403.lean.expected.out b/tests/server_interactive/1403.lean.out.expected similarity index 100% rename from tests/lean/interactive/1403.lean.expected.out rename to tests/server_interactive/1403.lean.out.expected diff --git a/tests/lean/interactive/1525.lean b/tests/server_interactive/1525.lean similarity index 100% rename from tests/lean/interactive/1525.lean rename to tests/server_interactive/1525.lean diff --git a/tests/lean/interactive/1659.lean b/tests/server_interactive/1659.lean similarity index 100% rename from tests/lean/interactive/1659.lean rename to tests/server_interactive/1659.lean diff --git a/tests/lean/interactive/1659.lean.expected.out b/tests/server_interactive/1659.lean.out.expected similarity index 100% rename from tests/lean/interactive/1659.lean.expected.out rename to tests/server_interactive/1659.lean.out.expected diff --git a/tests/lean/interactive/2058.lean b/tests/server_interactive/2058.lean similarity index 100% rename from tests/lean/interactive/2058.lean rename to tests/server_interactive/2058.lean diff --git a/tests/lean/interactive/2058.lean.expected.out b/tests/server_interactive/2058.lean.out.expected similarity index 100% rename from tests/lean/interactive/2058.lean.expected.out rename to tests/server_interactive/2058.lean.out.expected diff --git a/tests/lean/interactive/2881.lean b/tests/server_interactive/2881.lean similarity index 100% rename from tests/lean/interactive/2881.lean rename to tests/server_interactive/2881.lean diff --git a/tests/lean/interactive/2881.lean.expected.out b/tests/server_interactive/2881.lean.out.expected similarity index 100% rename from tests/lean/interactive/2881.lean.expected.out rename to tests/server_interactive/2881.lean.out.expected diff --git a/tests/lean/interactive/4078.lean b/tests/server_interactive/4078.lean similarity index 100% rename from tests/lean/interactive/4078.lean rename to tests/server_interactive/4078.lean diff --git a/tests/lean/interactive/4078.lean.expected.out b/tests/server_interactive/4078.lean.out.expected similarity index 100% rename from tests/lean/interactive/4078.lean.expected.out rename to tests/server_interactive/4078.lean.out.expected diff --git a/tests/lean/interactive/4880.lean b/tests/server_interactive/4880.lean similarity index 100% rename from tests/lean/interactive/4880.lean rename to tests/server_interactive/4880.lean diff --git a/tests/lean/interactive/4880.lean.expected.out b/tests/server_interactive/4880.lean.out.expected similarity index 100% rename from tests/lean/interactive/4880.lean.expected.out rename to tests/server_interactive/4880.lean.out.expected diff --git a/tests/lean/interactive/533.lean b/tests/server_interactive/533.lean similarity index 100% rename from tests/lean/interactive/533.lean rename to tests/server_interactive/533.lean diff --git a/tests/lean/interactive/533.lean.expected.out b/tests/server_interactive/533.lean.out.expected similarity index 100% rename from tests/lean/interactive/533.lean.expected.out rename to tests/server_interactive/533.lean.out.expected diff --git a/tests/lean/interactive/5659.lean b/tests/server_interactive/5659.lean similarity index 100% rename from tests/lean/interactive/5659.lean rename to tests/server_interactive/5659.lean diff --git a/tests/lean/interactive/5659.lean.expected.out b/tests/server_interactive/5659.lean.out.expected similarity index 100% rename from tests/lean/interactive/5659.lean.expected.out rename to tests/server_interactive/5659.lean.out.expected diff --git a/tests/lean/interactive/6594.lean b/tests/server_interactive/6594.lean similarity index 100% rename from tests/lean/interactive/6594.lean rename to tests/server_interactive/6594.lean diff --git a/tests/lean/interactive/6594.lean.expected.out b/tests/server_interactive/6594.lean.out.expected similarity index 100% rename from tests/lean/interactive/6594.lean.expected.out rename to tests/server_interactive/6594.lean.out.expected diff --git a/tests/lean/interactive/863.lean b/tests/server_interactive/863.lean similarity index 100% rename from tests/lean/interactive/863.lean rename to tests/server_interactive/863.lean diff --git a/tests/lean/interactive/863.lean.expected.out b/tests/server_interactive/863.lean.out.expected similarity index 100% rename from tests/lean/interactive/863.lean.expected.out rename to tests/server_interactive/863.lean.out.expected diff --git a/tests/lean/interactive/Diff.lean b/tests/server_interactive/Diff.lean similarity index 100% rename from tests/lean/interactive/Diff.lean rename to tests/server_interactive/Diff.lean diff --git a/tests/lean/interactive/Diff.lean.expected.out b/tests/server_interactive/Diff.lean.out.expected similarity index 100% rename from tests/lean/interactive/Diff.lean.expected.out rename to tests/server_interactive/Diff.lean.out.expected diff --git a/tests/lean/interactive/amb.lean b/tests/server_interactive/amb.lean similarity index 100% rename from tests/lean/interactive/amb.lean rename to tests/server_interactive/amb.lean diff --git a/tests/lean/interactive/amb.lean.expected.out b/tests/server_interactive/amb.lean.out.expected similarity index 100% rename from tests/lean/interactive/amb.lean.expected.out rename to tests/server_interactive/amb.lean.out.expected diff --git a/tests/lean/interactive/anonHyp.lean b/tests/server_interactive/anonHyp.lean similarity index 100% rename from tests/lean/interactive/anonHyp.lean rename to tests/server_interactive/anonHyp.lean diff --git a/tests/lean/interactive/anonHyp.lean.expected.out b/tests/server_interactive/anonHyp.lean.out.expected similarity index 100% rename from tests/lean/interactive/anonHyp.lean.expected.out rename to tests/server_interactive/anonHyp.lean.out.expected diff --git a/tests/lean/interactive/autoBoundIssue.lean b/tests/server_interactive/autoBoundIssue.lean similarity index 100% rename from tests/lean/interactive/autoBoundIssue.lean rename to tests/server_interactive/autoBoundIssue.lean diff --git a/tests/lean/interactive/autoBoundIssue.lean.expected.out b/tests/server_interactive/autoBoundIssue.lean.out.expected similarity index 100% rename from tests/lean/interactive/autoBoundIssue.lean.expected.out rename to tests/server_interactive/autoBoundIssue.lean.out.expected diff --git a/tests/lean/interactive/builtinCodeactions.lean b/tests/server_interactive/builtinCodeactions.lean similarity index 100% rename from tests/lean/interactive/builtinCodeactions.lean rename to tests/server_interactive/builtinCodeactions.lean diff --git a/tests/lean/interactive/builtinCodeactions.lean.expected.out b/tests/server_interactive/builtinCodeactions.lean.out.expected similarity index 100% rename from tests/lean/interactive/builtinCodeactions.lean.expected.out rename to tests/server_interactive/builtinCodeactions.lean.out.expected diff --git a/tests/lean/interactive/cancellation.lean b/tests/server_interactive/cancellation.lean similarity index 100% rename from tests/lean/interactive/cancellation.lean rename to tests/server_interactive/cancellation.lean diff --git a/tests/lean/interactive/cancellation.lean.expected.out b/tests/server_interactive/cancellation.lean.out.expected similarity index 100% rename from tests/lean/interactive/cancellation.lean.expected.out rename to tests/server_interactive/cancellation.lean.out.expected diff --git a/tests/lean/interactive/catHover.lean b/tests/server_interactive/catHover.lean similarity index 100% rename from tests/lean/interactive/catHover.lean rename to tests/server_interactive/catHover.lean diff --git a/tests/lean/interactive/catHover.lean.expected.out b/tests/server_interactive/catHover.lean.out.expected similarity index 100% rename from tests/lean/interactive/catHover.lean.expected.out rename to tests/server_interactive/catHover.lean.out.expected diff --git a/tests/lean/interactive/codeActions.lean b/tests/server_interactive/codeActions.lean similarity index 100% rename from tests/lean/interactive/codeActions.lean rename to tests/server_interactive/codeActions.lean diff --git a/tests/lean/interactive/codeActions.lean.expected.out b/tests/server_interactive/codeActions.lean.out.expected similarity index 100% rename from tests/lean/interactive/codeActions.lean.expected.out rename to tests/server_interactive/codeActions.lean.out.expected diff --git a/tests/lean/interactive/codeaction.lean b/tests/server_interactive/codeaction.lean similarity index 100% rename from tests/lean/interactive/codeaction.lean rename to tests/server_interactive/codeaction.lean diff --git a/tests/lean/interactive/codeaction.lean.expected.out b/tests/server_interactive/codeaction.lean.out.expected similarity index 100% rename from tests/lean/interactive/codeaction.lean.expected.out rename to tests/server_interactive/codeaction.lean.out.expected diff --git a/tests/lean/interactive/compHeader.lean b/tests/server_interactive/compHeader.lean similarity index 100% rename from tests/lean/interactive/compHeader.lean rename to tests/server_interactive/compHeader.lean diff --git a/tests/lean/interactive/compHeader.lean.expected.out b/tests/server_interactive/compHeader.lean.out.expected similarity index 100% rename from tests/lean/interactive/compHeader.lean.expected.out rename to tests/server_interactive/compHeader.lean.out.expected diff --git a/tests/lean/interactive/compNamespace.lean b/tests/server_interactive/compNamespace.lean similarity index 100% rename from tests/lean/interactive/compNamespace.lean rename to tests/server_interactive/compNamespace.lean diff --git a/tests/lean/interactive/compNamespace.lean.expected.out b/tests/server_interactive/compNamespace.lean.out.expected similarity index 100% rename from tests/lean/interactive/compNamespace.lean.expected.out rename to tests/server_interactive/compNamespace.lean.out.expected diff --git a/tests/lean/interactive/completion.lean b/tests/server_interactive/completion.lean similarity index 100% rename from tests/lean/interactive/completion.lean rename to tests/server_interactive/completion.lean diff --git a/tests/lean/interactive/completion.lean.expected.out b/tests/server_interactive/completion.lean.out.expected similarity index 100% rename from tests/lean/interactive/completion.lean.expected.out rename to tests/server_interactive/completion.lean.out.expected diff --git a/tests/lean/interactive/completion2.lean b/tests/server_interactive/completion2.lean similarity index 100% rename from tests/lean/interactive/completion2.lean rename to tests/server_interactive/completion2.lean diff --git a/tests/lean/interactive/completion2.lean.expected.out b/tests/server_interactive/completion2.lean.out.expected similarity index 100% rename from tests/lean/interactive/completion2.lean.expected.out rename to tests/server_interactive/completion2.lean.out.expected diff --git a/tests/lean/interactive/completion3.lean b/tests/server_interactive/completion3.lean similarity index 100% rename from tests/lean/interactive/completion3.lean rename to tests/server_interactive/completion3.lean diff --git a/tests/lean/interactive/completion3.lean.expected.out b/tests/server_interactive/completion3.lean.out.expected similarity index 100% rename from tests/lean/interactive/completion3.lean.expected.out rename to tests/server_interactive/completion3.lean.out.expected diff --git a/tests/lean/interactive/completion4.lean b/tests/server_interactive/completion4.lean similarity index 100% rename from tests/lean/interactive/completion4.lean rename to tests/server_interactive/completion4.lean diff --git a/tests/lean/interactive/completion4.lean.expected.out b/tests/server_interactive/completion4.lean.out.expected similarity index 100% rename from tests/lean/interactive/completion4.lean.expected.out rename to tests/server_interactive/completion4.lean.out.expected diff --git a/tests/lean/interactive/completion5.lean b/tests/server_interactive/completion5.lean similarity index 100% rename from tests/lean/interactive/completion5.lean rename to tests/server_interactive/completion5.lean diff --git a/tests/lean/interactive/completion5.lean.expected.out b/tests/server_interactive/completion5.lean.out.expected similarity index 100% rename from tests/lean/interactive/completion5.lean.expected.out rename to tests/server_interactive/completion5.lean.out.expected diff --git a/tests/lean/interactive/completion6.lean b/tests/server_interactive/completion6.lean similarity index 100% rename from tests/lean/interactive/completion6.lean rename to tests/server_interactive/completion6.lean diff --git a/tests/lean/interactive/completion6.lean.expected.out b/tests/server_interactive/completion6.lean.out.expected similarity index 100% rename from tests/lean/interactive/completion6.lean.expected.out rename to tests/server_interactive/completion6.lean.out.expected diff --git a/tests/lean/interactive/completion7.lean b/tests/server_interactive/completion7.lean similarity index 100% rename from tests/lean/interactive/completion7.lean rename to tests/server_interactive/completion7.lean diff --git a/tests/lean/interactive/completion7.lean.expected.out b/tests/server_interactive/completion7.lean.out.expected similarity index 100% rename from tests/lean/interactive/completion7.lean.expected.out rename to tests/server_interactive/completion7.lean.out.expected diff --git a/tests/lean/interactive/completionAtPrint.lean b/tests/server_interactive/completionAtPrint.lean similarity index 100% rename from tests/lean/interactive/completionAtPrint.lean rename to tests/server_interactive/completionAtPrint.lean diff --git a/tests/lean/interactive/completionAtPrint.lean.expected.out b/tests/server_interactive/completionAtPrint.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionAtPrint.lean.expected.out rename to tests/server_interactive/completionAtPrint.lean.out.expected diff --git a/tests/lean/interactive/completionBracketedDot.lean b/tests/server_interactive/completionBracketedDot.lean similarity index 100% rename from tests/lean/interactive/completionBracketedDot.lean rename to tests/server_interactive/completionBracketedDot.lean diff --git a/tests/lean/interactive/completionBracketedDot.lean.expected.out b/tests/server_interactive/completionBracketedDot.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionBracketedDot.lean.expected.out rename to tests/server_interactive/completionBracketedDot.lean.out.expected diff --git a/tests/lean/interactive/completionCheck.lean b/tests/server_interactive/completionCheck.lean similarity index 100% rename from tests/lean/interactive/completionCheck.lean rename to tests/server_interactive/completionCheck.lean diff --git a/tests/lean/interactive/completionCheck.lean.expected.out b/tests/server_interactive/completionCheck.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionCheck.lean.expected.out rename to tests/server_interactive/completionCheck.lean.out.expected diff --git a/tests/lean/interactive/completionDanglingDot.lean b/tests/server_interactive/completionDanglingDot.lean similarity index 100% rename from tests/lean/interactive/completionDanglingDot.lean rename to tests/server_interactive/completionDanglingDot.lean diff --git a/tests/lean/interactive/completionDanglingDot.lean.expected.out b/tests/server_interactive/completionDanglingDot.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionDanglingDot.lean.expected.out rename to tests/server_interactive/completionDanglingDot.lean.out.expected diff --git a/tests/lean/interactive/completionDeprecation.lean b/tests/server_interactive/completionDeprecation.lean similarity index 100% rename from tests/lean/interactive/completionDeprecation.lean rename to tests/server_interactive/completionDeprecation.lean diff --git a/tests/lean/interactive/completionDeprecation.lean.expected.out b/tests/server_interactive/completionDeprecation.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionDeprecation.lean.expected.out rename to tests/server_interactive/completionDeprecation.lean.out.expected diff --git a/tests/lean/interactive/completionEOF.lean b/tests/server_interactive/completionEOF.lean similarity index 100% rename from tests/lean/interactive/completionEOF.lean rename to tests/server_interactive/completionEOF.lean diff --git a/tests/lean/interactive/completionEOF.lean.expected.out b/tests/server_interactive/completionEOF.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionEOF.lean.expected.out rename to tests/server_interactive/completionEOF.lean.out.expected diff --git a/tests/lean/interactive/completionEndSection.lean b/tests/server_interactive/completionEndSection.lean similarity index 100% rename from tests/lean/interactive/completionEndSection.lean rename to tests/server_interactive/completionEndSection.lean diff --git a/tests/lean/interactive/completionEndSection.lean.expected.out b/tests/server_interactive/completionEndSection.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionEndSection.lean.expected.out rename to tests/server_interactive/completionEndSection.lean.out.expected diff --git a/tests/lean/interactive/completionFallback.lean b/tests/server_interactive/completionFallback.lean similarity index 100% rename from tests/lean/interactive/completionFallback.lean rename to tests/server_interactive/completionFallback.lean diff --git a/tests/lean/interactive/completionFallback.lean.expected.out b/tests/server_interactive/completionFallback.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionFallback.lean.expected.out rename to tests/server_interactive/completionFallback.lean.out.expected diff --git a/tests/lean/interactive/completionFromExpectedType.lean b/tests/server_interactive/completionFromExpectedType.lean similarity index 100% rename from tests/lean/interactive/completionFromExpectedType.lean rename to tests/server_interactive/completionFromExpectedType.lean diff --git a/tests/lean/interactive/completionFromExpectedType.lean.expected.out b/tests/server_interactive/completionFromExpectedType.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionFromExpectedType.lean.expected.out rename to tests/server_interactive/completionFromExpectedType.lean.out.expected diff --git a/tests/lean/interactive/completionIStr.lean b/tests/server_interactive/completionIStr.lean similarity index 100% rename from tests/lean/interactive/completionIStr.lean rename to tests/server_interactive/completionIStr.lean diff --git a/tests/lean/interactive/completionIStr.lean.expected.out b/tests/server_interactive/completionIStr.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionIStr.lean.expected.out rename to tests/server_interactive/completionIStr.lean.out.expected diff --git a/tests/lean/interactive/completionOpenNamespaces.lean b/tests/server_interactive/completionOpenNamespaces.lean similarity index 100% rename from tests/lean/interactive/completionOpenNamespaces.lean rename to tests/server_interactive/completionOpenNamespaces.lean diff --git a/tests/lean/interactive/completionOpenNamespaces.lean.expected.out b/tests/server_interactive/completionOpenNamespaces.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionOpenNamespaces.lean.expected.out rename to tests/server_interactive/completionOpenNamespaces.lean.out.expected diff --git a/tests/lean/interactive/completionOption.lean b/tests/server_interactive/completionOption.lean similarity index 100% rename from tests/lean/interactive/completionOption.lean rename to tests/server_interactive/completionOption.lean diff --git a/tests/lean/interactive/completionOption.lean.expected.out b/tests/server_interactive/completionOption.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionOption.lean.expected.out rename to tests/server_interactive/completionOption.lean.out.expected diff --git a/tests/lean/interactive/completionPrefixIssue.lean b/tests/server_interactive/completionPrefixIssue.lean similarity index 100% rename from tests/lean/interactive/completionPrefixIssue.lean rename to tests/server_interactive/completionPrefixIssue.lean diff --git a/tests/lean/interactive/completionPrefixIssue.lean.expected.out b/tests/server_interactive/completionPrefixIssue.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionPrefixIssue.lean.expected.out rename to tests/server_interactive/completionPrefixIssue.lean.out.expected diff --git a/tests/lean/interactive/completionPrivateTypes.lean b/tests/server_interactive/completionPrivateTypes.lean similarity index 100% rename from tests/lean/interactive/completionPrivateTypes.lean rename to tests/server_interactive/completionPrivateTypes.lean diff --git a/tests/lean/interactive/completionPrivateTypes.lean.expected.out b/tests/server_interactive/completionPrivateTypes.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionPrivateTypes.lean.expected.out rename to tests/server_interactive/completionPrivateTypes.lean.out.expected diff --git a/tests/lean/interactive/completionPrv.lean b/tests/server_interactive/completionPrv.lean similarity index 100% rename from tests/lean/interactive/completionPrv.lean rename to tests/server_interactive/completionPrv.lean diff --git a/tests/lean/interactive/completionPrv.lean.expected.out b/tests/server_interactive/completionPrv.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionPrv.lean.expected.out rename to tests/server_interactive/completionPrv.lean.out.expected diff --git a/tests/lean/interactive/completionStructureInstance.lean b/tests/server_interactive/completionStructureInstance.lean similarity index 100% rename from tests/lean/interactive/completionStructureInstance.lean rename to tests/server_interactive/completionStructureInstance.lean diff --git a/tests/lean/interactive/completionStructureInstance.lean.expected.out b/tests/server_interactive/completionStructureInstance.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionStructureInstance.lean.expected.out rename to tests/server_interactive/completionStructureInstance.lean.out.expected diff --git a/tests/lean/interactive/completionTactics.lean b/tests/server_interactive/completionTactics.lean similarity index 100% rename from tests/lean/interactive/completionTactics.lean rename to tests/server_interactive/completionTactics.lean diff --git a/tests/lean/interactive/completionTactics.lean.expected.out b/tests/server_interactive/completionTactics.lean.out.expected similarity index 100% rename from tests/lean/interactive/completionTactics.lean.expected.out rename to tests/server_interactive/completionTactics.lean.out.expected diff --git a/tests/lean/interactive/definition.lean b/tests/server_interactive/definition.lean similarity index 100% rename from tests/lean/interactive/definition.lean rename to tests/server_interactive/definition.lean diff --git a/tests/lean/interactive/definition.lean.expected.out b/tests/server_interactive/definition.lean.out.expected similarity index 100% rename from tests/lean/interactive/definition.lean.expected.out rename to tests/server_interactive/definition.lean.out.expected diff --git a/tests/lean/interactive/discrsIssue.lean b/tests/server_interactive/discrsIssue.lean similarity index 100% rename from tests/lean/interactive/discrsIssue.lean rename to tests/server_interactive/discrsIssue.lean diff --git a/tests/lean/interactive/discrsIssue.lean.expected.out b/tests/server_interactive/discrsIssue.lean.out.expected similarity index 100% rename from tests/lean/interactive/discrsIssue.lean.expected.out rename to tests/server_interactive/discrsIssue.lean.out.expected diff --git a/tests/lean/interactive/docstringLinksExamples.lean b/tests/server_interactive/docstringLinksExamples.lean similarity index 100% rename from tests/lean/interactive/docstringLinksExamples.lean rename to tests/server_interactive/docstringLinksExamples.lean diff --git a/tests/lean/interactive/docstringLinksExamples.lean.expected.out b/tests/server_interactive/docstringLinksExamples.lean.out.expected similarity index 100% rename from tests/lean/interactive/docstringLinksExamples.lean.expected.out rename to tests/server_interactive/docstringLinksExamples.lean.out.expected diff --git a/tests/lean/interactive/documentSymbols.lean b/tests/server_interactive/documentSymbols.lean similarity index 100% rename from tests/lean/interactive/documentSymbols.lean rename to tests/server_interactive/documentSymbols.lean diff --git a/tests/lean/interactive/documentSymbols.lean.expected.out b/tests/server_interactive/documentSymbols.lean.out.expected similarity index 100% rename from tests/lean/interactive/documentSymbols.lean.expected.out rename to tests/server_interactive/documentSymbols.lean.out.expected diff --git a/tests/lean/interactive/dotIdCompletion.lean b/tests/server_interactive/dotIdCompletion.lean similarity index 100% rename from tests/lean/interactive/dotIdCompletion.lean rename to tests/server_interactive/dotIdCompletion.lean diff --git a/tests/lean/interactive/dotIdCompletion.lean.expected.out b/tests/server_interactive/dotIdCompletion.lean.out.expected similarity index 100% rename from tests/lean/interactive/dotIdCompletion.lean.expected.out rename to tests/server_interactive/dotIdCompletion.lean.out.expected diff --git a/tests/lean/interactive/dottedIdentNotation.lean b/tests/server_interactive/dottedIdentNotation.lean similarity index 100% rename from tests/lean/interactive/dottedIdentNotation.lean rename to tests/server_interactive/dottedIdentNotation.lean diff --git a/tests/lean/interactive/dottedIdentNotation.lean.expected.out b/tests/server_interactive/dottedIdentNotation.lean.out.expected similarity index 100% rename from tests/lean/interactive/dottedIdentNotation.lean.expected.out rename to tests/server_interactive/dottedIdentNotation.lean.out.expected diff --git a/tests/lean/interactive/editAfterError.lean b/tests/server_interactive/editAfterError.lean similarity index 100% rename from tests/lean/interactive/editAfterError.lean rename to tests/server_interactive/editAfterError.lean diff --git a/tests/lean/interactive/editAfterError.lean.expected.out b/tests/server_interactive/editAfterError.lean.out.expected similarity index 100% rename from tests/lean/interactive/editAfterError.lean.expected.out rename to tests/server_interactive/editAfterError.lean.out.expected diff --git a/tests/lean/interactive/editCompletion.lean b/tests/server_interactive/editCompletion.lean similarity index 100% rename from tests/lean/interactive/editCompletion.lean rename to tests/server_interactive/editCompletion.lean diff --git a/tests/lean/interactive/editCompletion.lean.expected.out b/tests/server_interactive/editCompletion.lean.out.expected similarity index 100% rename from tests/lean/interactive/editCompletion.lean.expected.out rename to tests/server_interactive/editCompletion.lean.out.expected diff --git a/tests/lean/interactive/errorExplanationInteractive.lean b/tests/server_interactive/errorExplanationInteractive.lean similarity index 100% rename from tests/lean/interactive/errorExplanationInteractive.lean rename to tests/server_interactive/errorExplanationInteractive.lean diff --git a/tests/lean/interactive/errorExplanationInteractive.lean.expected.out b/tests/server_interactive/errorExplanationInteractive.lean.out.expected similarity index 100% rename from tests/lean/interactive/errorExplanationInteractive.lean.expected.out rename to tests/server_interactive/errorExplanationInteractive.lean.out.expected diff --git a/tests/lean/interactive/expectedTypeAsGoal.lean b/tests/server_interactive/expectedTypeAsGoal.lean similarity index 100% rename from tests/lean/interactive/expectedTypeAsGoal.lean rename to tests/server_interactive/expectedTypeAsGoal.lean diff --git a/tests/lean/interactive/expectedTypeAsGoal.lean.expected.out b/tests/server_interactive/expectedTypeAsGoal.lean.out.expected similarity index 100% rename from tests/lean/interactive/expectedTypeAsGoal.lean.expected.out rename to tests/server_interactive/expectedTypeAsGoal.lean.out.expected diff --git a/tests/lean/interactive/explicitAppInstHole.lean b/tests/server_interactive/explicitAppInstHole.lean similarity index 100% rename from tests/lean/interactive/explicitAppInstHole.lean rename to tests/server_interactive/explicitAppInstHole.lean diff --git a/tests/lean/interactive/explicitAppInstHole.lean.expected.out b/tests/server_interactive/explicitAppInstHole.lean.out.expected similarity index 100% rename from tests/lean/interactive/explicitAppInstHole.lean.expected.out rename to tests/server_interactive/explicitAppInstHole.lean.out.expected diff --git a/tests/lean/interactive/findReferences.lean b/tests/server_interactive/findReferences.lean similarity index 100% rename from tests/lean/interactive/findReferences.lean rename to tests/server_interactive/findReferences.lean diff --git a/tests/lean/interactive/findReferences.lean.expected.out b/tests/server_interactive/findReferences.lean.out.expected similarity index 100% rename from tests/lean/interactive/findReferences.lean.expected.out rename to tests/server_interactive/findReferences.lean.out.expected diff --git a/tests/lean/interactive/foldingRange.lean b/tests/server_interactive/foldingRange.lean similarity index 100% rename from tests/lean/interactive/foldingRange.lean rename to tests/server_interactive/foldingRange.lean diff --git a/tests/lean/interactive/foldingRange.lean.expected.out b/tests/server_interactive/foldingRange.lean.out.expected similarity index 100% rename from tests/lean/interactive/foldingRange.lean.expected.out rename to tests/server_interactive/foldingRange.lean.out.expected diff --git a/tests/lean/interactive/fvarIdCollision.lean b/tests/server_interactive/fvarIdCollision.lean similarity index 100% rename from tests/lean/interactive/fvarIdCollision.lean rename to tests/server_interactive/fvarIdCollision.lean diff --git a/tests/lean/interactive/fvarIdCollision.lean.expected.out b/tests/server_interactive/fvarIdCollision.lean.out.expected similarity index 100% rename from tests/lean/interactive/fvarIdCollision.lean.expected.out rename to tests/server_interactive/fvarIdCollision.lean.out.expected diff --git a/tests/lean/interactive/ghostGoals.lean b/tests/server_interactive/ghostGoals.lean similarity index 100% rename from tests/lean/interactive/ghostGoals.lean rename to tests/server_interactive/ghostGoals.lean diff --git a/tests/lean/interactive/ghostGoals.lean.expected.out b/tests/server_interactive/ghostGoals.lean.out.expected similarity index 100% rename from tests/lean/interactive/ghostGoals.lean.expected.out rename to tests/server_interactive/ghostGoals.lean.out.expected diff --git a/tests/lean/interactive/goTo.lean b/tests/server_interactive/goTo.lean similarity index 100% rename from tests/lean/interactive/goTo.lean rename to tests/server_interactive/goTo.lean diff --git a/tests/lean/interactive/goTo.lean.expected.out b/tests/server_interactive/goTo.lean.out.expected similarity index 100% rename from tests/lean/interactive/goTo.lean.expected.out rename to tests/server_interactive/goTo.lean.out.expected diff --git a/tests/lean/interactive/goTo2.lean b/tests/server_interactive/goTo2.lean similarity index 100% rename from tests/lean/interactive/goTo2.lean rename to tests/server_interactive/goTo2.lean diff --git a/tests/lean/interactive/goTo2.lean.expected.out b/tests/server_interactive/goTo2.lean.out.expected similarity index 100% rename from tests/lean/interactive/goTo2.lean.expected.out rename to tests/server_interactive/goTo2.lean.out.expected diff --git a/tests/lean/interactive/goalEOF.lean b/tests/server_interactive/goalEOF.lean similarity index 100% rename from tests/lean/interactive/goalEOF.lean rename to tests/server_interactive/goalEOF.lean diff --git a/tests/lean/interactive/goalEOF.lean.expected.out b/tests/server_interactive/goalEOF.lean.out.expected similarity index 100% rename from tests/lean/interactive/goalEOF.lean.expected.out rename to tests/server_interactive/goalEOF.lean.out.expected diff --git a/tests/lean/interactive/goalIssue.lean b/tests/server_interactive/goalIssue.lean similarity index 100% rename from tests/lean/interactive/goalIssue.lean rename to tests/server_interactive/goalIssue.lean diff --git a/tests/lean/interactive/goalIssue.lean.expected.out b/tests/server_interactive/goalIssue.lean.out.expected similarity index 100% rename from tests/lean/interactive/goalIssue.lean.expected.out rename to tests/server_interactive/goalIssue.lean.out.expected diff --git a/tests/lean/interactive/goalsAccomplished.lean b/tests/server_interactive/goalsAccomplished.lean similarity index 100% rename from tests/lean/interactive/goalsAccomplished.lean rename to tests/server_interactive/goalsAccomplished.lean diff --git a/tests/lean/interactive/goalsAccomplished.lean.expected.out b/tests/server_interactive/goalsAccomplished.lean.out.expected similarity index 100% rename from tests/lean/interactive/goalsAccomplished.lean.expected.out rename to tests/server_interactive/goalsAccomplished.lean.out.expected diff --git a/tests/lean/interactive/guardMsgsCodeAction.lean b/tests/server_interactive/guardMsgsCodeAction.lean similarity index 100% rename from tests/lean/interactive/guardMsgsCodeAction.lean rename to tests/server_interactive/guardMsgsCodeAction.lean diff --git a/tests/lean/interactive/guardMsgsCodeAction.lean.expected.out b/tests/server_interactive/guardMsgsCodeAction.lean.out.expected similarity index 100% rename from tests/lean/interactive/guardMsgsCodeAction.lean.expected.out rename to tests/server_interactive/guardMsgsCodeAction.lean.out.expected diff --git a/tests/lean/interactive/haveInfo.lean b/tests/server_interactive/haveInfo.lean similarity index 100% rename from tests/lean/interactive/haveInfo.lean rename to tests/server_interactive/haveInfo.lean diff --git a/tests/lean/interactive/haveInfo.lean.expected.out b/tests/server_interactive/haveInfo.lean.out.expected similarity index 100% rename from tests/lean/interactive/haveInfo.lean.expected.out rename to tests/server_interactive/haveInfo.lean.out.expected diff --git a/tests/lean/interactive/highlight.lean b/tests/server_interactive/highlight.lean similarity index 100% rename from tests/lean/interactive/highlight.lean rename to tests/server_interactive/highlight.lean diff --git a/tests/lean/interactive/highlight.lean.expected.out b/tests/server_interactive/highlight.lean.out.expected similarity index 100% rename from tests/lean/interactive/highlight.lean.expected.out rename to tests/server_interactive/highlight.lean.out.expected diff --git a/tests/lean/interactive/highlightMatches.lean b/tests/server_interactive/highlightMatches.lean similarity index 100% rename from tests/lean/interactive/highlightMatches.lean rename to tests/server_interactive/highlightMatches.lean diff --git a/tests/lean/interactive/highlightMatches.lean.expected.out b/tests/server_interactive/highlightMatches.lean.out.expected similarity index 100% rename from tests/lean/interactive/highlightMatches.lean.expected.out rename to tests/server_interactive/highlightMatches.lean.out.expected diff --git a/tests/lean/interactive/hover.lean b/tests/server_interactive/hover.lean similarity index 100% rename from tests/lean/interactive/hover.lean rename to tests/server_interactive/hover.lean diff --git a/tests/lean/interactive/hover.lean.expected.out b/tests/server_interactive/hover.lean.out.expected similarity index 100% rename from tests/lean/interactive/hover.lean.expected.out rename to tests/server_interactive/hover.lean.out.expected diff --git a/tests/lean/interactive/hoverAt.lean b/tests/server_interactive/hoverAt.lean similarity index 100% rename from tests/lean/interactive/hoverAt.lean rename to tests/server_interactive/hoverAt.lean diff --git a/tests/lean/interactive/hoverAt.lean.expected.out b/tests/server_interactive/hoverAt.lean.out.expected similarity index 100% rename from tests/lean/interactive/hoverAt.lean.expected.out rename to tests/server_interactive/hoverAt.lean.out.expected diff --git a/tests/lean/interactive/hoverBinderUnderscore.lean b/tests/server_interactive/hoverBinderUnderscore.lean similarity index 100% rename from tests/lean/interactive/hoverBinderUnderscore.lean rename to tests/server_interactive/hoverBinderUnderscore.lean diff --git a/tests/lean/interactive/hoverBinderUnderscore.lean.expected.out b/tests/server_interactive/hoverBinderUnderscore.lean.out.expected similarity index 100% rename from tests/lean/interactive/hoverBinderUnderscore.lean.expected.out rename to tests/server_interactive/hoverBinderUnderscore.lean.out.expected diff --git a/tests/lean/interactive/hoverDot.lean b/tests/server_interactive/hoverDot.lean similarity index 100% rename from tests/lean/interactive/hoverDot.lean rename to tests/server_interactive/hoverDot.lean diff --git a/tests/lean/interactive/hoverDot.lean.expected.out b/tests/server_interactive/hoverDot.lean.out.expected similarity index 100% rename from tests/lean/interactive/hoverDot.lean.expected.out rename to tests/server_interactive/hoverDot.lean.out.expected diff --git a/tests/lean/interactive/hoverException.lean b/tests/server_interactive/hoverException.lean similarity index 100% rename from tests/lean/interactive/hoverException.lean rename to tests/server_interactive/hoverException.lean diff --git a/tests/lean/interactive/hoverException.lean.expected.out b/tests/server_interactive/hoverException.lean.out.expected similarity index 100% rename from tests/lean/interactive/hoverException.lean.expected.out rename to tests/server_interactive/hoverException.lean.out.expected diff --git a/tests/lean/interactive/hoverMatch.lean b/tests/server_interactive/hoverMatch.lean similarity index 100% rename from tests/lean/interactive/hoverMatch.lean rename to tests/server_interactive/hoverMatch.lean diff --git a/tests/lean/interactive/hoverMatch.lean.expected.out b/tests/server_interactive/hoverMatch.lean.out.expected similarity index 100% rename from tests/lean/interactive/hoverMatch.lean.expected.out rename to tests/server_interactive/hoverMatch.lean.out.expected diff --git a/tests/lean/interactive/hoverTacticExt.lean b/tests/server_interactive/hoverTacticExt.lean similarity index 100% rename from tests/lean/interactive/hoverTacticExt.lean rename to tests/server_interactive/hoverTacticExt.lean diff --git a/tests/lean/interactive/hoverTacticExt.lean.expected.out b/tests/server_interactive/hoverTacticExt.lean.out.expected similarity index 100% rename from tests/lean/interactive/hoverTacticExt.lean.expected.out rename to tests/server_interactive/hoverTacticExt.lean.out.expected diff --git a/tests/lean/interactive/importCompletion.lean b/tests/server_interactive/importCompletion.lean similarity index 100% rename from tests/lean/interactive/importCompletion.lean rename to tests/server_interactive/importCompletion.lean diff --git a/tests/lean/interactive/importCompletion.lean.expected.out b/tests/server_interactive/importCompletion.lean.out.expected similarity index 100% rename from tests/lean/interactive/importCompletion.lean.expected.out rename to tests/server_interactive/importCompletion.lean.out.expected diff --git a/tests/lean/interactive/inWordCompletion.lean b/tests/server_interactive/inWordCompletion.lean similarity index 100% rename from tests/lean/interactive/inWordCompletion.lean rename to tests/server_interactive/inWordCompletion.lean diff --git a/tests/lean/interactive/inWordCompletion.lean.expected.out b/tests/server_interactive/inWordCompletion.lean.out.expected similarity index 100% rename from tests/lean/interactive/inWordCompletion.lean.expected.out rename to tests/server_interactive/inWordCompletion.lean.out.expected diff --git a/tests/lean/interactive/incomingCallHierarchy.lean b/tests/server_interactive/incomingCallHierarchy.lean similarity index 100% rename from tests/lean/interactive/incomingCallHierarchy.lean rename to tests/server_interactive/incomingCallHierarchy.lean diff --git a/tests/lean/interactive/incomingCallHierarchy.lean.expected.out b/tests/server_interactive/incomingCallHierarchy.lean.out.expected similarity index 100% rename from tests/lean/interactive/incomingCallHierarchy.lean.expected.out rename to tests/server_interactive/incomingCallHierarchy.lean.out.expected diff --git a/tests/lean/interactive/incomingCallHierarchyWhere.lean b/tests/server_interactive/incomingCallHierarchyWhere.lean similarity index 100% rename from tests/lean/interactive/incomingCallHierarchyWhere.lean rename to tests/server_interactive/incomingCallHierarchyWhere.lean diff --git a/tests/lean/interactive/incomingCallHierarchyWhere.lean.expected.out b/tests/server_interactive/incomingCallHierarchyWhere.lean.out.expected similarity index 100% rename from tests/lean/interactive/incomingCallHierarchyWhere.lean.expected.out rename to tests/server_interactive/incomingCallHierarchyWhere.lean.out.expected diff --git a/tests/lean/interactive/incrementalCombinator.lean b/tests/server_interactive/incrementalCombinator.lean similarity index 100% rename from tests/lean/interactive/incrementalCombinator.lean rename to tests/server_interactive/incrementalCombinator.lean diff --git a/tests/lean/interactive/incrementalCombinator.lean.expected.out b/tests/server_interactive/incrementalCombinator.lean.out.expected similarity index 100% rename from tests/lean/interactive/incrementalCombinator.lean.expected.out rename to tests/server_interactive/incrementalCombinator.lean.out.expected diff --git a/tests/lean/interactive/incrementalCommand.lean b/tests/server_interactive/incrementalCommand.lean similarity index 100% rename from tests/lean/interactive/incrementalCommand.lean rename to tests/server_interactive/incrementalCommand.lean diff --git a/tests/lean/interactive/incrementalCommand.lean.expected.out b/tests/server_interactive/incrementalCommand.lean.out.expected similarity index 100% rename from tests/lean/interactive/incrementalCommand.lean.expected.out rename to tests/server_interactive/incrementalCommand.lean.out.expected diff --git a/tests/lean/interactive/incrementalInduction.lean b/tests/server_interactive/incrementalInduction.lean similarity index 100% rename from tests/lean/interactive/incrementalInduction.lean rename to tests/server_interactive/incrementalInduction.lean diff --git a/tests/lean/interactive/incrementalInduction.lean.expected.out b/tests/server_interactive/incrementalInduction.lean.out.expected similarity index 100% rename from tests/lean/interactive/incrementalInduction.lean.expected.out rename to tests/server_interactive/incrementalInduction.lean.out.expected diff --git a/tests/lean/interactive/incrementalMutual.lean b/tests/server_interactive/incrementalMutual.lean similarity index 100% rename from tests/lean/interactive/incrementalMutual.lean rename to tests/server_interactive/incrementalMutual.lean diff --git a/tests/lean/interactive/incrementalMutual.lean.expected.out b/tests/server_interactive/incrementalMutual.lean.out.expected similarity index 100% rename from tests/lean/interactive/incrementalMutual.lean.expected.out rename to tests/server_interactive/incrementalMutual.lean.out.expected diff --git a/tests/lean/interactive/incrementalTactic.lean b/tests/server_interactive/incrementalTactic.lean similarity index 100% rename from tests/lean/interactive/incrementalTactic.lean rename to tests/server_interactive/incrementalTactic.lean diff --git a/tests/lean/interactive/incrementalTactic.lean.expected.out b/tests/server_interactive/incrementalTactic.lean.out.expected similarity index 100% rename from tests/lean/interactive/incrementalTactic.lean.expected.out rename to tests/server_interactive/incrementalTactic.lean.out.expected diff --git a/tests/lean/interactive/infoIssues.lean b/tests/server_interactive/infoIssues.lean similarity index 100% rename from tests/lean/interactive/infoIssues.lean rename to tests/server_interactive/infoIssues.lean diff --git a/tests/lean/interactive/infoIssues.lean.expected.out b/tests/server_interactive/infoIssues.lean.out.expected similarity index 100% rename from tests/lean/interactive/infoIssues.lean.expected.out rename to tests/server_interactive/infoIssues.lean.out.expected diff --git a/tests/lean/interactive/inlayHints.lean b/tests/server_interactive/inlayHints.lean similarity index 100% rename from tests/lean/interactive/inlayHints.lean rename to tests/server_interactive/inlayHints.lean diff --git a/tests/lean/interactive/inlayHints.lean.expected.out b/tests/server_interactive/inlayHints.lean.out.expected similarity index 100% rename from tests/lean/interactive/inlayHints.lean.expected.out rename to tests/server_interactive/inlayHints.lean.out.expected diff --git a/tests/lean/interactive/interactiveDiagnostics.lean b/tests/server_interactive/interactiveDiagnostics.lean similarity index 100% rename from tests/lean/interactive/interactiveDiagnostics.lean rename to tests/server_interactive/interactiveDiagnostics.lean diff --git a/tests/lean/interactive/interactiveDiagnostics.lean.expected.out b/tests/server_interactive/interactiveDiagnostics.lean.out.expected similarity index 100% rename from tests/lean/interactive/interactiveDiagnostics.lean.expected.out rename to tests/server_interactive/interactiveDiagnostics.lean.out.expected diff --git a/tests/lean/interactive/interactiveGoalGoToLoc.lean b/tests/server_interactive/interactiveGoalGoToLoc.lean similarity index 100% rename from tests/lean/interactive/interactiveGoalGoToLoc.lean rename to tests/server_interactive/interactiveGoalGoToLoc.lean diff --git a/tests/lean/interactive/interactiveGoalGoToLoc.lean.expected.out b/tests/server_interactive/interactiveGoalGoToLoc.lean.out.expected similarity index 100% rename from tests/lean/interactive/interactiveGoalGoToLoc.lean.expected.out rename to tests/server_interactive/interactiveGoalGoToLoc.lean.out.expected diff --git a/tests/lean/interactive/interactiveGoalPopups.lean b/tests/server_interactive/interactiveGoalPopups.lean similarity index 100% rename from tests/lean/interactive/interactiveGoalPopups.lean rename to tests/server_interactive/interactiveGoalPopups.lean diff --git a/tests/lean/interactive/interactiveGoalPopups.lean.expected.out b/tests/server_interactive/interactiveGoalPopups.lean.out.expected similarity index 100% rename from tests/lean/interactive/interactiveGoalPopups.lean.expected.out rename to tests/server_interactive/interactiveGoalPopups.lean.out.expected diff --git a/tests/lean/interactive/interactiveTermGoals.lean b/tests/server_interactive/interactiveTermGoals.lean similarity index 100% rename from tests/lean/interactive/interactiveTermGoals.lean rename to tests/server_interactive/interactiveTermGoals.lean diff --git a/tests/lean/interactive/interactiveTermGoals.lean.expected.out b/tests/server_interactive/interactiveTermGoals.lean.out.expected similarity index 100% rename from tests/lean/interactive/interactiveTermGoals.lean.expected.out rename to tests/server_interactive/interactiveTermGoals.lean.out.expected diff --git a/tests/lean/interactive/interactiveTraces.lean b/tests/server_interactive/interactiveTraces.lean similarity index 100% rename from tests/lean/interactive/interactiveTraces.lean rename to tests/server_interactive/interactiveTraces.lean diff --git a/tests/lean/interactive/interactiveTraces.lean.expected.out b/tests/server_interactive/interactiveTraces.lean.out.expected similarity index 100% rename from tests/lean/interactive/interactiveTraces.lean.expected.out rename to tests/server_interactive/interactiveTraces.lean.out.expected diff --git a/tests/lean/interactive/internalNamesIssue.lean b/tests/server_interactive/internalNamesIssue.lean similarity index 100% rename from tests/lean/interactive/internalNamesIssue.lean rename to tests/server_interactive/internalNamesIssue.lean diff --git a/tests/lean/interactive/internalNamesIssue.lean.expected.out b/tests/server_interactive/internalNamesIssue.lean.out.expected similarity index 100% rename from tests/lean/interactive/internalNamesIssue.lean.expected.out rename to tests/server_interactive/internalNamesIssue.lean.out.expected diff --git a/tests/lean/interactive/isRflParallel.lean b/tests/server_interactive/isRflParallel.lean similarity index 100% rename from tests/lean/interactive/isRflParallel.lean rename to tests/server_interactive/isRflParallel.lean diff --git a/tests/lean/interactive/issue4527.lean b/tests/server_interactive/issue4527.lean similarity index 100% rename from tests/lean/interactive/issue4527.lean rename to tests/server_interactive/issue4527.lean diff --git a/tests/lean/interactive/issue4527.lean.expected.out b/tests/server_interactive/issue4527.lean.out.expected similarity index 100% rename from tests/lean/interactive/issue4527.lean.expected.out rename to tests/server_interactive/issue4527.lean.out.expected diff --git a/tests/lean/interactive/issue5021.lean b/tests/server_interactive/issue5021.lean similarity index 100% rename from tests/lean/interactive/issue5021.lean rename to tests/server_interactive/issue5021.lean diff --git a/tests/lean/interactive/issue5021.lean.expected.out b/tests/server_interactive/issue5021.lean.out.expected similarity index 100% rename from tests/lean/interactive/issue5021.lean.expected.out rename to tests/server_interactive/issue5021.lean.out.expected diff --git a/tests/lean/interactive/issue5597.lean b/tests/server_interactive/issue5597.lean similarity index 100% rename from tests/lean/interactive/issue5597.lean rename to tests/server_interactive/issue5597.lean diff --git a/tests/lean/interactive/issue5597.lean.expected.out b/tests/server_interactive/issue5597.lean.out.expected similarity index 100% rename from tests/lean/interactive/issue5597.lean.expected.out rename to tests/server_interactive/issue5597.lean.out.expected diff --git a/tests/lean/interactive/jumpMutual.lean b/tests/server_interactive/jumpMutual.lean similarity index 100% rename from tests/lean/interactive/jumpMutual.lean rename to tests/server_interactive/jumpMutual.lean diff --git a/tests/lean/interactive/jumpMutual.lean.expected.out b/tests/server_interactive/jumpMutual.lean.out.expected similarity index 100% rename from tests/lean/interactive/jumpMutual.lean.expected.out rename to tests/server_interactive/jumpMutual.lean.out.expected diff --git a/tests/lean/interactive/keywordCompletion.lean b/tests/server_interactive/keywordCompletion.lean similarity index 100% rename from tests/lean/interactive/keywordCompletion.lean rename to tests/server_interactive/keywordCompletion.lean diff --git a/tests/lean/interactive/keywordCompletion.lean.expected.out b/tests/server_interactive/keywordCompletion.lean.out.expected similarity index 100% rename from tests/lean/interactive/keywordCompletion.lean.expected.out rename to tests/server_interactive/keywordCompletion.lean.out.expected diff --git a/tests/lean/interactive/lean3HoverIssue.lean b/tests/server_interactive/lean3HoverIssue.lean similarity index 100% rename from tests/lean/interactive/lean3HoverIssue.lean rename to tests/server_interactive/lean3HoverIssue.lean diff --git a/tests/lean/interactive/lean3HoverIssue.lean.expected.out b/tests/server_interactive/lean3HoverIssue.lean.out.expected similarity index 100% rename from tests/lean/interactive/lean3HoverIssue.lean.expected.out rename to tests/server_interactive/lean3HoverIssue.lean.out.expected diff --git a/tests/lean/interactive/macroGoalIssue.lean b/tests/server_interactive/macroGoalIssue.lean similarity index 100% rename from tests/lean/interactive/macroGoalIssue.lean rename to tests/server_interactive/macroGoalIssue.lean diff --git a/tests/lean/interactive/macroGoalIssue.lean.expected.out b/tests/server_interactive/macroGoalIssue.lean.out.expected similarity index 100% rename from tests/lean/interactive/macroGoalIssue.lean.expected.out rename to tests/server_interactive/macroGoalIssue.lean.out.expected diff --git a/tests/lean/interactive/match.lean b/tests/server_interactive/match.lean similarity index 100% rename from tests/lean/interactive/match.lean rename to tests/server_interactive/match.lean diff --git a/tests/lean/interactive/match.lean.expected.out b/tests/server_interactive/match.lean.out.expected similarity index 100% rename from tests/lean/interactive/match.lean.expected.out rename to tests/server_interactive/match.lean.out.expected diff --git a/tests/lean/interactive/matchPatternHover.lean b/tests/server_interactive/matchPatternHover.lean similarity index 100% rename from tests/lean/interactive/matchPatternHover.lean rename to tests/server_interactive/matchPatternHover.lean diff --git a/tests/lean/interactive/matchPatternHover.lean.expected.out b/tests/server_interactive/matchPatternHover.lean.out.expected similarity index 100% rename from tests/lean/interactive/matchPatternHover.lean.expected.out rename to tests/server_interactive/matchPatternHover.lean.out.expected diff --git a/tests/lean/interactive/matchStxCompletion.lean b/tests/server_interactive/matchStxCompletion.lean similarity index 100% rename from tests/lean/interactive/matchStxCompletion.lean rename to tests/server_interactive/matchStxCompletion.lean diff --git a/tests/lean/interactive/matchStxCompletion.lean.expected.out b/tests/server_interactive/matchStxCompletion.lean.out.expected similarity index 100% rename from tests/lean/interactive/matchStxCompletion.lean.expected.out rename to tests/server_interactive/matchStxCompletion.lean.out.expected diff --git a/tests/lean/interactive/moduleHierarchyImports.lean b/tests/server_interactive/moduleHierarchyImports.lean similarity index 100% rename from tests/lean/interactive/moduleHierarchyImports.lean rename to tests/server_interactive/moduleHierarchyImports.lean diff --git a/tests/lean/interactive/moduleHierarchyImports.lean.expected.out b/tests/server_interactive/moduleHierarchyImports.lean.out.expected similarity index 100% rename from tests/lean/interactive/moduleHierarchyImports.lean.expected.out rename to tests/server_interactive/moduleHierarchyImports.lean.out.expected diff --git a/tests/lean/interactive/outgoingCallHierarchy.lean b/tests/server_interactive/outgoingCallHierarchy.lean similarity index 100% rename from tests/lean/interactive/outgoingCallHierarchy.lean rename to tests/server_interactive/outgoingCallHierarchy.lean diff --git a/tests/lean/interactive/outgoingCallHierarchy.lean.expected.out b/tests/server_interactive/outgoingCallHierarchy.lean.out.expected similarity index 100% rename from tests/lean/interactive/outgoingCallHierarchy.lean.expected.out rename to tests/server_interactive/outgoingCallHierarchy.lean.out.expected diff --git a/tests/lean/interactive/partialNamespace.lean b/tests/server_interactive/partialNamespace.lean similarity index 100% rename from tests/lean/interactive/partialNamespace.lean rename to tests/server_interactive/partialNamespace.lean diff --git a/tests/lean/interactive/partialNamespace.lean.expected.out b/tests/server_interactive/partialNamespace.lean.out.expected similarity index 100% rename from tests/lean/interactive/partialNamespace.lean.expected.out rename to tests/server_interactive/partialNamespace.lean.out.expected diff --git a/tests/lean/interactive/plainGoal.lean b/tests/server_interactive/plainGoal.lean similarity index 100% rename from tests/lean/interactive/plainGoal.lean rename to tests/server_interactive/plainGoal.lean diff --git a/tests/lean/interactive/plainGoal.lean.expected.out b/tests/server_interactive/plainGoal.lean.out.expected similarity index 100% rename from tests/lean/interactive/plainGoal.lean.expected.out rename to tests/server_interactive/plainGoal.lean.out.expected diff --git a/tests/lean/interactive/plainTermGoal.lean b/tests/server_interactive/plainTermGoal.lean similarity index 100% rename from tests/lean/interactive/plainTermGoal.lean rename to tests/server_interactive/plainTermGoal.lean diff --git a/tests/lean/interactive/plainTermGoal.lean.expected.out b/tests/server_interactive/plainTermGoal.lean.out.expected similarity index 100% rename from tests/lean/interactive/plainTermGoal.lean.expected.out rename to tests/server_interactive/plainTermGoal.lean.out.expected diff --git a/tests/lean/interactive/ppShowLetValues.lean b/tests/server_interactive/ppShowLetValues.lean similarity index 100% rename from tests/lean/interactive/ppShowLetValues.lean rename to tests/server_interactive/ppShowLetValues.lean diff --git a/tests/lean/interactive/ppShowLetValues.lean.expected.out b/tests/server_interactive/ppShowLetValues.lean.out.expected similarity index 100% rename from tests/lean/interactive/ppShowLetValues.lean.expected.out rename to tests/server_interactive/ppShowLetValues.lean.out.expected diff --git a/tests/lean/interactive/rename.lean b/tests/server_interactive/rename.lean similarity index 100% rename from tests/lean/interactive/rename.lean rename to tests/server_interactive/rename.lean diff --git a/tests/lean/interactive/rename.lean.expected.out b/tests/server_interactive/rename.lean.out.expected similarity index 100% rename from tests/lean/interactive/rename.lean.expected.out rename to tests/server_interactive/rename.lean.out.expected diff --git a/tests/server_interactive/run_test b/tests/server_interactive/run_test new file mode 100755 index 000000000000..6fd0a0cb6123 --- /dev/null +++ b/tests/server_interactive/run_test @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +source ../env_test.sh +source "$TEST_DIR/util.sh" + +# IO.Process.exit (used by the file worker) seems to be incompatible with LSAN +# TODO: investigate or work around +export ASAN_OPTIONS=detect_leaks=0 + +# these tests don't have to succeed +exec_capture "$1" \ + lean -Dlinter.all=false --run run_test.lean "$1" + +normalize_mvar_suffixes "$1" +normalize_reference_urls "$1" +check_exit "$1" +check_out "$1" diff --git a/tests/lean/interactive/run.lean b/tests/server_interactive/run_test.lean similarity index 100% rename from tests/lean/interactive/run.lean rename to tests/server_interactive/run_test.lean diff --git a/tests/lean/interactive/rwElabConst.lean b/tests/server_interactive/rwElabConst.lean similarity index 100% rename from tests/lean/interactive/rwElabConst.lean rename to tests/server_interactive/rwElabConst.lean diff --git a/tests/lean/interactive/rwElabConst.lean.expected.out b/tests/server_interactive/rwElabConst.lean.out.expected similarity index 100% rename from tests/lean/interactive/rwElabConst.lean.expected.out rename to tests/server_interactive/rwElabConst.lean.out.expected diff --git a/tests/lean/interactive/semanticTokens.lean b/tests/server_interactive/semanticTokens.lean similarity index 100% rename from tests/lean/interactive/semanticTokens.lean rename to tests/server_interactive/semanticTokens.lean diff --git a/tests/lean/interactive/semanticTokens.lean.expected.out b/tests/server_interactive/semanticTokens.lean.out.expected similarity index 100% rename from tests/lean/interactive/semanticTokens.lean.expected.out rename to tests/server_interactive/semanticTokens.lean.out.expected diff --git a/tests/lean/interactive/semanticTokensVersoDocs.lean b/tests/server_interactive/semanticTokensVersoDocs.lean similarity index 100% rename from tests/lean/interactive/semanticTokensVersoDocs.lean rename to tests/server_interactive/semanticTokensVersoDocs.lean diff --git a/tests/lean/interactive/semanticTokensVersoDocs.lean.expected.out b/tests/server_interactive/semanticTokensVersoDocs.lean.out.expected similarity index 100% rename from tests/lean/interactive/semanticTokensVersoDocs.lean.expected.out rename to tests/server_interactive/semanticTokensVersoDocs.lean.out.expected diff --git a/tests/lean/interactive/signatureHelp.lean b/tests/server_interactive/signatureHelp.lean similarity index 100% rename from tests/lean/interactive/signatureHelp.lean rename to tests/server_interactive/signatureHelp.lean diff --git a/tests/lean/interactive/signatureHelp.lean.expected.out b/tests/server_interactive/signatureHelp.lean.out.expected similarity index 100% rename from tests/lean/interactive/signatureHelp.lean.expected.out rename to tests/server_interactive/signatureHelp.lean.out.expected diff --git a/tests/lean/interactive/stdOutput.lean b/tests/server_interactive/stdOutput.lean similarity index 100% rename from tests/lean/interactive/stdOutput.lean rename to tests/server_interactive/stdOutput.lean diff --git a/tests/lean/interactive/strInterpSynthError.lean b/tests/server_interactive/strInterpSynthError.lean similarity index 100% rename from tests/lean/interactive/strInterpSynthError.lean rename to tests/server_interactive/strInterpSynthError.lean diff --git a/tests/lean/interactive/strInterpSynthError.lean.expected.out b/tests/server_interactive/strInterpSynthError.lean.out.expected similarity index 100% rename from tests/lean/interactive/strInterpSynthError.lean.expected.out rename to tests/server_interactive/strInterpSynthError.lean.out.expected diff --git a/tests/lean/interactive/structInstFieldHints.lean b/tests/server_interactive/structInstFieldHints.lean similarity index 100% rename from tests/lean/interactive/structInstFieldHints.lean rename to tests/server_interactive/structInstFieldHints.lean diff --git a/tests/lean/interactive/structInstFieldHints.lean.expected.out b/tests/server_interactive/structInstFieldHints.lean.out.expected similarity index 100% rename from tests/lean/interactive/structInstFieldHints.lean.expected.out rename to tests/server_interactive/structInstFieldHints.lean.out.expected diff --git a/tests/lean/interactive/structNameParentProj.lean b/tests/server_interactive/structNameParentProj.lean similarity index 100% rename from tests/lean/interactive/structNameParentProj.lean rename to tests/server_interactive/structNameParentProj.lean diff --git a/tests/lean/interactive/structNameParentProj.lean.expected.out b/tests/server_interactive/structNameParentProj.lean.out.expected similarity index 100% rename from tests/lean/interactive/structNameParentProj.lean.expected.out rename to tests/server_interactive/structNameParentProj.lean.out.expected diff --git a/tests/lean/interactive/tacticInduction.lean b/tests/server_interactive/tacticInduction.lean similarity index 100% rename from tests/lean/interactive/tacticInduction.lean rename to tests/server_interactive/tacticInduction.lean diff --git a/tests/lean/interactive/tacticInduction.lean.expected.out b/tests/server_interactive/tacticInduction.lean.out.expected similarity index 100% rename from tests/lean/interactive/tacticInduction.lean.expected.out rename to tests/server_interactive/tacticInduction.lean.out.expected diff --git a/tests/lean/interactive/terminationBySuggestion.lean b/tests/server_interactive/terminationBySuggestion.lean similarity index 100% rename from tests/lean/interactive/terminationBySuggestion.lean rename to tests/server_interactive/terminationBySuggestion.lean diff --git a/tests/lean/interactive/terminationBySuggestion.lean.expected.out b/tests/server_interactive/terminationBySuggestion.lean.out.expected similarity index 100% rename from tests/lean/interactive/terminationBySuggestion.lean.expected.out rename to tests/server_interactive/terminationBySuggestion.lean.out.expected diff --git a/tests/lean/interactive/travellingCompletions.lean b/tests/server_interactive/travellingCompletions.lean similarity index 100% rename from tests/lean/interactive/travellingCompletions.lean rename to tests/server_interactive/travellingCompletions.lean diff --git a/tests/lean/interactive/travellingCompletions.lean.expected.out b/tests/server_interactive/travellingCompletions.lean.out.expected similarity index 100% rename from tests/lean/interactive/travellingCompletions.lean.expected.out rename to tests/server_interactive/travellingCompletions.lean.out.expected diff --git a/tests/lean/interactive/tryThisCodeAction.lean b/tests/server_interactive/tryThisCodeAction.lean similarity index 100% rename from tests/lean/interactive/tryThisCodeAction.lean rename to tests/server_interactive/tryThisCodeAction.lean diff --git a/tests/lean/interactive/tryThisCodeAction.lean.expected.out b/tests/server_interactive/tryThisCodeAction.lean.out.expected similarity index 100% rename from tests/lean/interactive/tryThisCodeAction.lean.expected.out rename to tests/server_interactive/tryThisCodeAction.lean.out.expected diff --git a/tests/lean/interactive/unknownIdentifierCodeActions.lean b/tests/server_interactive/unknownIdentifierCodeActions.lean similarity index 100% rename from tests/lean/interactive/unknownIdentifierCodeActions.lean rename to tests/server_interactive/unknownIdentifierCodeActions.lean diff --git a/tests/lean/interactive/unknownIdentifierCodeActions.lean.expected.out b/tests/server_interactive/unknownIdentifierCodeActions.lean.out.expected similarity index 100% rename from tests/lean/interactive/unknownIdentifierCodeActions.lean.expected.out rename to tests/server_interactive/unknownIdentifierCodeActions.lean.out.expected diff --git a/tests/lean/interactive/unterminatedDocComment.lean b/tests/server_interactive/unterminatedDocComment.lean similarity index 100% rename from tests/lean/interactive/unterminatedDocComment.lean rename to tests/server_interactive/unterminatedDocComment.lean diff --git a/tests/lean/interactive/unterminatedDocComment.lean.expected.out b/tests/server_interactive/unterminatedDocComment.lean.out.expected similarity index 100% rename from tests/lean/interactive/unterminatedDocComment.lean.expected.out rename to tests/server_interactive/unterminatedDocComment.lean.out.expected diff --git a/tests/lean/interactive/userWidget.lean b/tests/server_interactive/userWidget.lean similarity index 100% rename from tests/lean/interactive/userWidget.lean rename to tests/server_interactive/userWidget.lean diff --git a/tests/lean/interactive/userWidget.lean.expected.out b/tests/server_interactive/userWidget.lean.out.expected similarity index 100% rename from tests/lean/interactive/userWidget.lean.expected.out rename to tests/server_interactive/userWidget.lean.out.expected diff --git a/tests/lean/interactive/workspaceSymbols.lean b/tests/server_interactive/workspaceSymbols.lean similarity index 100% rename from tests/lean/interactive/workspaceSymbols.lean rename to tests/server_interactive/workspaceSymbols.lean diff --git a/tests/lean/interactive/workspaceSymbols.lean.expected.out b/tests/server_interactive/workspaceSymbols.lean.out.expected similarity index 100% rename from tests/lean/interactive/workspaceSymbols.lean.expected.out rename to tests/server_interactive/workspaceSymbols.lean.out.expected From 3651099391eaa54fb63a4b07c62baa2753fbe10b Mon Sep 17 00:00:00 2001 From: Joscha Date: Mon, 2 Mar 2026 17:31:27 +0100 Subject: [PATCH 13/15] Migrate tests/lean/interactive/projects --- src/Lean/Server/Test/Runner.lean | 2 +- tests/CMakeLists.txt | 14 -------- .../InverseModuleHierarchy/lean-toolchain | 1 - .../lean/interactive/projects/test_single.sh | 36 ------------------- .../server_project}/.gitignore | 0 .../InverseModuleHierarchy.lean | 0 .../InverseModuleHierarchy/Basic2.lean | 0 .../InverseModuleHierarchy/Basic3.lean | 0 .../InverseModuleHierarchy/BasicTest.lean | 0 .../BasicTest.lean.out.expected} | 13 ++++--- .../server_project}/lakefile.toml | 0 tests/misc_dir/server_project/lean-toolchain | 1 + tests/misc_dir/server_project/run_test | 14 ++++++++ .../server_project/run_test.lean} | 0 14 files changed, 22 insertions(+), 59 deletions(-) delete mode 100644 tests/lean/interactive/projects/InverseModuleHierarchy/lean-toolchain delete mode 100755 tests/lean/interactive/projects/test_single.sh rename tests/{lean/interactive/projects/InverseModuleHierarchy => misc_dir/server_project}/.gitignore (100%) rename tests/{lean/interactive/projects/InverseModuleHierarchy => misc_dir/server_project}/InverseModuleHierarchy.lean (100%) rename tests/{lean/interactive/projects/InverseModuleHierarchy => misc_dir/server_project}/InverseModuleHierarchy/Basic2.lean (100%) rename tests/{lean/interactive/projects/InverseModuleHierarchy => misc_dir/server_project}/InverseModuleHierarchy/Basic3.lean (100%) rename tests/{lean/interactive/projects/InverseModuleHierarchy => misc_dir/server_project}/InverseModuleHierarchy/BasicTest.lean (100%) rename tests/{lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy/BasicTest.lean.expected.out => misc_dir/server_project/InverseModuleHierarchy/BasicTest.lean.out.expected} (62%) rename tests/{lean/interactive/projects/InverseModuleHierarchy => misc_dir/server_project}/lakefile.toml (100%) create mode 100644 tests/misc_dir/server_project/lean-toolchain create mode 100755 tests/misc_dir/server_project/run_test rename tests/{lean/interactive/projects/run.lean => misc_dir/server_project/run_test.lean} (100%) diff --git a/src/Lean/Server/Test/Runner.lean b/src/Lean/Server/Test/Runner.lean index 6064a45c04a2..9c32e01390a3 100644 --- a/src/Lean/Server/Test/Runner.lean +++ b/src/Lean/Server/Test/Runner.lean @@ -265,7 +265,7 @@ def ident : Parser Name := do return xs.foldl .str $ .mkSimple head def patchUri (s : String) : IO String := do - let patterns := #["/src/Init/", "/src/Lean/", "/src/Std/", "/tests/lean/interactive/"] + let patterns := #["/src/Init/", "/src/Lean/", "/src/Std/", "/tests/misc_dir/"] let some path := System.Uri.fileUriToPath? s | return s let path ← try diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index b8fe38a80931..c698640cde9e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -232,20 +232,6 @@ foreach(T ${LEANPKGTESTS}) endif() endforeach(T) -# LEAN INTERACTIVE PROJECT SERVER TESTS -file(GLOB_RECURSE LEANTESTS "${LEAN_SOURCE_DIR}/../tests/lean/interactive/projects/*Test.lean") -foreach(T ${LEANTESTS}) - if(NOT T MATCHES "\\.#") - get_filename_component(T_NAME ${T} NAME) - cmake_path(RELATIVE_PATH T BASE_DIRECTORY ${LEAN_SOURCE_DIR}/.. OUTPUT_VARIABLE T_PATH) - add_test( - NAME "${T_PATH}" - WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean/interactive/projects" - COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T}" - ) - endif() -endforeach(T) - # LEAN DOCSTRING PARSER TESTS file(GLOB_RECURSE LEANTESTS "${LEAN_SOURCE_DIR}/../tests/lean/docparse/*_[0-9][0-9][0-9][0-9]") foreach(T ${LEANTESTS}) diff --git a/tests/lean/interactive/projects/InverseModuleHierarchy/lean-toolchain b/tests/lean/interactive/projects/InverseModuleHierarchy/lean-toolchain deleted file mode 100644 index ff15f240c197..000000000000 --- a/tests/lean/interactive/projects/InverseModuleHierarchy/lean-toolchain +++ /dev/null @@ -1 +0,0 @@ -../../../../../build/release/stage1 diff --git a/tests/lean/interactive/projects/test_single.sh b/tests/lean/interactive/projects/test_single.sh deleted file mode 100755 index 6beece9e5c31..000000000000 --- a/tests/lean/interactive/projects/test_single.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env bash -source ../../../common.sh - -find_parent_with_file() { - local dir="$1" - local target_file="$2" - - while [[ "$dir" != "/" ]]; do - if [[ -e "$dir/$target_file" ]]; then - echo "$dir" - return 0 - fi - dir="$(dirname "$dir")" - done - - if [[ -e "/$target_file" ]]; then - echo "/" - return 0 - fi - - return 1 -} - -run_path="$(pwd)/run.lean" - -cd "$(find_parent_with_file "$f" "lean-toolchain")" - -lake build - -# IO.Process.exit (used by the file worker) seems to be incompatible with LSAN -# TODO: investigate or work around -export ASAN_OPTIONS=detect_leaks=0 - -# these tests don't have to succeed -exec_capture lean -Dlinter.all=false --run $run_path -p "$f" || true -diff_produced diff --git a/tests/lean/interactive/projects/InverseModuleHierarchy/.gitignore b/tests/misc_dir/server_project/.gitignore similarity index 100% rename from tests/lean/interactive/projects/InverseModuleHierarchy/.gitignore rename to tests/misc_dir/server_project/.gitignore diff --git a/tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy.lean b/tests/misc_dir/server_project/InverseModuleHierarchy.lean similarity index 100% rename from tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy.lean rename to tests/misc_dir/server_project/InverseModuleHierarchy.lean diff --git a/tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy/Basic2.lean b/tests/misc_dir/server_project/InverseModuleHierarchy/Basic2.lean similarity index 100% rename from tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy/Basic2.lean rename to tests/misc_dir/server_project/InverseModuleHierarchy/Basic2.lean diff --git a/tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy/Basic3.lean b/tests/misc_dir/server_project/InverseModuleHierarchy/Basic3.lean similarity index 100% rename from tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy/Basic3.lean rename to tests/misc_dir/server_project/InverseModuleHierarchy/Basic3.lean diff --git a/tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy/BasicTest.lean b/tests/misc_dir/server_project/InverseModuleHierarchy/BasicTest.lean similarity index 100% rename from tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy/BasicTest.lean rename to tests/misc_dir/server_project/InverseModuleHierarchy/BasicTest.lean diff --git a/tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy/BasicTest.lean.expected.out b/tests/misc_dir/server_project/InverseModuleHierarchy/BasicTest.lean.out.expected similarity index 62% rename from tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy/BasicTest.lean.expected.out rename to tests/misc_dir/server_project/InverseModuleHierarchy/BasicTest.lean.out.expected index 68a958862042..e2a6b21b621a 100644 --- a/tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy/BasicTest.lean.expected.out +++ b/tests/misc_dir/server_project/InverseModuleHierarchy/BasicTest.lean.out.expected @@ -1,42 +1,41 @@ {"item": {"module": {"uri": - "file:///tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy/BasicTest.lean", + "file:///tests/misc_dir/server_project/InverseModuleHierarchy/BasicTest.lean", "name": "InverseModuleHierarchy.BasicTest"}, "kind": {"metaKind": "full", "isPrivate": false, "isAll": false}}, "children": [{"item": {"module": - {"uri": - "file:///tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy.lean", + {"uri": "file:///tests/misc_dir/server_project/InverseModuleHierarchy.lean", "name": "InverseModuleHierarchy"}, "kind": {"metaKind": "nonMeta", "isPrivate": false, "isAll": false}}, "children": []}, {"item": {"module": {"uri": - "file:///tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy/Basic2.lean", + "file:///tests/misc_dir/server_project/InverseModuleHierarchy/Basic2.lean", "name": "InverseModuleHierarchy.Basic2"}, "kind": {"metaKind": "nonMeta", "isPrivate": false, "isAll": false}}, "children": [{"item": {"module": {"uri": - "file:///tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy.lean", + "file:///tests/misc_dir/server_project/InverseModuleHierarchy.lean", "name": "InverseModuleHierarchy"}, "kind": {"metaKind": "nonMeta", "isPrivate": false, "isAll": false}}, "children": []}]}, {"item": {"module": {"uri": - "file:///tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy/Basic3.lean", + "file:///tests/misc_dir/server_project/InverseModuleHierarchy/Basic3.lean", "name": "InverseModuleHierarchy.Basic3"}, "kind": {"metaKind": "nonMeta", "isPrivate": false, "isAll": false}}, "children": [{"item": {"module": {"uri": - "file:///tests/lean/interactive/projects/InverseModuleHierarchy/InverseModuleHierarchy.lean", + "file:///tests/misc_dir/server_project/InverseModuleHierarchy.lean", "name": "InverseModuleHierarchy"}, "kind": {"metaKind": "nonMeta", "isPrivate": false, "isAll": false}}, "children": []}]}]} diff --git a/tests/lean/interactive/projects/InverseModuleHierarchy/lakefile.toml b/tests/misc_dir/server_project/lakefile.toml similarity index 100% rename from tests/lean/interactive/projects/InverseModuleHierarchy/lakefile.toml rename to tests/misc_dir/server_project/lakefile.toml diff --git a/tests/misc_dir/server_project/lean-toolchain b/tests/misc_dir/server_project/lean-toolchain new file mode 100644 index 000000000000..d55e55c3660e --- /dev/null +++ b/tests/misc_dir/server_project/lean-toolchain @@ -0,0 +1 @@ +../../../build/release/stage1 diff --git a/tests/misc_dir/server_project/run_test b/tests/misc_dir/server_project/run_test new file mode 100755 index 000000000000..86a32f8c6820 --- /dev/null +++ b/tests/misc_dir/server_project/run_test @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +source ../../env_test.sh +source "$TEST_DIR/util.sh" + +# IO.Process.exit (used by the file worker) seems to be incompatible with LSAN +# TODO: investigate or work around +export ASAN_OPTIONS=detect_leaks=0 + +lake build + +FILE=InverseModuleHierarchy/BasicTest.lean +exec_capture "$FILE" lean -Dlinter.all=false --run run_test.lean -p "$(realpath "$FILE")" +check_exit "$FILE" +check_out "$FILE" diff --git a/tests/lean/interactive/projects/run.lean b/tests/misc_dir/server_project/run_test.lean similarity index 100% rename from tests/lean/interactive/projects/run.lean rename to tests/misc_dir/server_project/run_test.lean From a6f1a46b77677bf1cc51c6e2e5ff348cdb8098b8 Mon Sep 17 00:00:00 2001 From: Joscha Date: Wed, 25 Feb 2026 18:38:11 +0100 Subject: [PATCH 14/15] Migrate tests/lean/docparse --- .gitattributes | 6 ------ tests/CMakeLists.txt | 15 +-------------- tests/README.md | 2 ++ tests/docparse/.gitattributes | 4 ++++ .../docparse/arg_0001 => docparse/arg_0001.txt} | 0 .../arg_0001.txt.out.expected} | 0 .../docparse/arg_0002 => docparse/arg_0002.txt} | 0 .../arg_0002.txt.out.expected} | 0 .../docparse/arg_0003 => docparse/arg_0003.txt} | 0 .../arg_0003.txt.out.expected} | 0 .../docparse/arg_0004 => docparse/arg_0004.txt} | 0 .../arg_0004.txt.out.expected} | 0 .../docparse/arg_0005 => docparse/arg_0005.txt} | 0 .../arg_0005.txt.out.expected} | 0 .../docparse/arg_0006 => docparse/arg_0006.txt} | 0 .../arg_0006.txt.out.expected} | 0 .../docparse/arg_0007 => docparse/arg_0007.txt} | 0 .../arg_0007.txt.out.expected} | 0 .../docparse/arg_0008 => docparse/arg_0008.txt} | 0 .../arg_0008.txt.out.expected} | 0 .../docparse/arg_0009 => docparse/arg_0009.txt} | 0 .../arg_0009.txt.out.expected} | 0 .../docparse/arg_0010 => docparse/arg_0010.txt} | 0 .../arg_0010.txt.out.expected} | 0 .../docparse/arg_0011 => docparse/arg_0011.txt} | 0 .../arg_0011.txt.out.expected} | 0 .../docparse/arg_0012 => docparse/arg_0012.txt} | 0 .../arg_0012.txt.out.expected} | 0 .../docparse/arg_0013 => docparse/arg_0013.txt} | 0 .../arg_0013.txt.out.expected} | 0 .../docparse/arg_0014 => docparse/arg_0014.txt} | 0 .../arg_0014.txt.out.expected} | 0 .../docparse/arg_0015 => docparse/arg_0015.txt} | 0 .../arg_0015.txt.out.expected} | 0 .../docparse/arg_0016 => docparse/arg_0016.txt} | 0 .../arg_0016.txt.out.expected} | 0 .../docparse/arg_0017 => docparse/arg_0017.txt} | 0 .../arg_0017.txt.out.expected} | 0 .../docparse/arg_0018 => docparse/arg_0018.txt} | 0 .../arg_0018.txt.out.expected} | 0 .../arg_val_0001 => docparse/arg_val_0001.txt} | 0 .../arg_val_0001.txt.out.expected} | 0 .../arg_val_0002 => docparse/arg_val_0002.txt} | 0 .../arg_val_0002.txt.out.expected} | 0 .../arg_val_0003 => docparse/arg_val_0003.txt} | 0 .../arg_val_0003.txt.out.expected} | 0 .../arg_val_0004 => docparse/arg_val_0004.txt} | 0 .../arg_val_0004.txt.out.expected} | 0 .../arg_val_0005 => docparse/arg_val_0005.txt} | 0 .../arg_val_0005.txt.out.expected} | 0 .../arg_val_0006 => docparse/arg_val_0006.txt} | 0 .../arg_val_0006.txt.out.expected} | 0 .../arg_val_0007 => docparse/arg_val_0007.txt} | 0 .../arg_val_0007.txt.out.expected} | 0 .../docparse/args_0001 => docparse/args_0001.txt} | 0 .../args_0001.txt.out.expected} | 0 .../docparse/args_0002 => docparse/args_0002.txt} | 0 .../args_0002.txt.out.expected} | 0 .../docparse/args_0003 => docparse/args_0003.txt} | 0 .../args_0003.txt.out.expected} | 0 .../blockOpener_0001.txt} | 0 .../blockOpener_0001.txt.out.expected} | 0 .../blockOpener_0002.txt} | 0 .../blockOpener_0002.txt.out.expected} | 0 .../blockOpener_0003.txt} | 0 .../blockOpener_0003.txt.out.expected} | 0 .../block_0001 => docparse/block_0001.txt} | 0 .../block_0001.txt.out.expected} | 0 .../block_0002 => docparse/block_0002.txt} | 0 .../block_0002.txt.out.expected} | 0 .../block_0003 => docparse/block_0003.txt} | 0 .../block_0003.txt.out.expected} | 0 .../block_0004 => docparse/block_0004.txt} | 0 .../block_0004.txt.out.expected} | 0 .../block_0005 => docparse/block_0005.txt} | 0 .../block_0005.txt.out.expected} | 0 .../block_0006 => docparse/block_0006.txt} | 0 .../block_0006.txt.out.expected} | 0 .../block_0007 => docparse/block_0007.txt} | 0 .../block_0007.txt.out.expected} | 0 .../block_0008 => docparse/block_0008.txt} | 0 .../block_0008.txt.out.expected} | 0 .../block_0009 => docparse/block_0009.txt} | 0 .../block_0009.txt.out.expected} | 0 .../block_0010 => docparse/block_0010.txt} | 0 .../block_0010.txt.out.expected} | 0 .../block_0011 => docparse/block_0011.txt} | 0 .../block_0011.txt.out.expected} | 0 .../block_0012 => docparse/block_0012.txt} | 0 .../block_0012.txt.out.expected} | 0 .../blocks_0001 => docparse/blocks_0001.txt} | 0 .../blocks_0001.txt.out.expected} | 0 .../blocks_0002 => docparse/blocks_0002.txt} | 0 .../blocks_0002.txt.out.expected} | 0 .../blocks_0003 => docparse/blocks_0003.txt} | 0 .../blocks_0003.txt.out.expected} | 0 .../blocks_0004 => docparse/blocks_0004.txt} | 0 .../blocks_0004.txt.out.expected} | 0 .../blocks_0005 => docparse/blocks_0005.txt} | 0 .../blocks_0005.txt.out.expected} | 0 .../blocks_0006 => docparse/blocks_0006.txt} | 0 .../blocks_0006.txt.out.expected} | 0 .../blocks_0007 => docparse/blocks_0007.txt} | 0 .../blocks_0007.txt.out.expected} | 0 .../blocks_0008 => docparse/blocks_0008.txt} | 0 .../blocks_0008.txt.out.expected} | 0 .../blocks_0009 => docparse/blocks_0009.txt} | 0 .../blocks_0009.txt.out.expected} | 0 .../blocks_0010 => docparse/blocks_0010.txt} | 0 .../blocks_0010.txt.out.expected} | 0 .../blocks_0011 => docparse/blocks_0011.txt} | 0 .../blocks_0011.txt.out.expected} | 0 .../blocks_0012 => docparse/blocks_0012.txt} | 0 .../blocks_0012.txt.out.expected} | 0 .../blocks_0013 => docparse/blocks_0013.txt} | 0 .../blocks_0013.txt.out.expected} | 0 .../blocks_0014 => docparse/blocks_0014.txt} | 0 .../blocks_0014.txt.out.expected} | 0 .../blocks_0015 => docparse/blocks_0015.txt} | 0 .../blocks_0015.txt.out.expected} | 0 .../blocks_0016 => docparse/blocks_0016.txt} | 0 .../blocks_0016.txt.out.expected} | 0 .../blocks_0017 => docparse/blocks_0017.txt} | 0 .../blocks_0017.txt.out.expected} | 0 .../blocks_0018 => docparse/blocks_0018.txt} | 0 .../blocks_0018.txt.out.expected} | 0 .../blocks_0019 => docparse/blocks_0019.txt} | 0 .../blocks_0019.txt.out.expected} | 0 .../blocks_0020 => docparse/blocks_0020.txt} | 0 .../blocks_0020.txt.out.expected} | 0 .../blocks_0021 => docparse/blocks_0021.txt} | 0 .../blocks_0021.txt.out.expected} | 0 .../blocks_0022 => docparse/blocks_0022.txt} | 0 .../blocks_0022.txt.out.expected} | 0 .../blocks_0023 => docparse/blocks_0023.txt} | 0 .../blocks_0023.txt.out.expected} | 0 .../blocks_0024 => docparse/blocks_0024.txt} | 0 .../blocks_0024.txt.out.expected} | 0 .../blocks_0025 => docparse/blocks_0025.txt} | 0 .../blocks_0025.txt.out.expected} | 0 .../blocks_0026 => docparse/blocks_0026.txt} | 0 .../blocks_0026.txt.out.expected} | 0 .../blocks_0027 => docparse/blocks_0027.txt} | 0 .../blocks_0027.txt.out.expected} | 0 .../blocks_0028 => docparse/blocks_0028.txt} | 0 .../blocks_0028.txt.out.expected} | 0 .../blocks_0029 => docparse/blocks_0029.txt} | 0 .../blocks_0029.txt.out.expected} | 0 .../blocks_0030 => docparse/blocks_0030.txt} | 0 .../blocks_0030.txt.out.expected} | 0 .../blocks_0031 => docparse/blocks_0031.txt} | 0 .../blocks_0031.txt.out.expected} | 0 .../blocks_0032 => docparse/blocks_0032.txt} | 0 .../blocks_0032.txt.out.expected} | 0 .../blocks_0033 => docparse/blocks_0033.txt} | 0 .../blocks_0033.txt.out.expected} | 0 .../blocks_0034 => docparse/blocks_0034.txt} | 0 .../blocks_0034.txt.out.expected} | 0 .../blocks_0035 => docparse/blocks_0035.txt} | 0 .../blocks_0035.txt.out.expected} | 0 .../blocks_0036 => docparse/blocks_0036.txt} | 0 .../blocks_0036.txt.out.expected} | 0 .../blocks_0037 => docparse/blocks_0037.txt} | 0 .../blocks_0037.txt.out.expected} | 0 .../blocks_0038 => docparse/blocks_0038.txt} | 0 .../blocks_0038.txt.out.expected} | 0 .../blocks_0039 => docparse/blocks_0039.txt} | 0 .../blocks_0039.txt.out.expected} | 0 .../blocks_0040 => docparse/blocks_0040.txt} | 0 .../blocks_0040.txt.out.expected} | 0 .../blocks_0041 => docparse/blocks_0041.txt} | 0 .../blocks_0041.txt.out.expected} | 0 .../blocks_0042 => docparse/blocks_0042.txt} | 0 .../blocks_0042.txt.out.expected} | 0 .../blocks_0043 => docparse/blocks_0043.txt} | 0 .../blocks_0043.txt.out.expected} | 0 .../blocks_0044 => docparse/blocks_0044.txt} | 0 .../blocks_0044.txt.out.expected} | 0 .../blocks_0045 => docparse/blocks_0045.txt} | 0 .../blocks_0045.txt.out.expected} | 0 .../blocks_0046 => docparse/blocks_0046.txt} | 0 .../blocks_0046.txt.out.expected} | 0 .../blocks_0047 => docparse/blocks_0047.txt} | 0 .../blocks_0047.txt.out.expected} | 0 .../blocks_0048 => docparse/blocks_0048.txt} | 0 .../blocks_0048.txt.out.expected} | 0 .../blocks_0049 => docparse/blocks_0049.txt} | 0 .../blocks_0049.txt.out.expected} | 0 .../blocks_0050 => docparse/blocks_0050.txt} | 0 .../blocks_0050.txt.out.expected} | 0 .../blocks_0051 => docparse/blocks_0051.txt} | 0 .../blocks_0051.txt.out.expected} | 0 .../blocks_0052 => docparse/blocks_0052.txt} | 0 .../blocks_0052.txt.out.expected} | 0 .../blocks_0053 => docparse/blocks_0053.txt} | 0 .../blocks_0053.txt.out.expected} | 0 .../blocks_0054 => docparse/blocks_0054.txt} | 0 .../blocks_0054.txt.out.expected} | 0 .../codeBlock_0001.txt} | 0 .../codeBlock_0001.txt.out.expected} | 0 .../codeBlock_0002.txt} | 0 .../codeBlock_0002.txt.out.expected} | 0 .../codeBlock_0003.txt} | 0 .../codeBlock_0003.txt.out.expected} | 0 .../codeBlock_0004.txt} | 0 .../codeBlock_0004.txt.out.expected} | 0 .../codeBlock_0005.txt} | 0 .../codeBlock_0005.txt.out.expected} | 0 .../codeBlock_0006.txt} | 0 .../codeBlock_0006.txt.out.expected} | 0 .../codeBlock_0007.txt} | 0 .../codeBlock_0007.txt.out.expected} | 0 .../codeBlock_0008.txt} | 0 .../codeBlock_0008.txt.out.expected} | 0 .../codeBlock_0009.txt} | 0 .../codeBlock_0009.txt.out.expected} | 0 .../codeBlock_0010.txt} | 0 .../codeBlock_0010.txt.out.expected} | 0 .../codeBlock_0011.txt} | 0 .../codeBlock_0011.txt.out.expected} | 0 .../codeBlock_0012.txt} | 0 .../codeBlock_0012.txt.out.expected} | 0 .../codeBlock_0013.txt} | 0 .../codeBlock_0013.txt.out.expected} | 0 .../codeBlock_0014.txt} | 0 .../codeBlock_0014.txt.out.expected} | 0 .../docparse/code_0001 => docparse/code_0001.txt} | 0 .../code_0001.txt.out.expected} | 0 .../docparse/code_0002 => docparse/code_0002.txt} | 0 .../code_0002.txt.out.expected} | 0 .../docparse/code_0003 => docparse/code_0003.txt} | 0 .../code_0003.txt.out.expected} | 0 .../docparse/code_0004 => docparse/code_0004.txt} | 0 .../code_0004.txt.out.expected} | 0 .../docparse/code_0005 => docparse/code_0005.txt} | 0 .../code_0005.txt.out.expected} | 0 .../docparse/code_0006 => docparse/code_0006.txt} | 0 .../code_0006.txt.out.expected} | 0 .../docparse/code_0007 => docparse/code_0007.txt} | 0 .../code_0007.txt.out.expected} | 0 .../docparse/code_0008 => docparse/code_0008.txt} | 0 .../code_0008.txt.out.expected} | 0 .../docparse/code_0009 => docparse/code_0009.txt} | 0 .../code_0009.txt.out.expected} | 0 .../docparse/code_0010 => docparse/code_0010.txt} | 0 .../code_0010.txt.out.expected} | 0 .../docparse/code_0011 => docparse/code_0011.txt} | 0 .../code_0011.txt.out.expected} | 0 .../directive_0001.txt} | 0 .../directive_0001.txt.out.expected} | 0 .../directive_0002.txt} | 0 .../directive_0002.txt.out.expected} | 0 .../directive_0003.txt} | 0 .../directive_0003.txt.out.expected} | 0 .../directive_0004.txt} | 0 .../directive_0004.txt.out.expected} | 0 .../directive_0005.txt} | 0 .../directive_0005.txt.out.expected} | 0 .../directive_0006.txt} | 0 .../directive_0006.txt.out.expected} | 0 .../document_0001 => docparse/document_0001.txt} | 0 .../document_0001.txt.out.expected} | 0 .../docparse/emph_0001 => docparse/emph_0001.txt} | 0 .../emph_0001.txt.out.expected} | 0 .../docparse/emph_0002 => docparse/emph_0002.txt} | 0 .../emph_0002.txt.out.expected} | 0 .../docparse/emph_0003 => docparse/emph_0003.txt} | 0 .../emph_0003.txt.out.expected} | 0 .../header_0001 => docparse/header_0001.txt} | 0 .../header_0001.txt.out.expected} | 0 .../inlineTextChar_0001.txt} | 0 .../inlineTextChar_0001.txt.out.expected} | 0 .../inlineTextChar_0002.txt} | 0 .../inlineTextChar_0002.txt.out.expected} | 0 .../inlineTextChar_0003.txt} | 0 .../inlineTextChar_0003.txt.out.expected} | 0 .../inlineTextChar_0004.txt} | 0 .../inlineTextChar_0004.txt.out.expected} | 0 .../inlineTextChar_0005.txt} | 0 .../inlineTextChar_0005.txt.out.expected} | 0 .../lookaheadOrderedListIndicator_0001.txt} | 0 ...eadOrderedListIndicator_0001.txt.out.expected} | 0 .../lookaheadOrderedListIndicator_0002.txt} | 0 ...eadOrderedListIndicator_0002.txt.out.expected} | 0 .../lookaheadOrderedListIndicator_0003.txt} | 0 ...eadOrderedListIndicator_0003.txt.out.expected} | 0 .../lookaheadOrderedListIndicator_0004.txt} | 0 ...eadOrderedListIndicator_0004.txt.out.expected} | 0 .../lookaheadOrderedListIndicator_0005.txt} | 0 ...eadOrderedListIndicator_0005.txt.out.expected} | 0 .../lookaheadOrderedListIndicator_0006.txt} | 0 ...eadOrderedListIndicator_0006.txt.out.expected} | 0 .../lookaheadOrderedListIndicator_0007.txt} | 0 ...eadOrderedListIndicator_0007.txt.out.expected} | 0 .../lookaheadUnorderedListIndicator_0001.txt} | 0 ...dUnorderedListIndicator_0001.txt.out.expected} | 0 .../lookaheadUnorderedListIndicator_0002.txt} | 0 ...dUnorderedListIndicator_0002.txt.out.expected} | 0 .../lookaheadUnorderedListIndicator_0003.txt} | 0 ...dUnorderedListIndicator_0003.txt.out.expected} | 0 .../lookaheadUnorderedListIndicator_0004.txt} | 0 ...dUnorderedListIndicator_0004.txt.out.expected} | 0 .../lookaheadUnorderedListIndicator_0005.txt} | 0 ...dUnorderedListIndicator_0005.txt.out.expected} | 0 .../lookaheadUnorderedListIndicator_0006.txt} | 0 ...dUnorderedListIndicator_0006.txt.out.expected} | 0 .../manyInlineTextChar_0001.txt} | 0 .../manyInlineTextChar_0001.txt.out.expected} | 0 .../manyInlineTextChar_0002.txt} | 0 .../manyInlineTextChar_0002.txt.out.expected} | 0 .../manyInlineTextChar_0003.txt} | 0 .../manyInlineTextChar_0003.txt.out.expected} | 0 .../metadataBlock_0001.txt} | 0 .../metadataBlock_0001.txt.out.expected} | 0 .../metadataBlock_0002.txt} | 0 .../metadataBlock_0002.txt.out.expected} | 0 .../metadataBlock_0003.txt} | 0 .../metadataBlock_0003.txt.out.expected} | 0 .../nameAndArgs_0001.txt} | 0 .../nameAndArgs_0001.txt.out.expected} | 0 .../nameAndArgs_0002.txt} | 0 .../nameAndArgs_0002.txt.out.expected} | 0 .../nameAndArgs_0003.txt} | 0 .../nameAndArgs_0003.txt.out.expected} | 0 .../nameAndArgs_0004.txt} | 0 .../nameAndArgs_0004.txt.out.expected} | 0 .../nameAndArgs_0005.txt} | 0 .../nameAndArgs_0005.txt.out.expected} | 0 .../nameAndArgs_0006.txt} | 0 .../nameAndArgs_0006.txt.out.expected} | 0 .../nameAndArgs_0007.txt} | 0 .../nameAndArgs_0007.txt.out.expected} | 0 .../nameAndArgs_0008.txt} | 0 .../nameAndArgs_0008.txt.out.expected} | 0 .../nameAndArgs_0009.txt} | 0 .../nameAndArgs_0009.txt.out.expected} | 0 .../nameAndArgs_0010.txt} | 0 .../nameAndArgs_0010.txt.out.expected} | 0 .../oneInline_0001.txt} | 0 .../oneInline_0001.txt.out.expected} | 0 .../oneInline_0002.txt} | 0 .../oneInline_0002.txt.out.expected} | 0 .../oneInline_0003.txt} | 0 .../oneInline_0003.txt.out.expected} | 0 .../oneInline_0004.txt} | 0 .../oneInline_0004.txt.out.expected} | 0 .../oneInline_0005.txt} | 0 .../oneInline_0005.txt.out.expected} | 0 .../oneInline_0006.txt} | 0 .../oneInline_0006.txt.out.expected} | 0 .../oneInline_0007.txt} | 0 .../oneInline_0007.txt.out.expected} | 0 .../oneInline_0008.txt} | 0 .../oneInline_0008.txt.out.expected} | 0 .../oneInline_0009.txt} | 0 .../oneInline_0009.txt.out.expected} | 0 .../oneInline_0010.txt} | 0 .../oneInline_0010.txt.out.expected} | 0 .../oneInline_0011.txt} | 0 .../oneInline_0011.txt.out.expected} | 0 .../oneInline_0012.txt} | 0 .../oneInline_0012.txt.out.expected} | 0 .../oneInline_0013.txt} | 0 .../oneInline_0013.txt.out.expected} | 0 .../oneInline_0014.txt} | 0 .../oneInline_0014.txt.out.expected} | 0 .../oneInline_0015.txt} | 0 .../oneInline_0015.txt.out.expected} | 0 .../oneInline_0016.txt} | 0 .../oneInline_0016.txt.out.expected} | 0 .../oneInline_0017.txt} | 0 .../oneInline_0017.txt.out.expected} | 0 .../oneInline_0018.txt} | 0 .../oneInline_0018.txt.out.expected} | 0 .../oneInline_0019.txt} | 0 .../oneInline_0019.txt.out.expected} | 0 .../oneInline_0020.txt} | 0 .../oneInline_0020.txt.out.expected} | 0 .../oneInline_0021.txt} | 0 .../oneInline_0021.txt.out.expected} | 0 .../oneInline_0022.txt} | 0 .../oneInline_0022.txt.out.expected} | 0 .../recoverBlock_0001.txt} | 0 .../recoverBlock_0001.txt.out.expected} | 0 .../recoverBlocks_0001.txt} | 0 .../recoverBlocks_0001.txt.out.expected} | 0 .../docparse/role_0001 => docparse/role_0001.txt} | 0 .../role_0001.txt.out.expected} | 0 .../docparse/role_0002 => docparse/role_0002.txt} | 0 .../role_0002.txt.out.expected} | 0 .../docparse/role_0003 => docparse/role_0003.txt} | 0 .../role_0003.txt.out.expected} | 0 .../docparse/role_0004 => docparse/role_0004.txt} | 0 .../role_0004.txt.out.expected} | 0 .../docparse/role_0005 => docparse/role_0005.txt} | 0 .../role_0005.txt.out.expected} | 0 .../docparse/test_single.sh => docparse/run_test} | 10 +++++++--- .../docparse/run.lean => docparse/run_test.lean} | 0 .../docparse/text_0001 => docparse/text_0001.txt} | 0 .../text_0001.txt.out.expected} | 0 tests/lint.py | 2 ++ 401 files changed, 16 insertions(+), 23 deletions(-) create mode 100644 tests/docparse/.gitattributes rename tests/{lean/docparse/arg_0001 => docparse/arg_0001.txt} (100%) rename tests/{lean/docparse/arg_0001.expected.out => docparse/arg_0001.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0002 => docparse/arg_0002.txt} (100%) rename tests/{lean/docparse/arg_0002.expected.out => docparse/arg_0002.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0003 => docparse/arg_0003.txt} (100%) rename tests/{lean/docparse/arg_0003.expected.out => docparse/arg_0003.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0004 => docparse/arg_0004.txt} (100%) rename tests/{lean/docparse/arg_0004.expected.out => docparse/arg_0004.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0005 => docparse/arg_0005.txt} (100%) rename tests/{lean/docparse/arg_0005.expected.out => docparse/arg_0005.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0006 => docparse/arg_0006.txt} (100%) rename tests/{lean/docparse/arg_0006.expected.out => docparse/arg_0006.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0007 => docparse/arg_0007.txt} (100%) rename tests/{lean/docparse/arg_0007.expected.out => docparse/arg_0007.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0008 => docparse/arg_0008.txt} (100%) rename tests/{lean/docparse/arg_0008.expected.out => docparse/arg_0008.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0009 => docparse/arg_0009.txt} (100%) rename tests/{lean/docparse/arg_0009.expected.out => docparse/arg_0009.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0010 => docparse/arg_0010.txt} (100%) rename tests/{lean/docparse/arg_0010.expected.out => docparse/arg_0010.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0011 => docparse/arg_0011.txt} (100%) rename tests/{lean/docparse/arg_0011.expected.out => docparse/arg_0011.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0012 => docparse/arg_0012.txt} (100%) rename tests/{lean/docparse/arg_0012.expected.out => docparse/arg_0012.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0013 => docparse/arg_0013.txt} (100%) rename tests/{lean/docparse/arg_0013.expected.out => docparse/arg_0013.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0014 => docparse/arg_0014.txt} (100%) rename tests/{lean/docparse/arg_0014.expected.out => docparse/arg_0014.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0015 => docparse/arg_0015.txt} (100%) rename tests/{lean/docparse/arg_0015.expected.out => docparse/arg_0015.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0016 => docparse/arg_0016.txt} (100%) rename tests/{lean/docparse/arg_0016.expected.out => docparse/arg_0016.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0017 => docparse/arg_0017.txt} (100%) rename tests/{lean/docparse/arg_0017.expected.out => docparse/arg_0017.txt.out.expected} (100%) rename tests/{lean/docparse/arg_0018 => docparse/arg_0018.txt} (100%) rename tests/{lean/docparse/arg_0018.expected.out => docparse/arg_0018.txt.out.expected} (100%) rename tests/{lean/docparse/arg_val_0001 => docparse/arg_val_0001.txt} (100%) rename tests/{lean/docparse/arg_val_0001.expected.out => docparse/arg_val_0001.txt.out.expected} (100%) rename tests/{lean/docparse/arg_val_0002 => docparse/arg_val_0002.txt} (100%) rename tests/{lean/docparse/arg_val_0002.expected.out => docparse/arg_val_0002.txt.out.expected} (100%) rename tests/{lean/docparse/arg_val_0003 => docparse/arg_val_0003.txt} (100%) rename tests/{lean/docparse/arg_val_0003.expected.out => docparse/arg_val_0003.txt.out.expected} (100%) rename tests/{lean/docparse/arg_val_0004 => docparse/arg_val_0004.txt} (100%) rename tests/{lean/docparse/arg_val_0004.expected.out => docparse/arg_val_0004.txt.out.expected} (100%) rename tests/{lean/docparse/arg_val_0005 => docparse/arg_val_0005.txt} (100%) rename tests/{lean/docparse/arg_val_0005.expected.out => docparse/arg_val_0005.txt.out.expected} (100%) rename tests/{lean/docparse/arg_val_0006 => docparse/arg_val_0006.txt} (100%) rename tests/{lean/docparse/arg_val_0006.expected.out => docparse/arg_val_0006.txt.out.expected} (100%) rename tests/{lean/docparse/arg_val_0007 => docparse/arg_val_0007.txt} (100%) rename tests/{lean/docparse/arg_val_0007.expected.out => docparse/arg_val_0007.txt.out.expected} (100%) rename tests/{lean/docparse/args_0001 => docparse/args_0001.txt} (100%) rename tests/{lean/docparse/args_0001.expected.out => docparse/args_0001.txt.out.expected} (100%) rename tests/{lean/docparse/args_0002 => docparse/args_0002.txt} (100%) rename tests/{lean/docparse/args_0002.expected.out => docparse/args_0002.txt.out.expected} (100%) rename tests/{lean/docparse/args_0003 => docparse/args_0003.txt} (100%) rename tests/{lean/docparse/args_0003.expected.out => docparse/args_0003.txt.out.expected} (100%) rename tests/{lean/docparse/blockOpener_0001 => docparse/blockOpener_0001.txt} (100%) rename tests/{lean/docparse/blockOpener_0001.expected.out => docparse/blockOpener_0001.txt.out.expected} (100%) rename tests/{lean/docparse/blockOpener_0002 => docparse/blockOpener_0002.txt} (100%) rename tests/{lean/docparse/blockOpener_0002.expected.out => docparse/blockOpener_0002.txt.out.expected} (100%) rename tests/{lean/docparse/blockOpener_0003 => docparse/blockOpener_0003.txt} (100%) rename tests/{lean/docparse/blockOpener_0003.expected.out => docparse/blockOpener_0003.txt.out.expected} (100%) rename tests/{lean/docparse/block_0001 => docparse/block_0001.txt} (100%) rename tests/{lean/docparse/block_0001.expected.out => docparse/block_0001.txt.out.expected} (100%) rename tests/{lean/docparse/block_0002 => docparse/block_0002.txt} (100%) rename tests/{lean/docparse/block_0002.expected.out => docparse/block_0002.txt.out.expected} (100%) rename tests/{lean/docparse/block_0003 => docparse/block_0003.txt} (100%) rename tests/{lean/docparse/block_0003.expected.out => docparse/block_0003.txt.out.expected} (100%) rename tests/{lean/docparse/block_0004 => docparse/block_0004.txt} (100%) rename tests/{lean/docparse/block_0004.expected.out => docparse/block_0004.txt.out.expected} (100%) rename tests/{lean/docparse/block_0005 => docparse/block_0005.txt} (100%) rename tests/{lean/docparse/block_0005.expected.out => docparse/block_0005.txt.out.expected} (100%) rename tests/{lean/docparse/block_0006 => docparse/block_0006.txt} (100%) rename tests/{lean/docparse/block_0006.expected.out => docparse/block_0006.txt.out.expected} (100%) rename tests/{lean/docparse/block_0007 => docparse/block_0007.txt} (100%) rename tests/{lean/docparse/block_0007.expected.out => docparse/block_0007.txt.out.expected} (100%) rename tests/{lean/docparse/block_0008 => docparse/block_0008.txt} (100%) rename tests/{lean/docparse/block_0008.expected.out => docparse/block_0008.txt.out.expected} (100%) rename tests/{lean/docparse/block_0009 => docparse/block_0009.txt} (100%) rename tests/{lean/docparse/block_0009.expected.out => docparse/block_0009.txt.out.expected} (100%) rename tests/{lean/docparse/block_0010 => docparse/block_0010.txt} (100%) rename tests/{lean/docparse/block_0010.expected.out => docparse/block_0010.txt.out.expected} (100%) rename tests/{lean/docparse/block_0011 => docparse/block_0011.txt} (100%) rename tests/{lean/docparse/block_0011.expected.out => docparse/block_0011.txt.out.expected} (100%) rename tests/{lean/docparse/block_0012 => docparse/block_0012.txt} (100%) rename tests/{lean/docparse/block_0012.expected.out => docparse/block_0012.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0001 => docparse/blocks_0001.txt} (100%) rename tests/{lean/docparse/blocks_0001.expected.out => docparse/blocks_0001.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0002 => docparse/blocks_0002.txt} (100%) rename tests/{lean/docparse/blocks_0002.expected.out => docparse/blocks_0002.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0003 => docparse/blocks_0003.txt} (100%) rename tests/{lean/docparse/blocks_0003.expected.out => docparse/blocks_0003.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0004 => docparse/blocks_0004.txt} (100%) rename tests/{lean/docparse/blocks_0004.expected.out => docparse/blocks_0004.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0005 => docparse/blocks_0005.txt} (100%) rename tests/{lean/docparse/blocks_0005.expected.out => docparse/blocks_0005.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0006 => docparse/blocks_0006.txt} (100%) rename tests/{lean/docparse/blocks_0006.expected.out => docparse/blocks_0006.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0007 => docparse/blocks_0007.txt} (100%) rename tests/{lean/docparse/blocks_0007.expected.out => docparse/blocks_0007.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0008 => docparse/blocks_0008.txt} (100%) rename tests/{lean/docparse/blocks_0008.expected.out => docparse/blocks_0008.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0009 => docparse/blocks_0009.txt} (100%) rename tests/{lean/docparse/blocks_0009.expected.out => docparse/blocks_0009.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0010 => docparse/blocks_0010.txt} (100%) rename tests/{lean/docparse/blocks_0010.expected.out => docparse/blocks_0010.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0011 => docparse/blocks_0011.txt} (100%) rename tests/{lean/docparse/blocks_0011.expected.out => docparse/blocks_0011.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0012 => docparse/blocks_0012.txt} (100%) rename tests/{lean/docparse/blocks_0012.expected.out => docparse/blocks_0012.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0013 => docparse/blocks_0013.txt} (100%) rename tests/{lean/docparse/blocks_0013.expected.out => docparse/blocks_0013.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0014 => docparse/blocks_0014.txt} (100%) rename tests/{lean/docparse/blocks_0014.expected.out => docparse/blocks_0014.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0015 => docparse/blocks_0015.txt} (100%) rename tests/{lean/docparse/blocks_0015.expected.out => docparse/blocks_0015.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0016 => docparse/blocks_0016.txt} (100%) rename tests/{lean/docparse/blocks_0016.expected.out => docparse/blocks_0016.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0017 => docparse/blocks_0017.txt} (100%) rename tests/{lean/docparse/blocks_0017.expected.out => docparse/blocks_0017.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0018 => docparse/blocks_0018.txt} (100%) rename tests/{lean/docparse/blocks_0018.expected.out => docparse/blocks_0018.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0019 => docparse/blocks_0019.txt} (100%) rename tests/{lean/docparse/blocks_0019.expected.out => docparse/blocks_0019.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0020 => docparse/blocks_0020.txt} (100%) rename tests/{lean/docparse/blocks_0020.expected.out => docparse/blocks_0020.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0021 => docparse/blocks_0021.txt} (100%) rename tests/{lean/docparse/blocks_0021.expected.out => docparse/blocks_0021.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0022 => docparse/blocks_0022.txt} (100%) rename tests/{lean/docparse/blocks_0022.expected.out => docparse/blocks_0022.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0023 => docparse/blocks_0023.txt} (100%) rename tests/{lean/docparse/blocks_0023.expected.out => docparse/blocks_0023.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0024 => docparse/blocks_0024.txt} (100%) rename tests/{lean/docparse/blocks_0024.expected.out => docparse/blocks_0024.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0025 => docparse/blocks_0025.txt} (100%) rename tests/{lean/docparse/blocks_0025.expected.out => docparse/blocks_0025.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0026 => docparse/blocks_0026.txt} (100%) rename tests/{lean/docparse/blocks_0026.expected.out => docparse/blocks_0026.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0027 => docparse/blocks_0027.txt} (100%) rename tests/{lean/docparse/blocks_0027.expected.out => docparse/blocks_0027.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0028 => docparse/blocks_0028.txt} (100%) rename tests/{lean/docparse/blocks_0028.expected.out => docparse/blocks_0028.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0029 => docparse/blocks_0029.txt} (100%) rename tests/{lean/docparse/blocks_0029.expected.out => docparse/blocks_0029.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0030 => docparse/blocks_0030.txt} (100%) rename tests/{lean/docparse/blocks_0030.expected.out => docparse/blocks_0030.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0031 => docparse/blocks_0031.txt} (100%) rename tests/{lean/docparse/blocks_0031.expected.out => docparse/blocks_0031.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0032 => docparse/blocks_0032.txt} (100%) rename tests/{lean/docparse/blocks_0032.expected.out => docparse/blocks_0032.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0033 => docparse/blocks_0033.txt} (100%) rename tests/{lean/docparse/blocks_0033.expected.out => docparse/blocks_0033.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0034 => docparse/blocks_0034.txt} (100%) rename tests/{lean/docparse/blocks_0034.expected.out => docparse/blocks_0034.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0035 => docparse/blocks_0035.txt} (100%) rename tests/{lean/docparse/blocks_0035.expected.out => docparse/blocks_0035.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0036 => docparse/blocks_0036.txt} (100%) rename tests/{lean/docparse/blocks_0036.expected.out => docparse/blocks_0036.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0037 => docparse/blocks_0037.txt} (100%) rename tests/{lean/docparse/blocks_0037.expected.out => docparse/blocks_0037.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0038 => docparse/blocks_0038.txt} (100%) rename tests/{lean/docparse/blocks_0038.expected.out => docparse/blocks_0038.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0039 => docparse/blocks_0039.txt} (100%) rename tests/{lean/docparse/blocks_0039.expected.out => docparse/blocks_0039.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0040 => docparse/blocks_0040.txt} (100%) rename tests/{lean/docparse/blocks_0040.expected.out => docparse/blocks_0040.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0041 => docparse/blocks_0041.txt} (100%) rename tests/{lean/docparse/blocks_0041.expected.out => docparse/blocks_0041.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0042 => docparse/blocks_0042.txt} (100%) rename tests/{lean/docparse/blocks_0042.expected.out => docparse/blocks_0042.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0043 => docparse/blocks_0043.txt} (100%) rename tests/{lean/docparse/blocks_0043.expected.out => docparse/blocks_0043.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0044 => docparse/blocks_0044.txt} (100%) rename tests/{lean/docparse/blocks_0044.expected.out => docparse/blocks_0044.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0045 => docparse/blocks_0045.txt} (100%) rename tests/{lean/docparse/blocks_0045.expected.out => docparse/blocks_0045.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0046 => docparse/blocks_0046.txt} (100%) rename tests/{lean/docparse/blocks_0046.expected.out => docparse/blocks_0046.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0047 => docparse/blocks_0047.txt} (100%) rename tests/{lean/docparse/blocks_0047.expected.out => docparse/blocks_0047.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0048 => docparse/blocks_0048.txt} (100%) rename tests/{lean/docparse/blocks_0048.expected.out => docparse/blocks_0048.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0049 => docparse/blocks_0049.txt} (100%) rename tests/{lean/docparse/blocks_0049.expected.out => docparse/blocks_0049.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0050 => docparse/blocks_0050.txt} (100%) rename tests/{lean/docparse/blocks_0050.expected.out => docparse/blocks_0050.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0051 => docparse/blocks_0051.txt} (100%) rename tests/{lean/docparse/blocks_0051.expected.out => docparse/blocks_0051.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0052 => docparse/blocks_0052.txt} (100%) rename tests/{lean/docparse/blocks_0052.expected.out => docparse/blocks_0052.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0053 => docparse/blocks_0053.txt} (100%) rename tests/{lean/docparse/blocks_0053.expected.out => docparse/blocks_0053.txt.out.expected} (100%) rename tests/{lean/docparse/blocks_0054 => docparse/blocks_0054.txt} (100%) rename tests/{lean/docparse/blocks_0054.expected.out => docparse/blocks_0054.txt.out.expected} (100%) rename tests/{lean/docparse/codeBlock_0001 => docparse/codeBlock_0001.txt} (100%) rename tests/{lean/docparse/codeBlock_0001.expected.out => docparse/codeBlock_0001.txt.out.expected} (100%) rename tests/{lean/docparse/codeBlock_0002 => docparse/codeBlock_0002.txt} (100%) rename tests/{lean/docparse/codeBlock_0002.expected.out => docparse/codeBlock_0002.txt.out.expected} (100%) rename tests/{lean/docparse/codeBlock_0003 => docparse/codeBlock_0003.txt} (100%) rename tests/{lean/docparse/codeBlock_0003.expected.out => docparse/codeBlock_0003.txt.out.expected} (100%) rename tests/{lean/docparse/codeBlock_0004 => docparse/codeBlock_0004.txt} (100%) rename tests/{lean/docparse/codeBlock_0004.expected.out => docparse/codeBlock_0004.txt.out.expected} (100%) rename tests/{lean/docparse/codeBlock_0005 => docparse/codeBlock_0005.txt} (100%) rename tests/{lean/docparse/codeBlock_0005.expected.out => docparse/codeBlock_0005.txt.out.expected} (100%) rename tests/{lean/docparse/codeBlock_0006 => docparse/codeBlock_0006.txt} (100%) rename tests/{lean/docparse/codeBlock_0006.expected.out => docparse/codeBlock_0006.txt.out.expected} (100%) rename tests/{lean/docparse/codeBlock_0007 => docparse/codeBlock_0007.txt} (100%) rename tests/{lean/docparse/codeBlock_0007.expected.out => docparse/codeBlock_0007.txt.out.expected} (100%) rename tests/{lean/docparse/codeBlock_0008 => docparse/codeBlock_0008.txt} (100%) rename tests/{lean/docparse/codeBlock_0008.expected.out => docparse/codeBlock_0008.txt.out.expected} (100%) rename tests/{lean/docparse/codeBlock_0009 => docparse/codeBlock_0009.txt} (100%) rename tests/{lean/docparse/codeBlock_0009.expected.out => docparse/codeBlock_0009.txt.out.expected} (100%) rename tests/{lean/docparse/codeBlock_0010 => docparse/codeBlock_0010.txt} (100%) rename tests/{lean/docparse/codeBlock_0010.expected.out => docparse/codeBlock_0010.txt.out.expected} (100%) rename tests/{lean/docparse/codeBlock_0011 => docparse/codeBlock_0011.txt} (100%) rename tests/{lean/docparse/codeBlock_0011.expected.out => docparse/codeBlock_0011.txt.out.expected} (100%) rename tests/{lean/docparse/codeBlock_0012 => docparse/codeBlock_0012.txt} (100%) rename tests/{lean/docparse/codeBlock_0012.expected.out => docparse/codeBlock_0012.txt.out.expected} (100%) rename tests/{lean/docparse/codeBlock_0013 => docparse/codeBlock_0013.txt} (100%) rename tests/{lean/docparse/codeBlock_0013.expected.out => docparse/codeBlock_0013.txt.out.expected} (100%) rename tests/{lean/docparse/codeBlock_0014 => docparse/codeBlock_0014.txt} (100%) rename tests/{lean/docparse/codeBlock_0014.expected.out => docparse/codeBlock_0014.txt.out.expected} (100%) rename tests/{lean/docparse/code_0001 => docparse/code_0001.txt} (100%) rename tests/{lean/docparse/code_0001.expected.out => docparse/code_0001.txt.out.expected} (100%) rename tests/{lean/docparse/code_0002 => docparse/code_0002.txt} (100%) rename tests/{lean/docparse/code_0002.expected.out => docparse/code_0002.txt.out.expected} (100%) rename tests/{lean/docparse/code_0003 => docparse/code_0003.txt} (100%) rename tests/{lean/docparse/code_0003.expected.out => docparse/code_0003.txt.out.expected} (100%) rename tests/{lean/docparse/code_0004 => docparse/code_0004.txt} (100%) rename tests/{lean/docparse/code_0004.expected.out => docparse/code_0004.txt.out.expected} (100%) rename tests/{lean/docparse/code_0005 => docparse/code_0005.txt} (100%) rename tests/{lean/docparse/code_0005.expected.out => docparse/code_0005.txt.out.expected} (100%) rename tests/{lean/docparse/code_0006 => docparse/code_0006.txt} (100%) rename tests/{lean/docparse/code_0006.expected.out => docparse/code_0006.txt.out.expected} (100%) rename tests/{lean/docparse/code_0007 => docparse/code_0007.txt} (100%) rename tests/{lean/docparse/code_0007.expected.out => docparse/code_0007.txt.out.expected} (100%) rename tests/{lean/docparse/code_0008 => docparse/code_0008.txt} (100%) rename tests/{lean/docparse/code_0008.expected.out => docparse/code_0008.txt.out.expected} (100%) rename tests/{lean/docparse/code_0009 => docparse/code_0009.txt} (100%) rename tests/{lean/docparse/code_0009.expected.out => docparse/code_0009.txt.out.expected} (100%) rename tests/{lean/docparse/code_0010 => docparse/code_0010.txt} (100%) rename tests/{lean/docparse/code_0010.expected.out => docparse/code_0010.txt.out.expected} (100%) rename tests/{lean/docparse/code_0011 => docparse/code_0011.txt} (100%) rename tests/{lean/docparse/code_0011.expected.out => docparse/code_0011.txt.out.expected} (100%) rename tests/{lean/docparse/directive_0001 => docparse/directive_0001.txt} (100%) rename tests/{lean/docparse/directive_0001.expected.out => docparse/directive_0001.txt.out.expected} (100%) rename tests/{lean/docparse/directive_0002 => docparse/directive_0002.txt} (100%) rename tests/{lean/docparse/directive_0002.expected.out => docparse/directive_0002.txt.out.expected} (100%) rename tests/{lean/docparse/directive_0003 => docparse/directive_0003.txt} (100%) rename tests/{lean/docparse/directive_0003.expected.out => docparse/directive_0003.txt.out.expected} (100%) rename tests/{lean/docparse/directive_0004 => docparse/directive_0004.txt} (100%) rename tests/{lean/docparse/directive_0004.expected.out => docparse/directive_0004.txt.out.expected} (100%) rename tests/{lean/docparse/directive_0005 => docparse/directive_0005.txt} (100%) rename tests/{lean/docparse/directive_0005.expected.out => docparse/directive_0005.txt.out.expected} (100%) rename tests/{lean/docparse/directive_0006 => docparse/directive_0006.txt} (100%) rename tests/{lean/docparse/directive_0006.expected.out => docparse/directive_0006.txt.out.expected} (100%) rename tests/{lean/docparse/document_0001 => docparse/document_0001.txt} (100%) rename tests/{lean/docparse/document_0001.expected.out => docparse/document_0001.txt.out.expected} (100%) rename tests/{lean/docparse/emph_0001 => docparse/emph_0001.txt} (100%) rename tests/{lean/docparse/emph_0001.expected.out => docparse/emph_0001.txt.out.expected} (100%) rename tests/{lean/docparse/emph_0002 => docparse/emph_0002.txt} (100%) rename tests/{lean/docparse/emph_0002.expected.out => docparse/emph_0002.txt.out.expected} (100%) rename tests/{lean/docparse/emph_0003 => docparse/emph_0003.txt} (100%) rename tests/{lean/docparse/emph_0003.expected.out => docparse/emph_0003.txt.out.expected} (100%) rename tests/{lean/docparse/header_0001 => docparse/header_0001.txt} (100%) rename tests/{lean/docparse/header_0001.expected.out => docparse/header_0001.txt.out.expected} (100%) rename tests/{lean/docparse/inlineTextChar_0001 => docparse/inlineTextChar_0001.txt} (100%) rename tests/{lean/docparse/inlineTextChar_0001.expected.out => docparse/inlineTextChar_0001.txt.out.expected} (100%) rename tests/{lean/docparse/inlineTextChar_0002 => docparse/inlineTextChar_0002.txt} (100%) rename tests/{lean/docparse/inlineTextChar_0002.expected.out => docparse/inlineTextChar_0002.txt.out.expected} (100%) rename tests/{lean/docparse/inlineTextChar_0003 => docparse/inlineTextChar_0003.txt} (100%) rename tests/{lean/docparse/inlineTextChar_0003.expected.out => docparse/inlineTextChar_0003.txt.out.expected} (100%) rename tests/{lean/docparse/inlineTextChar_0004 => docparse/inlineTextChar_0004.txt} (100%) rename tests/{lean/docparse/inlineTextChar_0004.expected.out => docparse/inlineTextChar_0004.txt.out.expected} (100%) rename tests/{lean/docparse/inlineTextChar_0005 => docparse/inlineTextChar_0005.txt} (100%) rename tests/{lean/docparse/inlineTextChar_0005.expected.out => docparse/inlineTextChar_0005.txt.out.expected} (100%) rename tests/{lean/docparse/lookaheadOrderedListIndicator_0001 => docparse/lookaheadOrderedListIndicator_0001.txt} (100%) rename tests/{lean/docparse/lookaheadOrderedListIndicator_0001.expected.out => docparse/lookaheadOrderedListIndicator_0001.txt.out.expected} (100%) rename tests/{lean/docparse/lookaheadOrderedListIndicator_0002 => docparse/lookaheadOrderedListIndicator_0002.txt} (100%) rename tests/{lean/docparse/lookaheadOrderedListIndicator_0002.expected.out => docparse/lookaheadOrderedListIndicator_0002.txt.out.expected} (100%) rename tests/{lean/docparse/lookaheadOrderedListIndicator_0003 => docparse/lookaheadOrderedListIndicator_0003.txt} (100%) rename tests/{lean/docparse/lookaheadOrderedListIndicator_0003.expected.out => docparse/lookaheadOrderedListIndicator_0003.txt.out.expected} (100%) rename tests/{lean/docparse/lookaheadOrderedListIndicator_0004 => docparse/lookaheadOrderedListIndicator_0004.txt} (100%) rename tests/{lean/docparse/lookaheadOrderedListIndicator_0004.expected.out => docparse/lookaheadOrderedListIndicator_0004.txt.out.expected} (100%) rename tests/{lean/docparse/lookaheadOrderedListIndicator_0005 => docparse/lookaheadOrderedListIndicator_0005.txt} (100%) rename tests/{lean/docparse/lookaheadOrderedListIndicator_0005.expected.out => docparse/lookaheadOrderedListIndicator_0005.txt.out.expected} (100%) rename tests/{lean/docparse/lookaheadOrderedListIndicator_0006 => docparse/lookaheadOrderedListIndicator_0006.txt} (100%) rename tests/{lean/docparse/lookaheadOrderedListIndicator_0006.expected.out => docparse/lookaheadOrderedListIndicator_0006.txt.out.expected} (100%) rename tests/{lean/docparse/lookaheadOrderedListIndicator_0007 => docparse/lookaheadOrderedListIndicator_0007.txt} (100%) rename tests/{lean/docparse/lookaheadOrderedListIndicator_0007.expected.out => docparse/lookaheadOrderedListIndicator_0007.txt.out.expected} (100%) rename tests/{lean/docparse/lookaheadUnorderedListIndicator_0001 => docparse/lookaheadUnorderedListIndicator_0001.txt} (100%) rename tests/{lean/docparse/lookaheadUnorderedListIndicator_0001.expected.out => docparse/lookaheadUnorderedListIndicator_0001.txt.out.expected} (100%) rename tests/{lean/docparse/lookaheadUnorderedListIndicator_0002 => docparse/lookaheadUnorderedListIndicator_0002.txt} (100%) rename tests/{lean/docparse/lookaheadUnorderedListIndicator_0002.expected.out => docparse/lookaheadUnorderedListIndicator_0002.txt.out.expected} (100%) rename tests/{lean/docparse/lookaheadUnorderedListIndicator_0003 => docparse/lookaheadUnorderedListIndicator_0003.txt} (100%) rename tests/{lean/docparse/lookaheadUnorderedListIndicator_0003.expected.out => docparse/lookaheadUnorderedListIndicator_0003.txt.out.expected} (100%) rename tests/{lean/docparse/lookaheadUnorderedListIndicator_0004 => docparse/lookaheadUnorderedListIndicator_0004.txt} (100%) rename tests/{lean/docparse/lookaheadUnorderedListIndicator_0004.expected.out => docparse/lookaheadUnorderedListIndicator_0004.txt.out.expected} (100%) rename tests/{lean/docparse/lookaheadUnorderedListIndicator_0005 => docparse/lookaheadUnorderedListIndicator_0005.txt} (100%) rename tests/{lean/docparse/lookaheadUnorderedListIndicator_0005.expected.out => docparse/lookaheadUnorderedListIndicator_0005.txt.out.expected} (100%) rename tests/{lean/docparse/lookaheadUnorderedListIndicator_0006 => docparse/lookaheadUnorderedListIndicator_0006.txt} (100%) rename tests/{lean/docparse/lookaheadUnorderedListIndicator_0006.expected.out => docparse/lookaheadUnorderedListIndicator_0006.txt.out.expected} (100%) rename tests/{lean/docparse/manyInlineTextChar_0001 => docparse/manyInlineTextChar_0001.txt} (100%) rename tests/{lean/docparse/manyInlineTextChar_0001.expected.out => docparse/manyInlineTextChar_0001.txt.out.expected} (100%) rename tests/{lean/docparse/manyInlineTextChar_0002 => docparse/manyInlineTextChar_0002.txt} (100%) rename tests/{lean/docparse/manyInlineTextChar_0002.expected.out => docparse/manyInlineTextChar_0002.txt.out.expected} (100%) rename tests/{lean/docparse/manyInlineTextChar_0003 => docparse/manyInlineTextChar_0003.txt} (100%) rename tests/{lean/docparse/manyInlineTextChar_0003.expected.out => docparse/manyInlineTextChar_0003.txt.out.expected} (100%) rename tests/{lean/docparse/metadataBlock_0001 => docparse/metadataBlock_0001.txt} (100%) rename tests/{lean/docparse/metadataBlock_0001.expected.out => docparse/metadataBlock_0001.txt.out.expected} (100%) rename tests/{lean/docparse/metadataBlock_0002 => docparse/metadataBlock_0002.txt} (100%) rename tests/{lean/docparse/metadataBlock_0002.expected.out => docparse/metadataBlock_0002.txt.out.expected} (100%) rename tests/{lean/docparse/metadataBlock_0003 => docparse/metadataBlock_0003.txt} (100%) rename tests/{lean/docparse/metadataBlock_0003.expected.out => docparse/metadataBlock_0003.txt.out.expected} (100%) rename tests/{lean/docparse/nameAndArgs_0001 => docparse/nameAndArgs_0001.txt} (100%) rename tests/{lean/docparse/nameAndArgs_0001.expected.out => docparse/nameAndArgs_0001.txt.out.expected} (100%) rename tests/{lean/docparse/nameAndArgs_0002 => docparse/nameAndArgs_0002.txt} (100%) rename tests/{lean/docparse/nameAndArgs_0002.expected.out => docparse/nameAndArgs_0002.txt.out.expected} (100%) rename tests/{lean/docparse/nameAndArgs_0003 => docparse/nameAndArgs_0003.txt} (100%) rename tests/{lean/docparse/nameAndArgs_0003.expected.out => docparse/nameAndArgs_0003.txt.out.expected} (100%) rename tests/{lean/docparse/nameAndArgs_0004 => docparse/nameAndArgs_0004.txt} (100%) rename tests/{lean/docparse/nameAndArgs_0004.expected.out => docparse/nameAndArgs_0004.txt.out.expected} (100%) rename tests/{lean/docparse/nameAndArgs_0005 => docparse/nameAndArgs_0005.txt} (100%) rename tests/{lean/docparse/nameAndArgs_0005.expected.out => docparse/nameAndArgs_0005.txt.out.expected} (100%) rename tests/{lean/docparse/nameAndArgs_0006 => docparse/nameAndArgs_0006.txt} (100%) rename tests/{lean/docparse/nameAndArgs_0006.expected.out => docparse/nameAndArgs_0006.txt.out.expected} (100%) rename tests/{lean/docparse/nameAndArgs_0007 => docparse/nameAndArgs_0007.txt} (100%) rename tests/{lean/docparse/nameAndArgs_0007.expected.out => docparse/nameAndArgs_0007.txt.out.expected} (100%) rename tests/{lean/docparse/nameAndArgs_0008 => docparse/nameAndArgs_0008.txt} (100%) rename tests/{lean/docparse/nameAndArgs_0008.expected.out => docparse/nameAndArgs_0008.txt.out.expected} (100%) rename tests/{lean/docparse/nameAndArgs_0009 => docparse/nameAndArgs_0009.txt} (100%) rename tests/{lean/docparse/nameAndArgs_0009.expected.out => docparse/nameAndArgs_0009.txt.out.expected} (100%) rename tests/{lean/docparse/nameAndArgs_0010 => docparse/nameAndArgs_0010.txt} (100%) rename tests/{lean/docparse/nameAndArgs_0010.expected.out => docparse/nameAndArgs_0010.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0001 => docparse/oneInline_0001.txt} (100%) rename tests/{lean/docparse/oneInline_0001.expected.out => docparse/oneInline_0001.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0002 => docparse/oneInline_0002.txt} (100%) rename tests/{lean/docparse/oneInline_0002.expected.out => docparse/oneInline_0002.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0003 => docparse/oneInline_0003.txt} (100%) rename tests/{lean/docparse/oneInline_0003.expected.out => docparse/oneInline_0003.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0004 => docparse/oneInline_0004.txt} (100%) rename tests/{lean/docparse/oneInline_0004.expected.out => docparse/oneInline_0004.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0005 => docparse/oneInline_0005.txt} (100%) rename tests/{lean/docparse/oneInline_0005.expected.out => docparse/oneInline_0005.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0006 => docparse/oneInline_0006.txt} (100%) rename tests/{lean/docparse/oneInline_0006.expected.out => docparse/oneInline_0006.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0007 => docparse/oneInline_0007.txt} (100%) rename tests/{lean/docparse/oneInline_0007.expected.out => docparse/oneInline_0007.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0008 => docparse/oneInline_0008.txt} (100%) rename tests/{lean/docparse/oneInline_0008.expected.out => docparse/oneInline_0008.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0009 => docparse/oneInline_0009.txt} (100%) rename tests/{lean/docparse/oneInline_0009.expected.out => docparse/oneInline_0009.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0010 => docparse/oneInline_0010.txt} (100%) rename tests/{lean/docparse/oneInline_0010.expected.out => docparse/oneInline_0010.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0011 => docparse/oneInline_0011.txt} (100%) rename tests/{lean/docparse/oneInline_0011.expected.out => docparse/oneInline_0011.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0012 => docparse/oneInline_0012.txt} (100%) rename tests/{lean/docparse/oneInline_0012.expected.out => docparse/oneInline_0012.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0013 => docparse/oneInline_0013.txt} (100%) rename tests/{lean/docparse/oneInline_0013.expected.out => docparse/oneInline_0013.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0014 => docparse/oneInline_0014.txt} (100%) rename tests/{lean/docparse/oneInline_0014.expected.out => docparse/oneInline_0014.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0015 => docparse/oneInline_0015.txt} (100%) rename tests/{lean/docparse/oneInline_0015.expected.out => docparse/oneInline_0015.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0016 => docparse/oneInline_0016.txt} (100%) rename tests/{lean/docparse/oneInline_0016.expected.out => docparse/oneInline_0016.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0017 => docparse/oneInline_0017.txt} (100%) rename tests/{lean/docparse/oneInline_0017.expected.out => docparse/oneInline_0017.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0018 => docparse/oneInline_0018.txt} (100%) rename tests/{lean/docparse/oneInline_0018.expected.out => docparse/oneInline_0018.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0019 => docparse/oneInline_0019.txt} (100%) rename tests/{lean/docparse/oneInline_0019.expected.out => docparse/oneInline_0019.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0020 => docparse/oneInline_0020.txt} (100%) rename tests/{lean/docparse/oneInline_0020.expected.out => docparse/oneInline_0020.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0021 => docparse/oneInline_0021.txt} (100%) rename tests/{lean/docparse/oneInline_0021.expected.out => docparse/oneInline_0021.txt.out.expected} (100%) rename tests/{lean/docparse/oneInline_0022 => docparse/oneInline_0022.txt} (100%) rename tests/{lean/docparse/oneInline_0022.expected.out => docparse/oneInline_0022.txt.out.expected} (100%) rename tests/{lean/docparse/recoverBlock_0001 => docparse/recoverBlock_0001.txt} (100%) rename tests/{lean/docparse/recoverBlock_0001.expected.out => docparse/recoverBlock_0001.txt.out.expected} (100%) rename tests/{lean/docparse/recoverBlocks_0001 => docparse/recoverBlocks_0001.txt} (100%) rename tests/{lean/docparse/recoverBlocks_0001.expected.out => docparse/recoverBlocks_0001.txt.out.expected} (100%) rename tests/{lean/docparse/role_0001 => docparse/role_0001.txt} (100%) rename tests/{lean/docparse/role_0001.expected.out => docparse/role_0001.txt.out.expected} (100%) rename tests/{lean/docparse/role_0002 => docparse/role_0002.txt} (100%) rename tests/{lean/docparse/role_0002.expected.out => docparse/role_0002.txt.out.expected} (100%) rename tests/{lean/docparse/role_0003 => docparse/role_0003.txt} (100%) rename tests/{lean/docparse/role_0003.expected.out => docparse/role_0003.txt.out.expected} (100%) rename tests/{lean/docparse/role_0004 => docparse/role_0004.txt} (100%) rename tests/{lean/docparse/role_0004.expected.out => docparse/role_0004.txt.out.expected} (100%) rename tests/{lean/docparse/role_0005 => docparse/role_0005.txt} (100%) rename tests/{lean/docparse/role_0005.expected.out => docparse/role_0005.txt.out.expected} (100%) rename tests/{lean/docparse/test_single.sh => docparse/run_test} (52%) rename tests/{lean/docparse/run.lean => docparse/run_test.lean} (100%) rename tests/{lean/docparse/text_0001 => docparse/text_0001.txt} (100%) rename tests/{lean/docparse/text_0001.expected.out => docparse/text_0001.txt.out.expected} (100%) diff --git a/.gitattributes b/.gitattributes index 9dfe143af56a..88e704fd2bfa 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,9 +5,3 @@ stage0/** binary linguist-generated # The following file is often manually edited, so do show it in diffs stage0/src/stdlib_flags.h -binary -linguist-generated doc/std/grove/GroveStdlib/Generated/** linguist-generated -# These files should not have line endings translated on Windows, because -# it throws off parser tests. Later lines override earlier ones, so the -# runner code is still treated as ordinary text. -tests/lean/docparse/* eol=lf -tests/lean/docparse/*.lean eol=auto -tests/lean/docparse/*.sh eol=auto diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c698640cde9e..420151bc8a6c 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -232,20 +232,6 @@ foreach(T ${LEANPKGTESTS}) endif() endforeach(T) -# LEAN DOCSTRING PARSER TESTS -file(GLOB_RECURSE LEANTESTS "${LEAN_SOURCE_DIR}/../tests/lean/docparse/*_[0-9][0-9][0-9][0-9]") -foreach(T ${LEANTESTS}) - if(NOT T MATCHES "\\.#" AND NOT T MATCHES "run.lean") - get_filename_component(T_NAME ${T} NAME) - cmake_path(RELATIVE_PATH T BASE_DIRECTORY ${LEAN_SOURCE_DIR}/.. OUTPUT_VARIABLE T_PATH) - add_test( - NAME "${T_PATH}" - WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean/docparse" - COMMAND bash -c "${TEST_VARS} ./test_single.sh ${T_NAME}" - ) - endif() -endforeach(T) - # Create a lake test for each test and examples subdirectory of `lake` # which contains a `test.sh` file, excluding the following test(s): # bootstrap: too slow @@ -283,6 +269,7 @@ set_tests_properties(lint.py PROPERTIES RUN_SERIAL TRUE) add_test_pile(../doc/examples *.lean) add_test_pile(compile *.lean BENCH PART2) add_test_pile(compile_bench *.lean BENCH PART2) +add_test_pile(docparse *.txt) add_test_pile(elab *.lean) add_test_pile(elab_bench *.lean BENCH PART2) add_test_pile(elab_fail *.lean) diff --git a/tests/README.md b/tests/README.md index 67315eb532b2..ec963cf44eee 100644 --- a/tests/README.md +++ b/tests/README.md @@ -33,6 +33,8 @@ Benchmarks belonging to the old framework are not included in this description. - `compile_bench`: Benchmarks that compile lean files and measure the execution of the resulting binary, as well as optionally run the same lean file through the interpreter. +- `docparse`: + Docstring parsing tests. - `elab`: Tests that elaborate lean files without executing them, verifying the resulting output. - `elab_fail`: diff --git a/tests/docparse/.gitattributes b/tests/docparse/.gitattributes new file mode 100644 index 000000000000..e5ca53360ba6 --- /dev/null +++ b/tests/docparse/.gitattributes @@ -0,0 +1,4 @@ +# These files should not have line endings translated on Windows +# because it throws off parser tests. +*.txt eol=lf +*.txt.out.expected eol=lf diff --git a/tests/lean/docparse/arg_0001 b/tests/docparse/arg_0001.txt similarity index 100% rename from tests/lean/docparse/arg_0001 rename to tests/docparse/arg_0001.txt diff --git a/tests/lean/docparse/arg_0001.expected.out b/tests/docparse/arg_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0001.expected.out rename to tests/docparse/arg_0001.txt.out.expected diff --git a/tests/lean/docparse/arg_0002 b/tests/docparse/arg_0002.txt similarity index 100% rename from tests/lean/docparse/arg_0002 rename to tests/docparse/arg_0002.txt diff --git a/tests/lean/docparse/arg_0002.expected.out b/tests/docparse/arg_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0002.expected.out rename to tests/docparse/arg_0002.txt.out.expected diff --git a/tests/lean/docparse/arg_0003 b/tests/docparse/arg_0003.txt similarity index 100% rename from tests/lean/docparse/arg_0003 rename to tests/docparse/arg_0003.txt diff --git a/tests/lean/docparse/arg_0003.expected.out b/tests/docparse/arg_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0003.expected.out rename to tests/docparse/arg_0003.txt.out.expected diff --git a/tests/lean/docparse/arg_0004 b/tests/docparse/arg_0004.txt similarity index 100% rename from tests/lean/docparse/arg_0004 rename to tests/docparse/arg_0004.txt diff --git a/tests/lean/docparse/arg_0004.expected.out b/tests/docparse/arg_0004.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0004.expected.out rename to tests/docparse/arg_0004.txt.out.expected diff --git a/tests/lean/docparse/arg_0005 b/tests/docparse/arg_0005.txt similarity index 100% rename from tests/lean/docparse/arg_0005 rename to tests/docparse/arg_0005.txt diff --git a/tests/lean/docparse/arg_0005.expected.out b/tests/docparse/arg_0005.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0005.expected.out rename to tests/docparse/arg_0005.txt.out.expected diff --git a/tests/lean/docparse/arg_0006 b/tests/docparse/arg_0006.txt similarity index 100% rename from tests/lean/docparse/arg_0006 rename to tests/docparse/arg_0006.txt diff --git a/tests/lean/docparse/arg_0006.expected.out b/tests/docparse/arg_0006.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0006.expected.out rename to tests/docparse/arg_0006.txt.out.expected diff --git a/tests/lean/docparse/arg_0007 b/tests/docparse/arg_0007.txt similarity index 100% rename from tests/lean/docparse/arg_0007 rename to tests/docparse/arg_0007.txt diff --git a/tests/lean/docparse/arg_0007.expected.out b/tests/docparse/arg_0007.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0007.expected.out rename to tests/docparse/arg_0007.txt.out.expected diff --git a/tests/lean/docparse/arg_0008 b/tests/docparse/arg_0008.txt similarity index 100% rename from tests/lean/docparse/arg_0008 rename to tests/docparse/arg_0008.txt diff --git a/tests/lean/docparse/arg_0008.expected.out b/tests/docparse/arg_0008.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0008.expected.out rename to tests/docparse/arg_0008.txt.out.expected diff --git a/tests/lean/docparse/arg_0009 b/tests/docparse/arg_0009.txt similarity index 100% rename from tests/lean/docparse/arg_0009 rename to tests/docparse/arg_0009.txt diff --git a/tests/lean/docparse/arg_0009.expected.out b/tests/docparse/arg_0009.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0009.expected.out rename to tests/docparse/arg_0009.txt.out.expected diff --git a/tests/lean/docparse/arg_0010 b/tests/docparse/arg_0010.txt similarity index 100% rename from tests/lean/docparse/arg_0010 rename to tests/docparse/arg_0010.txt diff --git a/tests/lean/docparse/arg_0010.expected.out b/tests/docparse/arg_0010.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0010.expected.out rename to tests/docparse/arg_0010.txt.out.expected diff --git a/tests/lean/docparse/arg_0011 b/tests/docparse/arg_0011.txt similarity index 100% rename from tests/lean/docparse/arg_0011 rename to tests/docparse/arg_0011.txt diff --git a/tests/lean/docparse/arg_0011.expected.out b/tests/docparse/arg_0011.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0011.expected.out rename to tests/docparse/arg_0011.txt.out.expected diff --git a/tests/lean/docparse/arg_0012 b/tests/docparse/arg_0012.txt similarity index 100% rename from tests/lean/docparse/arg_0012 rename to tests/docparse/arg_0012.txt diff --git a/tests/lean/docparse/arg_0012.expected.out b/tests/docparse/arg_0012.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0012.expected.out rename to tests/docparse/arg_0012.txt.out.expected diff --git a/tests/lean/docparse/arg_0013 b/tests/docparse/arg_0013.txt similarity index 100% rename from tests/lean/docparse/arg_0013 rename to tests/docparse/arg_0013.txt diff --git a/tests/lean/docparse/arg_0013.expected.out b/tests/docparse/arg_0013.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0013.expected.out rename to tests/docparse/arg_0013.txt.out.expected diff --git a/tests/lean/docparse/arg_0014 b/tests/docparse/arg_0014.txt similarity index 100% rename from tests/lean/docparse/arg_0014 rename to tests/docparse/arg_0014.txt diff --git a/tests/lean/docparse/arg_0014.expected.out b/tests/docparse/arg_0014.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0014.expected.out rename to tests/docparse/arg_0014.txt.out.expected diff --git a/tests/lean/docparse/arg_0015 b/tests/docparse/arg_0015.txt similarity index 100% rename from tests/lean/docparse/arg_0015 rename to tests/docparse/arg_0015.txt diff --git a/tests/lean/docparse/arg_0015.expected.out b/tests/docparse/arg_0015.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0015.expected.out rename to tests/docparse/arg_0015.txt.out.expected diff --git a/tests/lean/docparse/arg_0016 b/tests/docparse/arg_0016.txt similarity index 100% rename from tests/lean/docparse/arg_0016 rename to tests/docparse/arg_0016.txt diff --git a/tests/lean/docparse/arg_0016.expected.out b/tests/docparse/arg_0016.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0016.expected.out rename to tests/docparse/arg_0016.txt.out.expected diff --git a/tests/lean/docparse/arg_0017 b/tests/docparse/arg_0017.txt similarity index 100% rename from tests/lean/docparse/arg_0017 rename to tests/docparse/arg_0017.txt diff --git a/tests/lean/docparse/arg_0017.expected.out b/tests/docparse/arg_0017.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0017.expected.out rename to tests/docparse/arg_0017.txt.out.expected diff --git a/tests/lean/docparse/arg_0018 b/tests/docparse/arg_0018.txt similarity index 100% rename from tests/lean/docparse/arg_0018 rename to tests/docparse/arg_0018.txt diff --git a/tests/lean/docparse/arg_0018.expected.out b/tests/docparse/arg_0018.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_0018.expected.out rename to tests/docparse/arg_0018.txt.out.expected diff --git a/tests/lean/docparse/arg_val_0001 b/tests/docparse/arg_val_0001.txt similarity index 100% rename from tests/lean/docparse/arg_val_0001 rename to tests/docparse/arg_val_0001.txt diff --git a/tests/lean/docparse/arg_val_0001.expected.out b/tests/docparse/arg_val_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_val_0001.expected.out rename to tests/docparse/arg_val_0001.txt.out.expected diff --git a/tests/lean/docparse/arg_val_0002 b/tests/docparse/arg_val_0002.txt similarity index 100% rename from tests/lean/docparse/arg_val_0002 rename to tests/docparse/arg_val_0002.txt diff --git a/tests/lean/docparse/arg_val_0002.expected.out b/tests/docparse/arg_val_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_val_0002.expected.out rename to tests/docparse/arg_val_0002.txt.out.expected diff --git a/tests/lean/docparse/arg_val_0003 b/tests/docparse/arg_val_0003.txt similarity index 100% rename from tests/lean/docparse/arg_val_0003 rename to tests/docparse/arg_val_0003.txt diff --git a/tests/lean/docparse/arg_val_0003.expected.out b/tests/docparse/arg_val_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_val_0003.expected.out rename to tests/docparse/arg_val_0003.txt.out.expected diff --git a/tests/lean/docparse/arg_val_0004 b/tests/docparse/arg_val_0004.txt similarity index 100% rename from tests/lean/docparse/arg_val_0004 rename to tests/docparse/arg_val_0004.txt diff --git a/tests/lean/docparse/arg_val_0004.expected.out b/tests/docparse/arg_val_0004.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_val_0004.expected.out rename to tests/docparse/arg_val_0004.txt.out.expected diff --git a/tests/lean/docparse/arg_val_0005 b/tests/docparse/arg_val_0005.txt similarity index 100% rename from tests/lean/docparse/arg_val_0005 rename to tests/docparse/arg_val_0005.txt diff --git a/tests/lean/docparse/arg_val_0005.expected.out b/tests/docparse/arg_val_0005.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_val_0005.expected.out rename to tests/docparse/arg_val_0005.txt.out.expected diff --git a/tests/lean/docparse/arg_val_0006 b/tests/docparse/arg_val_0006.txt similarity index 100% rename from tests/lean/docparse/arg_val_0006 rename to tests/docparse/arg_val_0006.txt diff --git a/tests/lean/docparse/arg_val_0006.expected.out b/tests/docparse/arg_val_0006.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_val_0006.expected.out rename to tests/docparse/arg_val_0006.txt.out.expected diff --git a/tests/lean/docparse/arg_val_0007 b/tests/docparse/arg_val_0007.txt similarity index 100% rename from tests/lean/docparse/arg_val_0007 rename to tests/docparse/arg_val_0007.txt diff --git a/tests/lean/docparse/arg_val_0007.expected.out b/tests/docparse/arg_val_0007.txt.out.expected similarity index 100% rename from tests/lean/docparse/arg_val_0007.expected.out rename to tests/docparse/arg_val_0007.txt.out.expected diff --git a/tests/lean/docparse/args_0001 b/tests/docparse/args_0001.txt similarity index 100% rename from tests/lean/docparse/args_0001 rename to tests/docparse/args_0001.txt diff --git a/tests/lean/docparse/args_0001.expected.out b/tests/docparse/args_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/args_0001.expected.out rename to tests/docparse/args_0001.txt.out.expected diff --git a/tests/lean/docparse/args_0002 b/tests/docparse/args_0002.txt similarity index 100% rename from tests/lean/docparse/args_0002 rename to tests/docparse/args_0002.txt diff --git a/tests/lean/docparse/args_0002.expected.out b/tests/docparse/args_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/args_0002.expected.out rename to tests/docparse/args_0002.txt.out.expected diff --git a/tests/lean/docparse/args_0003 b/tests/docparse/args_0003.txt similarity index 100% rename from tests/lean/docparse/args_0003 rename to tests/docparse/args_0003.txt diff --git a/tests/lean/docparse/args_0003.expected.out b/tests/docparse/args_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/args_0003.expected.out rename to tests/docparse/args_0003.txt.out.expected diff --git a/tests/lean/docparse/blockOpener_0001 b/tests/docparse/blockOpener_0001.txt similarity index 100% rename from tests/lean/docparse/blockOpener_0001 rename to tests/docparse/blockOpener_0001.txt diff --git a/tests/lean/docparse/blockOpener_0001.expected.out b/tests/docparse/blockOpener_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/blockOpener_0001.expected.out rename to tests/docparse/blockOpener_0001.txt.out.expected diff --git a/tests/lean/docparse/blockOpener_0002 b/tests/docparse/blockOpener_0002.txt similarity index 100% rename from tests/lean/docparse/blockOpener_0002 rename to tests/docparse/blockOpener_0002.txt diff --git a/tests/lean/docparse/blockOpener_0002.expected.out b/tests/docparse/blockOpener_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/blockOpener_0002.expected.out rename to tests/docparse/blockOpener_0002.txt.out.expected diff --git a/tests/lean/docparse/blockOpener_0003 b/tests/docparse/blockOpener_0003.txt similarity index 100% rename from tests/lean/docparse/blockOpener_0003 rename to tests/docparse/blockOpener_0003.txt diff --git a/tests/lean/docparse/blockOpener_0003.expected.out b/tests/docparse/blockOpener_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/blockOpener_0003.expected.out rename to tests/docparse/blockOpener_0003.txt.out.expected diff --git a/tests/lean/docparse/block_0001 b/tests/docparse/block_0001.txt similarity index 100% rename from tests/lean/docparse/block_0001 rename to tests/docparse/block_0001.txt diff --git a/tests/lean/docparse/block_0001.expected.out b/tests/docparse/block_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/block_0001.expected.out rename to tests/docparse/block_0001.txt.out.expected diff --git a/tests/lean/docparse/block_0002 b/tests/docparse/block_0002.txt similarity index 100% rename from tests/lean/docparse/block_0002 rename to tests/docparse/block_0002.txt diff --git a/tests/lean/docparse/block_0002.expected.out b/tests/docparse/block_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/block_0002.expected.out rename to tests/docparse/block_0002.txt.out.expected diff --git a/tests/lean/docparse/block_0003 b/tests/docparse/block_0003.txt similarity index 100% rename from tests/lean/docparse/block_0003 rename to tests/docparse/block_0003.txt diff --git a/tests/lean/docparse/block_0003.expected.out b/tests/docparse/block_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/block_0003.expected.out rename to tests/docparse/block_0003.txt.out.expected diff --git a/tests/lean/docparse/block_0004 b/tests/docparse/block_0004.txt similarity index 100% rename from tests/lean/docparse/block_0004 rename to tests/docparse/block_0004.txt diff --git a/tests/lean/docparse/block_0004.expected.out b/tests/docparse/block_0004.txt.out.expected similarity index 100% rename from tests/lean/docparse/block_0004.expected.out rename to tests/docparse/block_0004.txt.out.expected diff --git a/tests/lean/docparse/block_0005 b/tests/docparse/block_0005.txt similarity index 100% rename from tests/lean/docparse/block_0005 rename to tests/docparse/block_0005.txt diff --git a/tests/lean/docparse/block_0005.expected.out b/tests/docparse/block_0005.txt.out.expected similarity index 100% rename from tests/lean/docparse/block_0005.expected.out rename to tests/docparse/block_0005.txt.out.expected diff --git a/tests/lean/docparse/block_0006 b/tests/docparse/block_0006.txt similarity index 100% rename from tests/lean/docparse/block_0006 rename to tests/docparse/block_0006.txt diff --git a/tests/lean/docparse/block_0006.expected.out b/tests/docparse/block_0006.txt.out.expected similarity index 100% rename from tests/lean/docparse/block_0006.expected.out rename to tests/docparse/block_0006.txt.out.expected diff --git a/tests/lean/docparse/block_0007 b/tests/docparse/block_0007.txt similarity index 100% rename from tests/lean/docparse/block_0007 rename to tests/docparse/block_0007.txt diff --git a/tests/lean/docparse/block_0007.expected.out b/tests/docparse/block_0007.txt.out.expected similarity index 100% rename from tests/lean/docparse/block_0007.expected.out rename to tests/docparse/block_0007.txt.out.expected diff --git a/tests/lean/docparse/block_0008 b/tests/docparse/block_0008.txt similarity index 100% rename from tests/lean/docparse/block_0008 rename to tests/docparse/block_0008.txt diff --git a/tests/lean/docparse/block_0008.expected.out b/tests/docparse/block_0008.txt.out.expected similarity index 100% rename from tests/lean/docparse/block_0008.expected.out rename to tests/docparse/block_0008.txt.out.expected diff --git a/tests/lean/docparse/block_0009 b/tests/docparse/block_0009.txt similarity index 100% rename from tests/lean/docparse/block_0009 rename to tests/docparse/block_0009.txt diff --git a/tests/lean/docparse/block_0009.expected.out b/tests/docparse/block_0009.txt.out.expected similarity index 100% rename from tests/lean/docparse/block_0009.expected.out rename to tests/docparse/block_0009.txt.out.expected diff --git a/tests/lean/docparse/block_0010 b/tests/docparse/block_0010.txt similarity index 100% rename from tests/lean/docparse/block_0010 rename to tests/docparse/block_0010.txt diff --git a/tests/lean/docparse/block_0010.expected.out b/tests/docparse/block_0010.txt.out.expected similarity index 100% rename from tests/lean/docparse/block_0010.expected.out rename to tests/docparse/block_0010.txt.out.expected diff --git a/tests/lean/docparse/block_0011 b/tests/docparse/block_0011.txt similarity index 100% rename from tests/lean/docparse/block_0011 rename to tests/docparse/block_0011.txt diff --git a/tests/lean/docparse/block_0011.expected.out b/tests/docparse/block_0011.txt.out.expected similarity index 100% rename from tests/lean/docparse/block_0011.expected.out rename to tests/docparse/block_0011.txt.out.expected diff --git a/tests/lean/docparse/block_0012 b/tests/docparse/block_0012.txt similarity index 100% rename from tests/lean/docparse/block_0012 rename to tests/docparse/block_0012.txt diff --git a/tests/lean/docparse/block_0012.expected.out b/tests/docparse/block_0012.txt.out.expected similarity index 100% rename from tests/lean/docparse/block_0012.expected.out rename to tests/docparse/block_0012.txt.out.expected diff --git a/tests/lean/docparse/blocks_0001 b/tests/docparse/blocks_0001.txt similarity index 100% rename from tests/lean/docparse/blocks_0001 rename to tests/docparse/blocks_0001.txt diff --git a/tests/lean/docparse/blocks_0001.expected.out b/tests/docparse/blocks_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0001.expected.out rename to tests/docparse/blocks_0001.txt.out.expected diff --git a/tests/lean/docparse/blocks_0002 b/tests/docparse/blocks_0002.txt similarity index 100% rename from tests/lean/docparse/blocks_0002 rename to tests/docparse/blocks_0002.txt diff --git a/tests/lean/docparse/blocks_0002.expected.out b/tests/docparse/blocks_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0002.expected.out rename to tests/docparse/blocks_0002.txt.out.expected diff --git a/tests/lean/docparse/blocks_0003 b/tests/docparse/blocks_0003.txt similarity index 100% rename from tests/lean/docparse/blocks_0003 rename to tests/docparse/blocks_0003.txt diff --git a/tests/lean/docparse/blocks_0003.expected.out b/tests/docparse/blocks_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0003.expected.out rename to tests/docparse/blocks_0003.txt.out.expected diff --git a/tests/lean/docparse/blocks_0004 b/tests/docparse/blocks_0004.txt similarity index 100% rename from tests/lean/docparse/blocks_0004 rename to tests/docparse/blocks_0004.txt diff --git a/tests/lean/docparse/blocks_0004.expected.out b/tests/docparse/blocks_0004.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0004.expected.out rename to tests/docparse/blocks_0004.txt.out.expected diff --git a/tests/lean/docparse/blocks_0005 b/tests/docparse/blocks_0005.txt similarity index 100% rename from tests/lean/docparse/blocks_0005 rename to tests/docparse/blocks_0005.txt diff --git a/tests/lean/docparse/blocks_0005.expected.out b/tests/docparse/blocks_0005.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0005.expected.out rename to tests/docparse/blocks_0005.txt.out.expected diff --git a/tests/lean/docparse/blocks_0006 b/tests/docparse/blocks_0006.txt similarity index 100% rename from tests/lean/docparse/blocks_0006 rename to tests/docparse/blocks_0006.txt diff --git a/tests/lean/docparse/blocks_0006.expected.out b/tests/docparse/blocks_0006.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0006.expected.out rename to tests/docparse/blocks_0006.txt.out.expected diff --git a/tests/lean/docparse/blocks_0007 b/tests/docparse/blocks_0007.txt similarity index 100% rename from tests/lean/docparse/blocks_0007 rename to tests/docparse/blocks_0007.txt diff --git a/tests/lean/docparse/blocks_0007.expected.out b/tests/docparse/blocks_0007.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0007.expected.out rename to tests/docparse/blocks_0007.txt.out.expected diff --git a/tests/lean/docparse/blocks_0008 b/tests/docparse/blocks_0008.txt similarity index 100% rename from tests/lean/docparse/blocks_0008 rename to tests/docparse/blocks_0008.txt diff --git a/tests/lean/docparse/blocks_0008.expected.out b/tests/docparse/blocks_0008.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0008.expected.out rename to tests/docparse/blocks_0008.txt.out.expected diff --git a/tests/lean/docparse/blocks_0009 b/tests/docparse/blocks_0009.txt similarity index 100% rename from tests/lean/docparse/blocks_0009 rename to tests/docparse/blocks_0009.txt diff --git a/tests/lean/docparse/blocks_0009.expected.out b/tests/docparse/blocks_0009.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0009.expected.out rename to tests/docparse/blocks_0009.txt.out.expected diff --git a/tests/lean/docparse/blocks_0010 b/tests/docparse/blocks_0010.txt similarity index 100% rename from tests/lean/docparse/blocks_0010 rename to tests/docparse/blocks_0010.txt diff --git a/tests/lean/docparse/blocks_0010.expected.out b/tests/docparse/blocks_0010.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0010.expected.out rename to tests/docparse/blocks_0010.txt.out.expected diff --git a/tests/lean/docparse/blocks_0011 b/tests/docparse/blocks_0011.txt similarity index 100% rename from tests/lean/docparse/blocks_0011 rename to tests/docparse/blocks_0011.txt diff --git a/tests/lean/docparse/blocks_0011.expected.out b/tests/docparse/blocks_0011.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0011.expected.out rename to tests/docparse/blocks_0011.txt.out.expected diff --git a/tests/lean/docparse/blocks_0012 b/tests/docparse/blocks_0012.txt similarity index 100% rename from tests/lean/docparse/blocks_0012 rename to tests/docparse/blocks_0012.txt diff --git a/tests/lean/docparse/blocks_0012.expected.out b/tests/docparse/blocks_0012.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0012.expected.out rename to tests/docparse/blocks_0012.txt.out.expected diff --git a/tests/lean/docparse/blocks_0013 b/tests/docparse/blocks_0013.txt similarity index 100% rename from tests/lean/docparse/blocks_0013 rename to tests/docparse/blocks_0013.txt diff --git a/tests/lean/docparse/blocks_0013.expected.out b/tests/docparse/blocks_0013.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0013.expected.out rename to tests/docparse/blocks_0013.txt.out.expected diff --git a/tests/lean/docparse/blocks_0014 b/tests/docparse/blocks_0014.txt similarity index 100% rename from tests/lean/docparse/blocks_0014 rename to tests/docparse/blocks_0014.txt diff --git a/tests/lean/docparse/blocks_0014.expected.out b/tests/docparse/blocks_0014.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0014.expected.out rename to tests/docparse/blocks_0014.txt.out.expected diff --git a/tests/lean/docparse/blocks_0015 b/tests/docparse/blocks_0015.txt similarity index 100% rename from tests/lean/docparse/blocks_0015 rename to tests/docparse/blocks_0015.txt diff --git a/tests/lean/docparse/blocks_0015.expected.out b/tests/docparse/blocks_0015.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0015.expected.out rename to tests/docparse/blocks_0015.txt.out.expected diff --git a/tests/lean/docparse/blocks_0016 b/tests/docparse/blocks_0016.txt similarity index 100% rename from tests/lean/docparse/blocks_0016 rename to tests/docparse/blocks_0016.txt diff --git a/tests/lean/docparse/blocks_0016.expected.out b/tests/docparse/blocks_0016.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0016.expected.out rename to tests/docparse/blocks_0016.txt.out.expected diff --git a/tests/lean/docparse/blocks_0017 b/tests/docparse/blocks_0017.txt similarity index 100% rename from tests/lean/docparse/blocks_0017 rename to tests/docparse/blocks_0017.txt diff --git a/tests/lean/docparse/blocks_0017.expected.out b/tests/docparse/blocks_0017.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0017.expected.out rename to tests/docparse/blocks_0017.txt.out.expected diff --git a/tests/lean/docparse/blocks_0018 b/tests/docparse/blocks_0018.txt similarity index 100% rename from tests/lean/docparse/blocks_0018 rename to tests/docparse/blocks_0018.txt diff --git a/tests/lean/docparse/blocks_0018.expected.out b/tests/docparse/blocks_0018.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0018.expected.out rename to tests/docparse/blocks_0018.txt.out.expected diff --git a/tests/lean/docparse/blocks_0019 b/tests/docparse/blocks_0019.txt similarity index 100% rename from tests/lean/docparse/blocks_0019 rename to tests/docparse/blocks_0019.txt diff --git a/tests/lean/docparse/blocks_0019.expected.out b/tests/docparse/blocks_0019.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0019.expected.out rename to tests/docparse/blocks_0019.txt.out.expected diff --git a/tests/lean/docparse/blocks_0020 b/tests/docparse/blocks_0020.txt similarity index 100% rename from tests/lean/docparse/blocks_0020 rename to tests/docparse/blocks_0020.txt diff --git a/tests/lean/docparse/blocks_0020.expected.out b/tests/docparse/blocks_0020.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0020.expected.out rename to tests/docparse/blocks_0020.txt.out.expected diff --git a/tests/lean/docparse/blocks_0021 b/tests/docparse/blocks_0021.txt similarity index 100% rename from tests/lean/docparse/blocks_0021 rename to tests/docparse/blocks_0021.txt diff --git a/tests/lean/docparse/blocks_0021.expected.out b/tests/docparse/blocks_0021.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0021.expected.out rename to tests/docparse/blocks_0021.txt.out.expected diff --git a/tests/lean/docparse/blocks_0022 b/tests/docparse/blocks_0022.txt similarity index 100% rename from tests/lean/docparse/blocks_0022 rename to tests/docparse/blocks_0022.txt diff --git a/tests/lean/docparse/blocks_0022.expected.out b/tests/docparse/blocks_0022.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0022.expected.out rename to tests/docparse/blocks_0022.txt.out.expected diff --git a/tests/lean/docparse/blocks_0023 b/tests/docparse/blocks_0023.txt similarity index 100% rename from tests/lean/docparse/blocks_0023 rename to tests/docparse/blocks_0023.txt diff --git a/tests/lean/docparse/blocks_0023.expected.out b/tests/docparse/blocks_0023.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0023.expected.out rename to tests/docparse/blocks_0023.txt.out.expected diff --git a/tests/lean/docparse/blocks_0024 b/tests/docparse/blocks_0024.txt similarity index 100% rename from tests/lean/docparse/blocks_0024 rename to tests/docparse/blocks_0024.txt diff --git a/tests/lean/docparse/blocks_0024.expected.out b/tests/docparse/blocks_0024.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0024.expected.out rename to tests/docparse/blocks_0024.txt.out.expected diff --git a/tests/lean/docparse/blocks_0025 b/tests/docparse/blocks_0025.txt similarity index 100% rename from tests/lean/docparse/blocks_0025 rename to tests/docparse/blocks_0025.txt diff --git a/tests/lean/docparse/blocks_0025.expected.out b/tests/docparse/blocks_0025.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0025.expected.out rename to tests/docparse/blocks_0025.txt.out.expected diff --git a/tests/lean/docparse/blocks_0026 b/tests/docparse/blocks_0026.txt similarity index 100% rename from tests/lean/docparse/blocks_0026 rename to tests/docparse/blocks_0026.txt diff --git a/tests/lean/docparse/blocks_0026.expected.out b/tests/docparse/blocks_0026.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0026.expected.out rename to tests/docparse/blocks_0026.txt.out.expected diff --git a/tests/lean/docparse/blocks_0027 b/tests/docparse/blocks_0027.txt similarity index 100% rename from tests/lean/docparse/blocks_0027 rename to tests/docparse/blocks_0027.txt diff --git a/tests/lean/docparse/blocks_0027.expected.out b/tests/docparse/blocks_0027.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0027.expected.out rename to tests/docparse/blocks_0027.txt.out.expected diff --git a/tests/lean/docparse/blocks_0028 b/tests/docparse/blocks_0028.txt similarity index 100% rename from tests/lean/docparse/blocks_0028 rename to tests/docparse/blocks_0028.txt diff --git a/tests/lean/docparse/blocks_0028.expected.out b/tests/docparse/blocks_0028.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0028.expected.out rename to tests/docparse/blocks_0028.txt.out.expected diff --git a/tests/lean/docparse/blocks_0029 b/tests/docparse/blocks_0029.txt similarity index 100% rename from tests/lean/docparse/blocks_0029 rename to tests/docparse/blocks_0029.txt diff --git a/tests/lean/docparse/blocks_0029.expected.out b/tests/docparse/blocks_0029.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0029.expected.out rename to tests/docparse/blocks_0029.txt.out.expected diff --git a/tests/lean/docparse/blocks_0030 b/tests/docparse/blocks_0030.txt similarity index 100% rename from tests/lean/docparse/blocks_0030 rename to tests/docparse/blocks_0030.txt diff --git a/tests/lean/docparse/blocks_0030.expected.out b/tests/docparse/blocks_0030.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0030.expected.out rename to tests/docparse/blocks_0030.txt.out.expected diff --git a/tests/lean/docparse/blocks_0031 b/tests/docparse/blocks_0031.txt similarity index 100% rename from tests/lean/docparse/blocks_0031 rename to tests/docparse/blocks_0031.txt diff --git a/tests/lean/docparse/blocks_0031.expected.out b/tests/docparse/blocks_0031.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0031.expected.out rename to tests/docparse/blocks_0031.txt.out.expected diff --git a/tests/lean/docparse/blocks_0032 b/tests/docparse/blocks_0032.txt similarity index 100% rename from tests/lean/docparse/blocks_0032 rename to tests/docparse/blocks_0032.txt diff --git a/tests/lean/docparse/blocks_0032.expected.out b/tests/docparse/blocks_0032.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0032.expected.out rename to tests/docparse/blocks_0032.txt.out.expected diff --git a/tests/lean/docparse/blocks_0033 b/tests/docparse/blocks_0033.txt similarity index 100% rename from tests/lean/docparse/blocks_0033 rename to tests/docparse/blocks_0033.txt diff --git a/tests/lean/docparse/blocks_0033.expected.out b/tests/docparse/blocks_0033.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0033.expected.out rename to tests/docparse/blocks_0033.txt.out.expected diff --git a/tests/lean/docparse/blocks_0034 b/tests/docparse/blocks_0034.txt similarity index 100% rename from tests/lean/docparse/blocks_0034 rename to tests/docparse/blocks_0034.txt diff --git a/tests/lean/docparse/blocks_0034.expected.out b/tests/docparse/blocks_0034.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0034.expected.out rename to tests/docparse/blocks_0034.txt.out.expected diff --git a/tests/lean/docparse/blocks_0035 b/tests/docparse/blocks_0035.txt similarity index 100% rename from tests/lean/docparse/blocks_0035 rename to tests/docparse/blocks_0035.txt diff --git a/tests/lean/docparse/blocks_0035.expected.out b/tests/docparse/blocks_0035.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0035.expected.out rename to tests/docparse/blocks_0035.txt.out.expected diff --git a/tests/lean/docparse/blocks_0036 b/tests/docparse/blocks_0036.txt similarity index 100% rename from tests/lean/docparse/blocks_0036 rename to tests/docparse/blocks_0036.txt diff --git a/tests/lean/docparse/blocks_0036.expected.out b/tests/docparse/blocks_0036.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0036.expected.out rename to tests/docparse/blocks_0036.txt.out.expected diff --git a/tests/lean/docparse/blocks_0037 b/tests/docparse/blocks_0037.txt similarity index 100% rename from tests/lean/docparse/blocks_0037 rename to tests/docparse/blocks_0037.txt diff --git a/tests/lean/docparse/blocks_0037.expected.out b/tests/docparse/blocks_0037.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0037.expected.out rename to tests/docparse/blocks_0037.txt.out.expected diff --git a/tests/lean/docparse/blocks_0038 b/tests/docparse/blocks_0038.txt similarity index 100% rename from tests/lean/docparse/blocks_0038 rename to tests/docparse/blocks_0038.txt diff --git a/tests/lean/docparse/blocks_0038.expected.out b/tests/docparse/blocks_0038.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0038.expected.out rename to tests/docparse/blocks_0038.txt.out.expected diff --git a/tests/lean/docparse/blocks_0039 b/tests/docparse/blocks_0039.txt similarity index 100% rename from tests/lean/docparse/blocks_0039 rename to tests/docparse/blocks_0039.txt diff --git a/tests/lean/docparse/blocks_0039.expected.out b/tests/docparse/blocks_0039.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0039.expected.out rename to tests/docparse/blocks_0039.txt.out.expected diff --git a/tests/lean/docparse/blocks_0040 b/tests/docparse/blocks_0040.txt similarity index 100% rename from tests/lean/docparse/blocks_0040 rename to tests/docparse/blocks_0040.txt diff --git a/tests/lean/docparse/blocks_0040.expected.out b/tests/docparse/blocks_0040.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0040.expected.out rename to tests/docparse/blocks_0040.txt.out.expected diff --git a/tests/lean/docparse/blocks_0041 b/tests/docparse/blocks_0041.txt similarity index 100% rename from tests/lean/docparse/blocks_0041 rename to tests/docparse/blocks_0041.txt diff --git a/tests/lean/docparse/blocks_0041.expected.out b/tests/docparse/blocks_0041.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0041.expected.out rename to tests/docparse/blocks_0041.txt.out.expected diff --git a/tests/lean/docparse/blocks_0042 b/tests/docparse/blocks_0042.txt similarity index 100% rename from tests/lean/docparse/blocks_0042 rename to tests/docparse/blocks_0042.txt diff --git a/tests/lean/docparse/blocks_0042.expected.out b/tests/docparse/blocks_0042.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0042.expected.out rename to tests/docparse/blocks_0042.txt.out.expected diff --git a/tests/lean/docparse/blocks_0043 b/tests/docparse/blocks_0043.txt similarity index 100% rename from tests/lean/docparse/blocks_0043 rename to tests/docparse/blocks_0043.txt diff --git a/tests/lean/docparse/blocks_0043.expected.out b/tests/docparse/blocks_0043.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0043.expected.out rename to tests/docparse/blocks_0043.txt.out.expected diff --git a/tests/lean/docparse/blocks_0044 b/tests/docparse/blocks_0044.txt similarity index 100% rename from tests/lean/docparse/blocks_0044 rename to tests/docparse/blocks_0044.txt diff --git a/tests/lean/docparse/blocks_0044.expected.out b/tests/docparse/blocks_0044.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0044.expected.out rename to tests/docparse/blocks_0044.txt.out.expected diff --git a/tests/lean/docparse/blocks_0045 b/tests/docparse/blocks_0045.txt similarity index 100% rename from tests/lean/docparse/blocks_0045 rename to tests/docparse/blocks_0045.txt diff --git a/tests/lean/docparse/blocks_0045.expected.out b/tests/docparse/blocks_0045.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0045.expected.out rename to tests/docparse/blocks_0045.txt.out.expected diff --git a/tests/lean/docparse/blocks_0046 b/tests/docparse/blocks_0046.txt similarity index 100% rename from tests/lean/docparse/blocks_0046 rename to tests/docparse/blocks_0046.txt diff --git a/tests/lean/docparse/blocks_0046.expected.out b/tests/docparse/blocks_0046.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0046.expected.out rename to tests/docparse/blocks_0046.txt.out.expected diff --git a/tests/lean/docparse/blocks_0047 b/tests/docparse/blocks_0047.txt similarity index 100% rename from tests/lean/docparse/blocks_0047 rename to tests/docparse/blocks_0047.txt diff --git a/tests/lean/docparse/blocks_0047.expected.out b/tests/docparse/blocks_0047.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0047.expected.out rename to tests/docparse/blocks_0047.txt.out.expected diff --git a/tests/lean/docparse/blocks_0048 b/tests/docparse/blocks_0048.txt similarity index 100% rename from tests/lean/docparse/blocks_0048 rename to tests/docparse/blocks_0048.txt diff --git a/tests/lean/docparse/blocks_0048.expected.out b/tests/docparse/blocks_0048.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0048.expected.out rename to tests/docparse/blocks_0048.txt.out.expected diff --git a/tests/lean/docparse/blocks_0049 b/tests/docparse/blocks_0049.txt similarity index 100% rename from tests/lean/docparse/blocks_0049 rename to tests/docparse/blocks_0049.txt diff --git a/tests/lean/docparse/blocks_0049.expected.out b/tests/docparse/blocks_0049.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0049.expected.out rename to tests/docparse/blocks_0049.txt.out.expected diff --git a/tests/lean/docparse/blocks_0050 b/tests/docparse/blocks_0050.txt similarity index 100% rename from tests/lean/docparse/blocks_0050 rename to tests/docparse/blocks_0050.txt diff --git a/tests/lean/docparse/blocks_0050.expected.out b/tests/docparse/blocks_0050.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0050.expected.out rename to tests/docparse/blocks_0050.txt.out.expected diff --git a/tests/lean/docparse/blocks_0051 b/tests/docparse/blocks_0051.txt similarity index 100% rename from tests/lean/docparse/blocks_0051 rename to tests/docparse/blocks_0051.txt diff --git a/tests/lean/docparse/blocks_0051.expected.out b/tests/docparse/blocks_0051.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0051.expected.out rename to tests/docparse/blocks_0051.txt.out.expected diff --git a/tests/lean/docparse/blocks_0052 b/tests/docparse/blocks_0052.txt similarity index 100% rename from tests/lean/docparse/blocks_0052 rename to tests/docparse/blocks_0052.txt diff --git a/tests/lean/docparse/blocks_0052.expected.out b/tests/docparse/blocks_0052.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0052.expected.out rename to tests/docparse/blocks_0052.txt.out.expected diff --git a/tests/lean/docparse/blocks_0053 b/tests/docparse/blocks_0053.txt similarity index 100% rename from tests/lean/docparse/blocks_0053 rename to tests/docparse/blocks_0053.txt diff --git a/tests/lean/docparse/blocks_0053.expected.out b/tests/docparse/blocks_0053.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0053.expected.out rename to tests/docparse/blocks_0053.txt.out.expected diff --git a/tests/lean/docparse/blocks_0054 b/tests/docparse/blocks_0054.txt similarity index 100% rename from tests/lean/docparse/blocks_0054 rename to tests/docparse/blocks_0054.txt diff --git a/tests/lean/docparse/blocks_0054.expected.out b/tests/docparse/blocks_0054.txt.out.expected similarity index 100% rename from tests/lean/docparse/blocks_0054.expected.out rename to tests/docparse/blocks_0054.txt.out.expected diff --git a/tests/lean/docparse/codeBlock_0001 b/tests/docparse/codeBlock_0001.txt similarity index 100% rename from tests/lean/docparse/codeBlock_0001 rename to tests/docparse/codeBlock_0001.txt diff --git a/tests/lean/docparse/codeBlock_0001.expected.out b/tests/docparse/codeBlock_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/codeBlock_0001.expected.out rename to tests/docparse/codeBlock_0001.txt.out.expected diff --git a/tests/lean/docparse/codeBlock_0002 b/tests/docparse/codeBlock_0002.txt similarity index 100% rename from tests/lean/docparse/codeBlock_0002 rename to tests/docparse/codeBlock_0002.txt diff --git a/tests/lean/docparse/codeBlock_0002.expected.out b/tests/docparse/codeBlock_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/codeBlock_0002.expected.out rename to tests/docparse/codeBlock_0002.txt.out.expected diff --git a/tests/lean/docparse/codeBlock_0003 b/tests/docparse/codeBlock_0003.txt similarity index 100% rename from tests/lean/docparse/codeBlock_0003 rename to tests/docparse/codeBlock_0003.txt diff --git a/tests/lean/docparse/codeBlock_0003.expected.out b/tests/docparse/codeBlock_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/codeBlock_0003.expected.out rename to tests/docparse/codeBlock_0003.txt.out.expected diff --git a/tests/lean/docparse/codeBlock_0004 b/tests/docparse/codeBlock_0004.txt similarity index 100% rename from tests/lean/docparse/codeBlock_0004 rename to tests/docparse/codeBlock_0004.txt diff --git a/tests/lean/docparse/codeBlock_0004.expected.out b/tests/docparse/codeBlock_0004.txt.out.expected similarity index 100% rename from tests/lean/docparse/codeBlock_0004.expected.out rename to tests/docparse/codeBlock_0004.txt.out.expected diff --git a/tests/lean/docparse/codeBlock_0005 b/tests/docparse/codeBlock_0005.txt similarity index 100% rename from tests/lean/docparse/codeBlock_0005 rename to tests/docparse/codeBlock_0005.txt diff --git a/tests/lean/docparse/codeBlock_0005.expected.out b/tests/docparse/codeBlock_0005.txt.out.expected similarity index 100% rename from tests/lean/docparse/codeBlock_0005.expected.out rename to tests/docparse/codeBlock_0005.txt.out.expected diff --git a/tests/lean/docparse/codeBlock_0006 b/tests/docparse/codeBlock_0006.txt similarity index 100% rename from tests/lean/docparse/codeBlock_0006 rename to tests/docparse/codeBlock_0006.txt diff --git a/tests/lean/docparse/codeBlock_0006.expected.out b/tests/docparse/codeBlock_0006.txt.out.expected similarity index 100% rename from tests/lean/docparse/codeBlock_0006.expected.out rename to tests/docparse/codeBlock_0006.txt.out.expected diff --git a/tests/lean/docparse/codeBlock_0007 b/tests/docparse/codeBlock_0007.txt similarity index 100% rename from tests/lean/docparse/codeBlock_0007 rename to tests/docparse/codeBlock_0007.txt diff --git a/tests/lean/docparse/codeBlock_0007.expected.out b/tests/docparse/codeBlock_0007.txt.out.expected similarity index 100% rename from tests/lean/docparse/codeBlock_0007.expected.out rename to tests/docparse/codeBlock_0007.txt.out.expected diff --git a/tests/lean/docparse/codeBlock_0008 b/tests/docparse/codeBlock_0008.txt similarity index 100% rename from tests/lean/docparse/codeBlock_0008 rename to tests/docparse/codeBlock_0008.txt diff --git a/tests/lean/docparse/codeBlock_0008.expected.out b/tests/docparse/codeBlock_0008.txt.out.expected similarity index 100% rename from tests/lean/docparse/codeBlock_0008.expected.out rename to tests/docparse/codeBlock_0008.txt.out.expected diff --git a/tests/lean/docparse/codeBlock_0009 b/tests/docparse/codeBlock_0009.txt similarity index 100% rename from tests/lean/docparse/codeBlock_0009 rename to tests/docparse/codeBlock_0009.txt diff --git a/tests/lean/docparse/codeBlock_0009.expected.out b/tests/docparse/codeBlock_0009.txt.out.expected similarity index 100% rename from tests/lean/docparse/codeBlock_0009.expected.out rename to tests/docparse/codeBlock_0009.txt.out.expected diff --git a/tests/lean/docparse/codeBlock_0010 b/tests/docparse/codeBlock_0010.txt similarity index 100% rename from tests/lean/docparse/codeBlock_0010 rename to tests/docparse/codeBlock_0010.txt diff --git a/tests/lean/docparse/codeBlock_0010.expected.out b/tests/docparse/codeBlock_0010.txt.out.expected similarity index 100% rename from tests/lean/docparse/codeBlock_0010.expected.out rename to tests/docparse/codeBlock_0010.txt.out.expected diff --git a/tests/lean/docparse/codeBlock_0011 b/tests/docparse/codeBlock_0011.txt similarity index 100% rename from tests/lean/docparse/codeBlock_0011 rename to tests/docparse/codeBlock_0011.txt diff --git a/tests/lean/docparse/codeBlock_0011.expected.out b/tests/docparse/codeBlock_0011.txt.out.expected similarity index 100% rename from tests/lean/docparse/codeBlock_0011.expected.out rename to tests/docparse/codeBlock_0011.txt.out.expected diff --git a/tests/lean/docparse/codeBlock_0012 b/tests/docparse/codeBlock_0012.txt similarity index 100% rename from tests/lean/docparse/codeBlock_0012 rename to tests/docparse/codeBlock_0012.txt diff --git a/tests/lean/docparse/codeBlock_0012.expected.out b/tests/docparse/codeBlock_0012.txt.out.expected similarity index 100% rename from tests/lean/docparse/codeBlock_0012.expected.out rename to tests/docparse/codeBlock_0012.txt.out.expected diff --git a/tests/lean/docparse/codeBlock_0013 b/tests/docparse/codeBlock_0013.txt similarity index 100% rename from tests/lean/docparse/codeBlock_0013 rename to tests/docparse/codeBlock_0013.txt diff --git a/tests/lean/docparse/codeBlock_0013.expected.out b/tests/docparse/codeBlock_0013.txt.out.expected similarity index 100% rename from tests/lean/docparse/codeBlock_0013.expected.out rename to tests/docparse/codeBlock_0013.txt.out.expected diff --git a/tests/lean/docparse/codeBlock_0014 b/tests/docparse/codeBlock_0014.txt similarity index 100% rename from tests/lean/docparse/codeBlock_0014 rename to tests/docparse/codeBlock_0014.txt diff --git a/tests/lean/docparse/codeBlock_0014.expected.out b/tests/docparse/codeBlock_0014.txt.out.expected similarity index 100% rename from tests/lean/docparse/codeBlock_0014.expected.out rename to tests/docparse/codeBlock_0014.txt.out.expected diff --git a/tests/lean/docparse/code_0001 b/tests/docparse/code_0001.txt similarity index 100% rename from tests/lean/docparse/code_0001 rename to tests/docparse/code_0001.txt diff --git a/tests/lean/docparse/code_0001.expected.out b/tests/docparse/code_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/code_0001.expected.out rename to tests/docparse/code_0001.txt.out.expected diff --git a/tests/lean/docparse/code_0002 b/tests/docparse/code_0002.txt similarity index 100% rename from tests/lean/docparse/code_0002 rename to tests/docparse/code_0002.txt diff --git a/tests/lean/docparse/code_0002.expected.out b/tests/docparse/code_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/code_0002.expected.out rename to tests/docparse/code_0002.txt.out.expected diff --git a/tests/lean/docparse/code_0003 b/tests/docparse/code_0003.txt similarity index 100% rename from tests/lean/docparse/code_0003 rename to tests/docparse/code_0003.txt diff --git a/tests/lean/docparse/code_0003.expected.out b/tests/docparse/code_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/code_0003.expected.out rename to tests/docparse/code_0003.txt.out.expected diff --git a/tests/lean/docparse/code_0004 b/tests/docparse/code_0004.txt similarity index 100% rename from tests/lean/docparse/code_0004 rename to tests/docparse/code_0004.txt diff --git a/tests/lean/docparse/code_0004.expected.out b/tests/docparse/code_0004.txt.out.expected similarity index 100% rename from tests/lean/docparse/code_0004.expected.out rename to tests/docparse/code_0004.txt.out.expected diff --git a/tests/lean/docparse/code_0005 b/tests/docparse/code_0005.txt similarity index 100% rename from tests/lean/docparse/code_0005 rename to tests/docparse/code_0005.txt diff --git a/tests/lean/docparse/code_0005.expected.out b/tests/docparse/code_0005.txt.out.expected similarity index 100% rename from tests/lean/docparse/code_0005.expected.out rename to tests/docparse/code_0005.txt.out.expected diff --git a/tests/lean/docparse/code_0006 b/tests/docparse/code_0006.txt similarity index 100% rename from tests/lean/docparse/code_0006 rename to tests/docparse/code_0006.txt diff --git a/tests/lean/docparse/code_0006.expected.out b/tests/docparse/code_0006.txt.out.expected similarity index 100% rename from tests/lean/docparse/code_0006.expected.out rename to tests/docparse/code_0006.txt.out.expected diff --git a/tests/lean/docparse/code_0007 b/tests/docparse/code_0007.txt similarity index 100% rename from tests/lean/docparse/code_0007 rename to tests/docparse/code_0007.txt diff --git a/tests/lean/docparse/code_0007.expected.out b/tests/docparse/code_0007.txt.out.expected similarity index 100% rename from tests/lean/docparse/code_0007.expected.out rename to tests/docparse/code_0007.txt.out.expected diff --git a/tests/lean/docparse/code_0008 b/tests/docparse/code_0008.txt similarity index 100% rename from tests/lean/docparse/code_0008 rename to tests/docparse/code_0008.txt diff --git a/tests/lean/docparse/code_0008.expected.out b/tests/docparse/code_0008.txt.out.expected similarity index 100% rename from tests/lean/docparse/code_0008.expected.out rename to tests/docparse/code_0008.txt.out.expected diff --git a/tests/lean/docparse/code_0009 b/tests/docparse/code_0009.txt similarity index 100% rename from tests/lean/docparse/code_0009 rename to tests/docparse/code_0009.txt diff --git a/tests/lean/docparse/code_0009.expected.out b/tests/docparse/code_0009.txt.out.expected similarity index 100% rename from tests/lean/docparse/code_0009.expected.out rename to tests/docparse/code_0009.txt.out.expected diff --git a/tests/lean/docparse/code_0010 b/tests/docparse/code_0010.txt similarity index 100% rename from tests/lean/docparse/code_0010 rename to tests/docparse/code_0010.txt diff --git a/tests/lean/docparse/code_0010.expected.out b/tests/docparse/code_0010.txt.out.expected similarity index 100% rename from tests/lean/docparse/code_0010.expected.out rename to tests/docparse/code_0010.txt.out.expected diff --git a/tests/lean/docparse/code_0011 b/tests/docparse/code_0011.txt similarity index 100% rename from tests/lean/docparse/code_0011 rename to tests/docparse/code_0011.txt diff --git a/tests/lean/docparse/code_0011.expected.out b/tests/docparse/code_0011.txt.out.expected similarity index 100% rename from tests/lean/docparse/code_0011.expected.out rename to tests/docparse/code_0011.txt.out.expected diff --git a/tests/lean/docparse/directive_0001 b/tests/docparse/directive_0001.txt similarity index 100% rename from tests/lean/docparse/directive_0001 rename to tests/docparse/directive_0001.txt diff --git a/tests/lean/docparse/directive_0001.expected.out b/tests/docparse/directive_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/directive_0001.expected.out rename to tests/docparse/directive_0001.txt.out.expected diff --git a/tests/lean/docparse/directive_0002 b/tests/docparse/directive_0002.txt similarity index 100% rename from tests/lean/docparse/directive_0002 rename to tests/docparse/directive_0002.txt diff --git a/tests/lean/docparse/directive_0002.expected.out b/tests/docparse/directive_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/directive_0002.expected.out rename to tests/docparse/directive_0002.txt.out.expected diff --git a/tests/lean/docparse/directive_0003 b/tests/docparse/directive_0003.txt similarity index 100% rename from tests/lean/docparse/directive_0003 rename to tests/docparse/directive_0003.txt diff --git a/tests/lean/docparse/directive_0003.expected.out b/tests/docparse/directive_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/directive_0003.expected.out rename to tests/docparse/directive_0003.txt.out.expected diff --git a/tests/lean/docparse/directive_0004 b/tests/docparse/directive_0004.txt similarity index 100% rename from tests/lean/docparse/directive_0004 rename to tests/docparse/directive_0004.txt diff --git a/tests/lean/docparse/directive_0004.expected.out b/tests/docparse/directive_0004.txt.out.expected similarity index 100% rename from tests/lean/docparse/directive_0004.expected.out rename to tests/docparse/directive_0004.txt.out.expected diff --git a/tests/lean/docparse/directive_0005 b/tests/docparse/directive_0005.txt similarity index 100% rename from tests/lean/docparse/directive_0005 rename to tests/docparse/directive_0005.txt diff --git a/tests/lean/docparse/directive_0005.expected.out b/tests/docparse/directive_0005.txt.out.expected similarity index 100% rename from tests/lean/docparse/directive_0005.expected.out rename to tests/docparse/directive_0005.txt.out.expected diff --git a/tests/lean/docparse/directive_0006 b/tests/docparse/directive_0006.txt similarity index 100% rename from tests/lean/docparse/directive_0006 rename to tests/docparse/directive_0006.txt diff --git a/tests/lean/docparse/directive_0006.expected.out b/tests/docparse/directive_0006.txt.out.expected similarity index 100% rename from tests/lean/docparse/directive_0006.expected.out rename to tests/docparse/directive_0006.txt.out.expected diff --git a/tests/lean/docparse/document_0001 b/tests/docparse/document_0001.txt similarity index 100% rename from tests/lean/docparse/document_0001 rename to tests/docparse/document_0001.txt diff --git a/tests/lean/docparse/document_0001.expected.out b/tests/docparse/document_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/document_0001.expected.out rename to tests/docparse/document_0001.txt.out.expected diff --git a/tests/lean/docparse/emph_0001 b/tests/docparse/emph_0001.txt similarity index 100% rename from tests/lean/docparse/emph_0001 rename to tests/docparse/emph_0001.txt diff --git a/tests/lean/docparse/emph_0001.expected.out b/tests/docparse/emph_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/emph_0001.expected.out rename to tests/docparse/emph_0001.txt.out.expected diff --git a/tests/lean/docparse/emph_0002 b/tests/docparse/emph_0002.txt similarity index 100% rename from tests/lean/docparse/emph_0002 rename to tests/docparse/emph_0002.txt diff --git a/tests/lean/docparse/emph_0002.expected.out b/tests/docparse/emph_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/emph_0002.expected.out rename to tests/docparse/emph_0002.txt.out.expected diff --git a/tests/lean/docparse/emph_0003 b/tests/docparse/emph_0003.txt similarity index 100% rename from tests/lean/docparse/emph_0003 rename to tests/docparse/emph_0003.txt diff --git a/tests/lean/docparse/emph_0003.expected.out b/tests/docparse/emph_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/emph_0003.expected.out rename to tests/docparse/emph_0003.txt.out.expected diff --git a/tests/lean/docparse/header_0001 b/tests/docparse/header_0001.txt similarity index 100% rename from tests/lean/docparse/header_0001 rename to tests/docparse/header_0001.txt diff --git a/tests/lean/docparse/header_0001.expected.out b/tests/docparse/header_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/header_0001.expected.out rename to tests/docparse/header_0001.txt.out.expected diff --git a/tests/lean/docparse/inlineTextChar_0001 b/tests/docparse/inlineTextChar_0001.txt similarity index 100% rename from tests/lean/docparse/inlineTextChar_0001 rename to tests/docparse/inlineTextChar_0001.txt diff --git a/tests/lean/docparse/inlineTextChar_0001.expected.out b/tests/docparse/inlineTextChar_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/inlineTextChar_0001.expected.out rename to tests/docparse/inlineTextChar_0001.txt.out.expected diff --git a/tests/lean/docparse/inlineTextChar_0002 b/tests/docparse/inlineTextChar_0002.txt similarity index 100% rename from tests/lean/docparse/inlineTextChar_0002 rename to tests/docparse/inlineTextChar_0002.txt diff --git a/tests/lean/docparse/inlineTextChar_0002.expected.out b/tests/docparse/inlineTextChar_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/inlineTextChar_0002.expected.out rename to tests/docparse/inlineTextChar_0002.txt.out.expected diff --git a/tests/lean/docparse/inlineTextChar_0003 b/tests/docparse/inlineTextChar_0003.txt similarity index 100% rename from tests/lean/docparse/inlineTextChar_0003 rename to tests/docparse/inlineTextChar_0003.txt diff --git a/tests/lean/docparse/inlineTextChar_0003.expected.out b/tests/docparse/inlineTextChar_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/inlineTextChar_0003.expected.out rename to tests/docparse/inlineTextChar_0003.txt.out.expected diff --git a/tests/lean/docparse/inlineTextChar_0004 b/tests/docparse/inlineTextChar_0004.txt similarity index 100% rename from tests/lean/docparse/inlineTextChar_0004 rename to tests/docparse/inlineTextChar_0004.txt diff --git a/tests/lean/docparse/inlineTextChar_0004.expected.out b/tests/docparse/inlineTextChar_0004.txt.out.expected similarity index 100% rename from tests/lean/docparse/inlineTextChar_0004.expected.out rename to tests/docparse/inlineTextChar_0004.txt.out.expected diff --git a/tests/lean/docparse/inlineTextChar_0005 b/tests/docparse/inlineTextChar_0005.txt similarity index 100% rename from tests/lean/docparse/inlineTextChar_0005 rename to tests/docparse/inlineTextChar_0005.txt diff --git a/tests/lean/docparse/inlineTextChar_0005.expected.out b/tests/docparse/inlineTextChar_0005.txt.out.expected similarity index 100% rename from tests/lean/docparse/inlineTextChar_0005.expected.out rename to tests/docparse/inlineTextChar_0005.txt.out.expected diff --git a/tests/lean/docparse/lookaheadOrderedListIndicator_0001 b/tests/docparse/lookaheadOrderedListIndicator_0001.txt similarity index 100% rename from tests/lean/docparse/lookaheadOrderedListIndicator_0001 rename to tests/docparse/lookaheadOrderedListIndicator_0001.txt diff --git a/tests/lean/docparse/lookaheadOrderedListIndicator_0001.expected.out b/tests/docparse/lookaheadOrderedListIndicator_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/lookaheadOrderedListIndicator_0001.expected.out rename to tests/docparse/lookaheadOrderedListIndicator_0001.txt.out.expected diff --git a/tests/lean/docparse/lookaheadOrderedListIndicator_0002 b/tests/docparse/lookaheadOrderedListIndicator_0002.txt similarity index 100% rename from tests/lean/docparse/lookaheadOrderedListIndicator_0002 rename to tests/docparse/lookaheadOrderedListIndicator_0002.txt diff --git a/tests/lean/docparse/lookaheadOrderedListIndicator_0002.expected.out b/tests/docparse/lookaheadOrderedListIndicator_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/lookaheadOrderedListIndicator_0002.expected.out rename to tests/docparse/lookaheadOrderedListIndicator_0002.txt.out.expected diff --git a/tests/lean/docparse/lookaheadOrderedListIndicator_0003 b/tests/docparse/lookaheadOrderedListIndicator_0003.txt similarity index 100% rename from tests/lean/docparse/lookaheadOrderedListIndicator_0003 rename to tests/docparse/lookaheadOrderedListIndicator_0003.txt diff --git a/tests/lean/docparse/lookaheadOrderedListIndicator_0003.expected.out b/tests/docparse/lookaheadOrderedListIndicator_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/lookaheadOrderedListIndicator_0003.expected.out rename to tests/docparse/lookaheadOrderedListIndicator_0003.txt.out.expected diff --git a/tests/lean/docparse/lookaheadOrderedListIndicator_0004 b/tests/docparse/lookaheadOrderedListIndicator_0004.txt similarity index 100% rename from tests/lean/docparse/lookaheadOrderedListIndicator_0004 rename to tests/docparse/lookaheadOrderedListIndicator_0004.txt diff --git a/tests/lean/docparse/lookaheadOrderedListIndicator_0004.expected.out b/tests/docparse/lookaheadOrderedListIndicator_0004.txt.out.expected similarity index 100% rename from tests/lean/docparse/lookaheadOrderedListIndicator_0004.expected.out rename to tests/docparse/lookaheadOrderedListIndicator_0004.txt.out.expected diff --git a/tests/lean/docparse/lookaheadOrderedListIndicator_0005 b/tests/docparse/lookaheadOrderedListIndicator_0005.txt similarity index 100% rename from tests/lean/docparse/lookaheadOrderedListIndicator_0005 rename to tests/docparse/lookaheadOrderedListIndicator_0005.txt diff --git a/tests/lean/docparse/lookaheadOrderedListIndicator_0005.expected.out b/tests/docparse/lookaheadOrderedListIndicator_0005.txt.out.expected similarity index 100% rename from tests/lean/docparse/lookaheadOrderedListIndicator_0005.expected.out rename to tests/docparse/lookaheadOrderedListIndicator_0005.txt.out.expected diff --git a/tests/lean/docparse/lookaheadOrderedListIndicator_0006 b/tests/docparse/lookaheadOrderedListIndicator_0006.txt similarity index 100% rename from tests/lean/docparse/lookaheadOrderedListIndicator_0006 rename to tests/docparse/lookaheadOrderedListIndicator_0006.txt diff --git a/tests/lean/docparse/lookaheadOrderedListIndicator_0006.expected.out b/tests/docparse/lookaheadOrderedListIndicator_0006.txt.out.expected similarity index 100% rename from tests/lean/docparse/lookaheadOrderedListIndicator_0006.expected.out rename to tests/docparse/lookaheadOrderedListIndicator_0006.txt.out.expected diff --git a/tests/lean/docparse/lookaheadOrderedListIndicator_0007 b/tests/docparse/lookaheadOrderedListIndicator_0007.txt similarity index 100% rename from tests/lean/docparse/lookaheadOrderedListIndicator_0007 rename to tests/docparse/lookaheadOrderedListIndicator_0007.txt diff --git a/tests/lean/docparse/lookaheadOrderedListIndicator_0007.expected.out b/tests/docparse/lookaheadOrderedListIndicator_0007.txt.out.expected similarity index 100% rename from tests/lean/docparse/lookaheadOrderedListIndicator_0007.expected.out rename to tests/docparse/lookaheadOrderedListIndicator_0007.txt.out.expected diff --git a/tests/lean/docparse/lookaheadUnorderedListIndicator_0001 b/tests/docparse/lookaheadUnorderedListIndicator_0001.txt similarity index 100% rename from tests/lean/docparse/lookaheadUnorderedListIndicator_0001 rename to tests/docparse/lookaheadUnorderedListIndicator_0001.txt diff --git a/tests/lean/docparse/lookaheadUnorderedListIndicator_0001.expected.out b/tests/docparse/lookaheadUnorderedListIndicator_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/lookaheadUnorderedListIndicator_0001.expected.out rename to tests/docparse/lookaheadUnorderedListIndicator_0001.txt.out.expected diff --git a/tests/lean/docparse/lookaheadUnorderedListIndicator_0002 b/tests/docparse/lookaheadUnorderedListIndicator_0002.txt similarity index 100% rename from tests/lean/docparse/lookaheadUnorderedListIndicator_0002 rename to tests/docparse/lookaheadUnorderedListIndicator_0002.txt diff --git a/tests/lean/docparse/lookaheadUnorderedListIndicator_0002.expected.out b/tests/docparse/lookaheadUnorderedListIndicator_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/lookaheadUnorderedListIndicator_0002.expected.out rename to tests/docparse/lookaheadUnorderedListIndicator_0002.txt.out.expected diff --git a/tests/lean/docparse/lookaheadUnorderedListIndicator_0003 b/tests/docparse/lookaheadUnorderedListIndicator_0003.txt similarity index 100% rename from tests/lean/docparse/lookaheadUnorderedListIndicator_0003 rename to tests/docparse/lookaheadUnorderedListIndicator_0003.txt diff --git a/tests/lean/docparse/lookaheadUnorderedListIndicator_0003.expected.out b/tests/docparse/lookaheadUnorderedListIndicator_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/lookaheadUnorderedListIndicator_0003.expected.out rename to tests/docparse/lookaheadUnorderedListIndicator_0003.txt.out.expected diff --git a/tests/lean/docparse/lookaheadUnorderedListIndicator_0004 b/tests/docparse/lookaheadUnorderedListIndicator_0004.txt similarity index 100% rename from tests/lean/docparse/lookaheadUnorderedListIndicator_0004 rename to tests/docparse/lookaheadUnorderedListIndicator_0004.txt diff --git a/tests/lean/docparse/lookaheadUnorderedListIndicator_0004.expected.out b/tests/docparse/lookaheadUnorderedListIndicator_0004.txt.out.expected similarity index 100% rename from tests/lean/docparse/lookaheadUnorderedListIndicator_0004.expected.out rename to tests/docparse/lookaheadUnorderedListIndicator_0004.txt.out.expected diff --git a/tests/lean/docparse/lookaheadUnorderedListIndicator_0005 b/tests/docparse/lookaheadUnorderedListIndicator_0005.txt similarity index 100% rename from tests/lean/docparse/lookaheadUnorderedListIndicator_0005 rename to tests/docparse/lookaheadUnorderedListIndicator_0005.txt diff --git a/tests/lean/docparse/lookaheadUnorderedListIndicator_0005.expected.out b/tests/docparse/lookaheadUnorderedListIndicator_0005.txt.out.expected similarity index 100% rename from tests/lean/docparse/lookaheadUnorderedListIndicator_0005.expected.out rename to tests/docparse/lookaheadUnorderedListIndicator_0005.txt.out.expected diff --git a/tests/lean/docparse/lookaheadUnorderedListIndicator_0006 b/tests/docparse/lookaheadUnorderedListIndicator_0006.txt similarity index 100% rename from tests/lean/docparse/lookaheadUnorderedListIndicator_0006 rename to tests/docparse/lookaheadUnorderedListIndicator_0006.txt diff --git a/tests/lean/docparse/lookaheadUnorderedListIndicator_0006.expected.out b/tests/docparse/lookaheadUnorderedListIndicator_0006.txt.out.expected similarity index 100% rename from tests/lean/docparse/lookaheadUnorderedListIndicator_0006.expected.out rename to tests/docparse/lookaheadUnorderedListIndicator_0006.txt.out.expected diff --git a/tests/lean/docparse/manyInlineTextChar_0001 b/tests/docparse/manyInlineTextChar_0001.txt similarity index 100% rename from tests/lean/docparse/manyInlineTextChar_0001 rename to tests/docparse/manyInlineTextChar_0001.txt diff --git a/tests/lean/docparse/manyInlineTextChar_0001.expected.out b/tests/docparse/manyInlineTextChar_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/manyInlineTextChar_0001.expected.out rename to tests/docparse/manyInlineTextChar_0001.txt.out.expected diff --git a/tests/lean/docparse/manyInlineTextChar_0002 b/tests/docparse/manyInlineTextChar_0002.txt similarity index 100% rename from tests/lean/docparse/manyInlineTextChar_0002 rename to tests/docparse/manyInlineTextChar_0002.txt diff --git a/tests/lean/docparse/manyInlineTextChar_0002.expected.out b/tests/docparse/manyInlineTextChar_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/manyInlineTextChar_0002.expected.out rename to tests/docparse/manyInlineTextChar_0002.txt.out.expected diff --git a/tests/lean/docparse/manyInlineTextChar_0003 b/tests/docparse/manyInlineTextChar_0003.txt similarity index 100% rename from tests/lean/docparse/manyInlineTextChar_0003 rename to tests/docparse/manyInlineTextChar_0003.txt diff --git a/tests/lean/docparse/manyInlineTextChar_0003.expected.out b/tests/docparse/manyInlineTextChar_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/manyInlineTextChar_0003.expected.out rename to tests/docparse/manyInlineTextChar_0003.txt.out.expected diff --git a/tests/lean/docparse/metadataBlock_0001 b/tests/docparse/metadataBlock_0001.txt similarity index 100% rename from tests/lean/docparse/metadataBlock_0001 rename to tests/docparse/metadataBlock_0001.txt diff --git a/tests/lean/docparse/metadataBlock_0001.expected.out b/tests/docparse/metadataBlock_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/metadataBlock_0001.expected.out rename to tests/docparse/metadataBlock_0001.txt.out.expected diff --git a/tests/lean/docparse/metadataBlock_0002 b/tests/docparse/metadataBlock_0002.txt similarity index 100% rename from tests/lean/docparse/metadataBlock_0002 rename to tests/docparse/metadataBlock_0002.txt diff --git a/tests/lean/docparse/metadataBlock_0002.expected.out b/tests/docparse/metadataBlock_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/metadataBlock_0002.expected.out rename to tests/docparse/metadataBlock_0002.txt.out.expected diff --git a/tests/lean/docparse/metadataBlock_0003 b/tests/docparse/metadataBlock_0003.txt similarity index 100% rename from tests/lean/docparse/metadataBlock_0003 rename to tests/docparse/metadataBlock_0003.txt diff --git a/tests/lean/docparse/metadataBlock_0003.expected.out b/tests/docparse/metadataBlock_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/metadataBlock_0003.expected.out rename to tests/docparse/metadataBlock_0003.txt.out.expected diff --git a/tests/lean/docparse/nameAndArgs_0001 b/tests/docparse/nameAndArgs_0001.txt similarity index 100% rename from tests/lean/docparse/nameAndArgs_0001 rename to tests/docparse/nameAndArgs_0001.txt diff --git a/tests/lean/docparse/nameAndArgs_0001.expected.out b/tests/docparse/nameAndArgs_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/nameAndArgs_0001.expected.out rename to tests/docparse/nameAndArgs_0001.txt.out.expected diff --git a/tests/lean/docparse/nameAndArgs_0002 b/tests/docparse/nameAndArgs_0002.txt similarity index 100% rename from tests/lean/docparse/nameAndArgs_0002 rename to tests/docparse/nameAndArgs_0002.txt diff --git a/tests/lean/docparse/nameAndArgs_0002.expected.out b/tests/docparse/nameAndArgs_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/nameAndArgs_0002.expected.out rename to tests/docparse/nameAndArgs_0002.txt.out.expected diff --git a/tests/lean/docparse/nameAndArgs_0003 b/tests/docparse/nameAndArgs_0003.txt similarity index 100% rename from tests/lean/docparse/nameAndArgs_0003 rename to tests/docparse/nameAndArgs_0003.txt diff --git a/tests/lean/docparse/nameAndArgs_0003.expected.out b/tests/docparse/nameAndArgs_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/nameAndArgs_0003.expected.out rename to tests/docparse/nameAndArgs_0003.txt.out.expected diff --git a/tests/lean/docparse/nameAndArgs_0004 b/tests/docparse/nameAndArgs_0004.txt similarity index 100% rename from tests/lean/docparse/nameAndArgs_0004 rename to tests/docparse/nameAndArgs_0004.txt diff --git a/tests/lean/docparse/nameAndArgs_0004.expected.out b/tests/docparse/nameAndArgs_0004.txt.out.expected similarity index 100% rename from tests/lean/docparse/nameAndArgs_0004.expected.out rename to tests/docparse/nameAndArgs_0004.txt.out.expected diff --git a/tests/lean/docparse/nameAndArgs_0005 b/tests/docparse/nameAndArgs_0005.txt similarity index 100% rename from tests/lean/docparse/nameAndArgs_0005 rename to tests/docparse/nameAndArgs_0005.txt diff --git a/tests/lean/docparse/nameAndArgs_0005.expected.out b/tests/docparse/nameAndArgs_0005.txt.out.expected similarity index 100% rename from tests/lean/docparse/nameAndArgs_0005.expected.out rename to tests/docparse/nameAndArgs_0005.txt.out.expected diff --git a/tests/lean/docparse/nameAndArgs_0006 b/tests/docparse/nameAndArgs_0006.txt similarity index 100% rename from tests/lean/docparse/nameAndArgs_0006 rename to tests/docparse/nameAndArgs_0006.txt diff --git a/tests/lean/docparse/nameAndArgs_0006.expected.out b/tests/docparse/nameAndArgs_0006.txt.out.expected similarity index 100% rename from tests/lean/docparse/nameAndArgs_0006.expected.out rename to tests/docparse/nameAndArgs_0006.txt.out.expected diff --git a/tests/lean/docparse/nameAndArgs_0007 b/tests/docparse/nameAndArgs_0007.txt similarity index 100% rename from tests/lean/docparse/nameAndArgs_0007 rename to tests/docparse/nameAndArgs_0007.txt diff --git a/tests/lean/docparse/nameAndArgs_0007.expected.out b/tests/docparse/nameAndArgs_0007.txt.out.expected similarity index 100% rename from tests/lean/docparse/nameAndArgs_0007.expected.out rename to tests/docparse/nameAndArgs_0007.txt.out.expected diff --git a/tests/lean/docparse/nameAndArgs_0008 b/tests/docparse/nameAndArgs_0008.txt similarity index 100% rename from tests/lean/docparse/nameAndArgs_0008 rename to tests/docparse/nameAndArgs_0008.txt diff --git a/tests/lean/docparse/nameAndArgs_0008.expected.out b/tests/docparse/nameAndArgs_0008.txt.out.expected similarity index 100% rename from tests/lean/docparse/nameAndArgs_0008.expected.out rename to tests/docparse/nameAndArgs_0008.txt.out.expected diff --git a/tests/lean/docparse/nameAndArgs_0009 b/tests/docparse/nameAndArgs_0009.txt similarity index 100% rename from tests/lean/docparse/nameAndArgs_0009 rename to tests/docparse/nameAndArgs_0009.txt diff --git a/tests/lean/docparse/nameAndArgs_0009.expected.out b/tests/docparse/nameAndArgs_0009.txt.out.expected similarity index 100% rename from tests/lean/docparse/nameAndArgs_0009.expected.out rename to tests/docparse/nameAndArgs_0009.txt.out.expected diff --git a/tests/lean/docparse/nameAndArgs_0010 b/tests/docparse/nameAndArgs_0010.txt similarity index 100% rename from tests/lean/docparse/nameAndArgs_0010 rename to tests/docparse/nameAndArgs_0010.txt diff --git a/tests/lean/docparse/nameAndArgs_0010.expected.out b/tests/docparse/nameAndArgs_0010.txt.out.expected similarity index 100% rename from tests/lean/docparse/nameAndArgs_0010.expected.out rename to tests/docparse/nameAndArgs_0010.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0001 b/tests/docparse/oneInline_0001.txt similarity index 100% rename from tests/lean/docparse/oneInline_0001 rename to tests/docparse/oneInline_0001.txt diff --git a/tests/lean/docparse/oneInline_0001.expected.out b/tests/docparse/oneInline_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0001.expected.out rename to tests/docparse/oneInline_0001.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0002 b/tests/docparse/oneInline_0002.txt similarity index 100% rename from tests/lean/docparse/oneInline_0002 rename to tests/docparse/oneInline_0002.txt diff --git a/tests/lean/docparse/oneInline_0002.expected.out b/tests/docparse/oneInline_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0002.expected.out rename to tests/docparse/oneInline_0002.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0003 b/tests/docparse/oneInline_0003.txt similarity index 100% rename from tests/lean/docparse/oneInline_0003 rename to tests/docparse/oneInline_0003.txt diff --git a/tests/lean/docparse/oneInline_0003.expected.out b/tests/docparse/oneInline_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0003.expected.out rename to tests/docparse/oneInline_0003.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0004 b/tests/docparse/oneInline_0004.txt similarity index 100% rename from tests/lean/docparse/oneInline_0004 rename to tests/docparse/oneInline_0004.txt diff --git a/tests/lean/docparse/oneInline_0004.expected.out b/tests/docparse/oneInline_0004.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0004.expected.out rename to tests/docparse/oneInline_0004.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0005 b/tests/docparse/oneInline_0005.txt similarity index 100% rename from tests/lean/docparse/oneInline_0005 rename to tests/docparse/oneInline_0005.txt diff --git a/tests/lean/docparse/oneInline_0005.expected.out b/tests/docparse/oneInline_0005.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0005.expected.out rename to tests/docparse/oneInline_0005.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0006 b/tests/docparse/oneInline_0006.txt similarity index 100% rename from tests/lean/docparse/oneInline_0006 rename to tests/docparse/oneInline_0006.txt diff --git a/tests/lean/docparse/oneInline_0006.expected.out b/tests/docparse/oneInline_0006.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0006.expected.out rename to tests/docparse/oneInline_0006.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0007 b/tests/docparse/oneInline_0007.txt similarity index 100% rename from tests/lean/docparse/oneInline_0007 rename to tests/docparse/oneInline_0007.txt diff --git a/tests/lean/docparse/oneInline_0007.expected.out b/tests/docparse/oneInline_0007.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0007.expected.out rename to tests/docparse/oneInline_0007.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0008 b/tests/docparse/oneInline_0008.txt similarity index 100% rename from tests/lean/docparse/oneInline_0008 rename to tests/docparse/oneInline_0008.txt diff --git a/tests/lean/docparse/oneInline_0008.expected.out b/tests/docparse/oneInline_0008.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0008.expected.out rename to tests/docparse/oneInline_0008.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0009 b/tests/docparse/oneInline_0009.txt similarity index 100% rename from tests/lean/docparse/oneInline_0009 rename to tests/docparse/oneInline_0009.txt diff --git a/tests/lean/docparse/oneInline_0009.expected.out b/tests/docparse/oneInline_0009.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0009.expected.out rename to tests/docparse/oneInline_0009.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0010 b/tests/docparse/oneInline_0010.txt similarity index 100% rename from tests/lean/docparse/oneInline_0010 rename to tests/docparse/oneInline_0010.txt diff --git a/tests/lean/docparse/oneInline_0010.expected.out b/tests/docparse/oneInline_0010.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0010.expected.out rename to tests/docparse/oneInline_0010.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0011 b/tests/docparse/oneInline_0011.txt similarity index 100% rename from tests/lean/docparse/oneInline_0011 rename to tests/docparse/oneInline_0011.txt diff --git a/tests/lean/docparse/oneInline_0011.expected.out b/tests/docparse/oneInline_0011.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0011.expected.out rename to tests/docparse/oneInline_0011.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0012 b/tests/docparse/oneInline_0012.txt similarity index 100% rename from tests/lean/docparse/oneInline_0012 rename to tests/docparse/oneInline_0012.txt diff --git a/tests/lean/docparse/oneInline_0012.expected.out b/tests/docparse/oneInline_0012.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0012.expected.out rename to tests/docparse/oneInline_0012.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0013 b/tests/docparse/oneInline_0013.txt similarity index 100% rename from tests/lean/docparse/oneInline_0013 rename to tests/docparse/oneInline_0013.txt diff --git a/tests/lean/docparse/oneInline_0013.expected.out b/tests/docparse/oneInline_0013.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0013.expected.out rename to tests/docparse/oneInline_0013.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0014 b/tests/docparse/oneInline_0014.txt similarity index 100% rename from tests/lean/docparse/oneInline_0014 rename to tests/docparse/oneInline_0014.txt diff --git a/tests/lean/docparse/oneInline_0014.expected.out b/tests/docparse/oneInline_0014.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0014.expected.out rename to tests/docparse/oneInline_0014.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0015 b/tests/docparse/oneInline_0015.txt similarity index 100% rename from tests/lean/docparse/oneInline_0015 rename to tests/docparse/oneInline_0015.txt diff --git a/tests/lean/docparse/oneInline_0015.expected.out b/tests/docparse/oneInline_0015.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0015.expected.out rename to tests/docparse/oneInline_0015.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0016 b/tests/docparse/oneInline_0016.txt similarity index 100% rename from tests/lean/docparse/oneInline_0016 rename to tests/docparse/oneInline_0016.txt diff --git a/tests/lean/docparse/oneInline_0016.expected.out b/tests/docparse/oneInline_0016.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0016.expected.out rename to tests/docparse/oneInline_0016.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0017 b/tests/docparse/oneInline_0017.txt similarity index 100% rename from tests/lean/docparse/oneInline_0017 rename to tests/docparse/oneInline_0017.txt diff --git a/tests/lean/docparse/oneInline_0017.expected.out b/tests/docparse/oneInline_0017.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0017.expected.out rename to tests/docparse/oneInline_0017.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0018 b/tests/docparse/oneInline_0018.txt similarity index 100% rename from tests/lean/docparse/oneInline_0018 rename to tests/docparse/oneInline_0018.txt diff --git a/tests/lean/docparse/oneInline_0018.expected.out b/tests/docparse/oneInline_0018.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0018.expected.out rename to tests/docparse/oneInline_0018.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0019 b/tests/docparse/oneInline_0019.txt similarity index 100% rename from tests/lean/docparse/oneInline_0019 rename to tests/docparse/oneInline_0019.txt diff --git a/tests/lean/docparse/oneInline_0019.expected.out b/tests/docparse/oneInline_0019.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0019.expected.out rename to tests/docparse/oneInline_0019.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0020 b/tests/docparse/oneInline_0020.txt similarity index 100% rename from tests/lean/docparse/oneInline_0020 rename to tests/docparse/oneInline_0020.txt diff --git a/tests/lean/docparse/oneInline_0020.expected.out b/tests/docparse/oneInline_0020.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0020.expected.out rename to tests/docparse/oneInline_0020.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0021 b/tests/docparse/oneInline_0021.txt similarity index 100% rename from tests/lean/docparse/oneInline_0021 rename to tests/docparse/oneInline_0021.txt diff --git a/tests/lean/docparse/oneInline_0021.expected.out b/tests/docparse/oneInline_0021.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0021.expected.out rename to tests/docparse/oneInline_0021.txt.out.expected diff --git a/tests/lean/docparse/oneInline_0022 b/tests/docparse/oneInline_0022.txt similarity index 100% rename from tests/lean/docparse/oneInline_0022 rename to tests/docparse/oneInline_0022.txt diff --git a/tests/lean/docparse/oneInline_0022.expected.out b/tests/docparse/oneInline_0022.txt.out.expected similarity index 100% rename from tests/lean/docparse/oneInline_0022.expected.out rename to tests/docparse/oneInline_0022.txt.out.expected diff --git a/tests/lean/docparse/recoverBlock_0001 b/tests/docparse/recoverBlock_0001.txt similarity index 100% rename from tests/lean/docparse/recoverBlock_0001 rename to tests/docparse/recoverBlock_0001.txt diff --git a/tests/lean/docparse/recoverBlock_0001.expected.out b/tests/docparse/recoverBlock_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/recoverBlock_0001.expected.out rename to tests/docparse/recoverBlock_0001.txt.out.expected diff --git a/tests/lean/docparse/recoverBlocks_0001 b/tests/docparse/recoverBlocks_0001.txt similarity index 100% rename from tests/lean/docparse/recoverBlocks_0001 rename to tests/docparse/recoverBlocks_0001.txt diff --git a/tests/lean/docparse/recoverBlocks_0001.expected.out b/tests/docparse/recoverBlocks_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/recoverBlocks_0001.expected.out rename to tests/docparse/recoverBlocks_0001.txt.out.expected diff --git a/tests/lean/docparse/role_0001 b/tests/docparse/role_0001.txt similarity index 100% rename from tests/lean/docparse/role_0001 rename to tests/docparse/role_0001.txt diff --git a/tests/lean/docparse/role_0001.expected.out b/tests/docparse/role_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/role_0001.expected.out rename to tests/docparse/role_0001.txt.out.expected diff --git a/tests/lean/docparse/role_0002 b/tests/docparse/role_0002.txt similarity index 100% rename from tests/lean/docparse/role_0002 rename to tests/docparse/role_0002.txt diff --git a/tests/lean/docparse/role_0002.expected.out b/tests/docparse/role_0002.txt.out.expected similarity index 100% rename from tests/lean/docparse/role_0002.expected.out rename to tests/docparse/role_0002.txt.out.expected diff --git a/tests/lean/docparse/role_0003 b/tests/docparse/role_0003.txt similarity index 100% rename from tests/lean/docparse/role_0003 rename to tests/docparse/role_0003.txt diff --git a/tests/lean/docparse/role_0003.expected.out b/tests/docparse/role_0003.txt.out.expected similarity index 100% rename from tests/lean/docparse/role_0003.expected.out rename to tests/docparse/role_0003.txt.out.expected diff --git a/tests/lean/docparse/role_0004 b/tests/docparse/role_0004.txt similarity index 100% rename from tests/lean/docparse/role_0004 rename to tests/docparse/role_0004.txt diff --git a/tests/lean/docparse/role_0004.expected.out b/tests/docparse/role_0004.txt.out.expected similarity index 100% rename from tests/lean/docparse/role_0004.expected.out rename to tests/docparse/role_0004.txt.out.expected diff --git a/tests/lean/docparse/role_0005 b/tests/docparse/role_0005.txt similarity index 100% rename from tests/lean/docparse/role_0005 rename to tests/docparse/role_0005.txt diff --git a/tests/lean/docparse/role_0005.expected.out b/tests/docparse/role_0005.txt.out.expected similarity index 100% rename from tests/lean/docparse/role_0005.expected.out rename to tests/docparse/role_0005.txt.out.expected diff --git a/tests/lean/docparse/test_single.sh b/tests/docparse/run_test similarity index 52% rename from tests/lean/docparse/test_single.sh rename to tests/docparse/run_test index 66355a303ab6..e2362fd2e60d 100755 --- a/tests/lean/docparse/test_single.sh +++ b/tests/docparse/run_test @@ -1,9 +1,13 @@ #!/usr/bin/env bash -source ../../common.sh +source ../env_test.sh +source "$TEST_DIR/util.sh" # IO.Process.exit (used by the file worker) seems to be incompatible with LSAN # TODO: investigate or work around export ASAN_OPTIONS=detect_leaks=0 -exec_capture lean -Dlinter.all=false --run run.lean "$f" -diff_produced +exec_capture "$1" \ + lean -Dlinter.all=false --run run_test.lean "$1" + +check_exit "$1" +check_out "$1" diff --git a/tests/lean/docparse/run.lean b/tests/docparse/run_test.lean similarity index 100% rename from tests/lean/docparse/run.lean rename to tests/docparse/run_test.lean diff --git a/tests/lean/docparse/text_0001 b/tests/docparse/text_0001.txt similarity index 100% rename from tests/lean/docparse/text_0001 rename to tests/docparse/text_0001.txt diff --git a/tests/lean/docparse/text_0001.expected.out b/tests/docparse/text_0001.txt.out.expected similarity index 100% rename from tests/lean/docparse/text_0001.expected.out rename to tests/docparse/text_0001.txt.out.expected diff --git a/tests/lint.py b/tests/lint.py index b269907f4e0d..34bdefc52cf0 100755 --- a/tests/lint.py +++ b/tests/lint.py @@ -28,6 +28,7 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: "tests/bench/cbv", "tests/bench/inundation", "tests/compiler", + "tests/lean/docparse", "tests/lean/interactive", "tests/lean/run", "tests/lean/server", @@ -53,6 +54,7 @@ def nag(reason: str, path: Path, fatal: bool = True) -> None: "doc/examples", "tests/compile", "tests/compile_bench", + "tests/docparse", "tests/elab", "tests/elab_bench", "tests/elab_fail", From 58d4acd401137df5b0ee945f1f39eaf20e22084e Mon Sep 17 00:00:00 2001 From: Joscha Date: Thu, 5 Mar 2026 17:30:22 +0100 Subject: [PATCH 15/15] Improve docs --- tests/README.md | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/tests/README.md b/tests/README.md index ec963cf44eee..1651034fcee0 100644 --- a/tests/README.md +++ b/tests/README.md @@ -33,6 +33,7 @@ Benchmarks belonging to the old framework are not included in this description. - `compile_bench`: Benchmarks that compile lean files and measure the execution of the resulting binary, as well as optionally run the same lean file through the interpreter. + These are also executed as part of the test suite, and `.out.expected` files are ignored when benchmarking. - `docparse`: Docstring parsing tests. - `elab`: @@ -41,6 +42,7 @@ Benchmarks belonging to the old framework are not included in this description. Like `elab`, but expecting an exit code of 1 instead of 0. - `elab_bench`: Like `elab`, but measuring the elaboration performance. + These are also executed as part of the test suite, and `.out.expected` files are ignored when benchmarking. - `server`, `server_interactive`: Test LSP server requests. - `lake_bench`: @@ -98,7 +100,7 @@ Run an individual benchmark by `cd`-ing into its directory and then using ./run_bench testfile # in a test pile ``` -## How to write a test or benchmark? +## How to write a test? If your test fits one of the existing test piles: @@ -123,6 +125,28 @@ Otherwise, create a new test directory or pile: by updating the directory structure section above. 5. Optionally update [`lint.py`](lint.py) if it makes sense. +## How to write a benchmark? + +When writing a benchmark, consider that most benchmarks are also executed as tests. +You can check that this is the case if a `run_test` script exists next to the `run_bench` script in the directory. +When run as benchmark, the problem instance should be large enough to result in reliable measurements. +When run as test, the problem instance should be as small as possible, but large enough to still test the different code paths. + +The main mechanism to scale problem instances is the `TEST_BENCH` environment variable. +It is unset in tests and set to `1` in benchmarks. +Inside your benchmark, check whether the variable exists and adjust the problem size accordingly. + +Inside the `compile_bench` directory, there is a second mechanism: +Using a `.init.sh` file to pass command line arguments to your test. +This is useful if you also want to generate graphs for your parametric benchmarks. +See [`tests/compile_bench/binarytrees.lean`](tests/compile_bench/binarytrees.lean) as an example. + +If you want custom metrics aside from the usual `instructions`, `wall-clock`, ... +inside the `elab_bench` or `compile_bench` directories, +you can print them to stdout in the format `measurement: [ ]`, +e.g. `measurement: size 1337 B` or `measurement: iterations 42`. +See [`tests/compile_bench/ilean_roundtrip.lean`](tests/compile_bench/ilean_roundtrip.lean) as an example. + ## How to fix existing tests after your change breaks them? If the tests break because the expected output differs from the actual output,