33 lines
1.0 KiB
Bash
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"
|