Meh I'll figure out submodules later
This commit is contained in:
parent
4ca9d44a90
commit
8cb281f436
352 changed files with 66107 additions and 0 deletions
97
.config/nvim/pack/tree/start/nui.nvim/scripts/test.sh
Executable file
97
.config/nvim/pack/tree/start/nui.nvim/scripts/test.sh
Executable file
|
|
@ -0,0 +1,97 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
declare -r plugins_dir="./.tests/site/pack/deps/start"
|
||||
declare -r module="nui"
|
||||
|
||||
declare test_scope="${module}"
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "${1}" in
|
||||
--clean)
|
||||
shift
|
||||
echo "[test] cleaning up environment"
|
||||
rm -rf "${plugins_dir}"
|
||||
echo "[test] envionment cleaned"
|
||||
;;
|
||||
*)
|
||||
if [[ "${test_scope}" == "${module}" ]] && [[ "${1}" == "${module}/"* ]]; then
|
||||
test_scope="${1}"
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
function setup_environment() {
|
||||
echo
|
||||
echo "[test] setting up environment"
|
||||
echo
|
||||
|
||||
if [[ ! -d "${plugins_dir}" ]]; then
|
||||
mkdir -p "${plugins_dir}"
|
||||
fi
|
||||
|
||||
if [[ ! -d "${plugins_dir}/plenary.nvim" ]]; then
|
||||
echo "[plugins] plenary.nvim: installing..."
|
||||
git clone https://github.com/nvim-lua/plenary.nvim "${plugins_dir}/plenary.nvim"
|
||||
# commit 9069d14a120cadb4f6825f76821533f2babcab92 broke luacov
|
||||
# issue: https://github.com/nvim-lua/plenary.nvim/issues/353
|
||||
local -r plenary_353_patch="$(pwd)/scripts/plenary-353.patch"
|
||||
git -C "${plugins_dir}/plenary.nvim" apply "${plenary_353_patch}"
|
||||
echo "[plugins] plenary.nvim: installed"
|
||||
echo
|
||||
fi
|
||||
|
||||
echo "[test] environment ready"
|
||||
echo
|
||||
}
|
||||
|
||||
function luacov_start() {
|
||||
luacov_dir="$(dirname "$(luarocks which luacov 2>/dev/null | head -1)")"
|
||||
if [[ "${luacov_dir}" == "." ]]; then
|
||||
luacov_dir=""
|
||||
fi
|
||||
|
||||
if test -n "${luacov_dir}"; then
|
||||
rm -f luacov.*.out
|
||||
export LUA_PATH=";;${luacov_dir}/?.lua"
|
||||
fi
|
||||
}
|
||||
|
||||
function luacov_end() {
|
||||
if test -n "${luacov_dir}"; then
|
||||
if test -f "luacov.stats.out"; then
|
||||
luacov
|
||||
|
||||
echo
|
||||
tail -n +$(($(grep -n "^Summary$" luacov.report.out | cut -d":" -f1) - 1)) luacov.report.out
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
setup_environment
|
||||
|
||||
luacov_start
|
||||
|
||||
declare test_logs=""
|
||||
|
||||
if [[ -d "./tests/${test_scope}/" ]]; then
|
||||
test_logs=$(nvim --headless --noplugin -u tests/init.lua -c "lua require('plenary.test_harness').test_directory('./tests/${test_scope}/', { minimal_init = 'tests/init.lua', sequential = true })" || true)
|
||||
elif [[ -f "./tests/${test_scope}_spec.lua" ]]; then
|
||||
test_logs=$(nvim --headless --noplugin -u tests/init.lua -c "lua require('plenary.busted').run('./tests/${test_scope}_spec.lua')" || true)
|
||||
fi
|
||||
|
||||
echo "${test_logs}"
|
||||
|
||||
luacov_end
|
||||
|
||||
if echo "${test_logs}" | grep --quiet "stack traceback"; then
|
||||
{
|
||||
echo ""
|
||||
echo "FOUND STACK TRACEBACK IN TEST LOGS"
|
||||
echo ""
|
||||
} >&2
|
||||
exit 1
|
||||
fi
|
||||
Loading…
Add table
Add a link
Reference in a new issue