Files
tree-sitter-lscript/scripts/check-fixtures.sh
T
2026-09-23 00:36:22 -04:00

33 lines
1.0 KiB
Bash

#!/bin/sh
set -eu
tool_directory=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
tree_sitter=${TREE_SITTER:-"$tool_directory/node_modules/.bin/tree-sitter"}
cache_directory=${TMPDIR:-/tmp}/tree-sitter-lscript-cache
cd "$tool_directory"
XDG_CACHE_HOME="$cache_directory" "$tree_sitter" parse \
-p . --quiet --stat "$tool_directory"/test/fixtures/valid/*.ls
unexpected_success=0
for fixture in "$tool_directory"/test/fixtures/invalid/*.ls; do
if XDG_CACHE_HOME="$cache_directory" "$tree_sitter" parse \
-p . --quiet "$fixture" >/dev/null 2>&1; then
case "$(basename -- "$fixture")" in
adjacent_equal_minus.ls|bang_inequality.ls|repeated_result.ls)
;;
*)
echo "invalid fixture parsed without recovery errors: $fixture" >&2
unexpected_success=1
;;
esac
fi
done
if [ "$unexpected_success" -ne 0 ]; then
exit 1
fi
echo "Known recovery exceptions: adjacent_equal_minus, bang_inequality, repeated_result"