aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordundargoc <33953936+dundargoc@users.noreply.github.com>2023-02-10 00:42:37 +0100
committerGitHub <noreply@github.com>2023-02-10 00:42:37 +0100
commitfe1e6b82f4f3ff3d919d1243f37e9216781bb786 (patch)
treedcfa32f11cafd490ac0e5cd2b3ae13880b24ce42
parenteb3f8989a01cce538150700f7bfe75b1af23bd4d (diff)
downloadrneovim-fe1e6b82f4f3ff3d919d1243f37e9216781bb786.tar.gz
rneovim-fe1e6b82f4f3ff3d919d1243f37e9216781bb786.tar.bz2
rneovim-fe1e6b82f4f3ff3d919d1243f37e9216781bb786.zip
ci: inline test.sh to run_tests.sh (#22198)
This will get rid of the common/ directory.
-rw-r--r--CMakeLists.txt2
-rw-r--r--ci/common/test.sh173
-rwxr-xr-xci/run_tests.sh176
3 files changed, 173 insertions, 178 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7abbff3471..d12b71a651 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -276,8 +276,6 @@ add_glob_target(
GLOB_PAT *.sh
EXCLUDE
scripts/pvscheck.sh
- ci/common
- ci/snap
TOUCH_STRATEGY SINGLE)
add_custom_target(lintcommit
diff --git a/ci/common/test.sh b/ci/common/test.sh
deleted file mode 100644
index 5ef7dc4024..0000000000
--- a/ci/common/test.sh
+++ /dev/null
@@ -1,173 +0,0 @@
-fail() {
- local test_name="$1"
- local message="$2"
-
- : "${message:=Test $test_name failed}"
-
- local full_msg="$test_name :: $message"
- echo "Failed: $full_msg"
- exit 1
-}
-
-print_core() {
- local app="$1"
- local core="$2"
- if test "$app" = quiet ; then
- echo "Found core $core"
- return 0
- fi
- echo "======= Core file $core ======="
- if test "${CI_OS_NAME}" = osx ; then
- lldb -Q -o "bt all" -f "${app}" -c "${core}"
- else
- gdb -n -batch -ex 'thread apply all bt full' "${app}" -c "${core}"
- fi
-}
-
-check_core_dumps() {
- local del=
- if test "$1" = "--delete" ; then
- del=1
- shift
- fi
- local app="${1:-${BUILD_DIR}/bin/nvim}"
- local cores
- if test "${CI_OS_NAME}" = osx ; then
- cores="$(find /cores/ -type f -print)"
- local _sudo='sudo'
- else
- cores="$(find ./ -type f \( -name 'core.*' -o -name core -o -name nvim.core \) -print)"
- local _sudo=
- fi
-
- if test -z "${cores}" ; then
- return
- fi
- local core
- for core in $cores; do
- if test "$del" = "1" ; then
- print_core "$app" "$core" >&2
- "$_sudo" rm "$core"
- else
- print_core "$app" "$core"
- fi
- done
- if test "$app" != quiet ; then
- fail 'cores' 'Core dumps found'
- fi
-}
-
-check_logs() {
- # Iterate through each log to remove an useless warning.
- # shellcheck disable=SC2044
- for log in $(find "${1}" -type f -name "${2}"); do
- sed -i "${log}" \
- -e '/Warning: noted but unhandled ioctl/d' \
- -e '/could cause spurious value errors to appear/d' \
- -e '/See README_MISSING_SYSCALL_OR_IOCTL for guidance/d'
- done
-
- # Now do it again, but only consider files with size > 0.
- local err=""
- # shellcheck disable=SC2044
- for log in $(find "${1}" -type f -name "${2}" -size +0); do
- cat "${log}"
- err=1
- rm "${log}"
- done
- if test -n "${err}" ; then
- fail 'logs' 'Runtime errors detected.'
- fi
-}
-
-valgrind_check() {
- check_logs "${1}" "valgrind-*"
-}
-
-check_sanitizer() {
- if test -n "${CLANG_SANITIZER}"; then
- check_logs "${1}" "*san.*" | cat
- fi
-}
-
-unittests() {(
- ulimit -c unlimited || true
- if ! ninja -C "${BUILD_DIR}" unittest; then
- fail 'unittests' 'Unit tests failed'
- fi
- check_core_dumps "$(command -v luajit)"
-)}
-
-functionaltests() {(
- ulimit -c unlimited || true
- if ! ninja -C "${BUILD_DIR}" "${FUNCTIONALTEST}"; then
- fail 'functionaltests' 'Functional tests failed'
- fi
- check_sanitizer "${LOG_DIR}"
- valgrind_check "${LOG_DIR}"
- check_core_dumps
-)}
-
-oldtests() {(
- ulimit -c unlimited || true
- if ! make oldtest; then
- reset
- fail 'oldtests' 'Legacy tests failed'
- fi
- check_sanitizer "${LOG_DIR}"
- valgrind_check "${LOG_DIR}"
- check_core_dumps
-)}
-
-check_runtime_files() {(
- local test_name="$1" ; shift
- local message="$1" ; shift
- local tst="$1" ; shift
-
- cd runtime || exit
- for file in $(git ls-files "$@") ; do
- # Check that test is not trying to work with files with spaces/etc
- # Prefer failing the build over using more robust construct because files
- # with IFS are not welcome.
- if ! test -e "$file" ; then
- fail "$test_name" "It appears that $file is only a part of the file name"
- fi
- if ! test "$tst" "$INSTALL_PREFIX/share/nvim/runtime/$file" ; then
- fail "$test_name" "$(printf "%s%s" "$message" "$file")"
- fi
- done
-)}
-
-install_nvim() {(
- if ! ninja -C "${BUILD_DIR}" install; then
- fail 'install' 'make install failed'
- fi
-
- "${INSTALL_PREFIX}/bin/nvim" --version
- if ! "${INSTALL_PREFIX}/bin/nvim" -u NONE -e -c ':help' -c ':qall' ; then
- echo "Running ':help' in the installed nvim failed."
- echo "Maybe the helptags have not been generated properly."
- fail 'help' 'Failed running :help'
- fi
-
- # Check that all runtime files were installed
- check_runtime_files \
- 'runtime-install' \
- 'It appears that %s is not installed.' \
- -e \
- '*.vim' '*.ps' '*.dict' '*.py' '*.tutor'
-
- # Check that some runtime files are installed and are executables
- check_runtime_files \
- 'not-exe' \
- 'It appears that %s is not installed or is not executable.' \
- -x \
- '*.awk' '*.sh' '*.bat'
-
- # Check that generated syntax file has function names, #5060.
- local genvimsynf=syntax/vim/generated.vim
- local gpat='syn keyword vimFuncName .*eval'
- if ! grep -q "$gpat" "${INSTALL_PREFIX}/share/nvim/runtime/$genvimsynf" ; then
- fail 'funcnames' "It appears that $genvimsynf does not contain $gpat."
- fi
-)}
diff --git a/ci/run_tests.sh b/ci/run_tests.sh
index f777026ac2..22ed4a4332 100755
--- a/ci/run_tests.sh
+++ b/ci/run_tests.sh
@@ -3,9 +3,179 @@
set -e
set -o pipefail
-CI_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-# shellcheck source-path=SCRIPTDIR
-source "${CI_DIR}/common/test.sh"
+fail() {
+ local test_name="$1"
+ local message="$2"
+
+ : "${message:=Test $test_name failed}"
+
+ local full_msg="$test_name :: $message"
+ echo "Failed: $full_msg"
+ exit 1
+}
+
+print_core() {
+ local app="$1"
+ local core="$2"
+ if test "$app" = quiet ; then
+ echo "Found core $core"
+ return 0
+ fi
+ echo "======= Core file $core ======="
+ if test "${CI_OS_NAME}" = osx ; then
+ lldb -Q -o "bt all" -f "${app}" -c "${core}"
+ else
+ gdb -n -batch -ex 'thread apply all bt full' "${app}" -c "${core}"
+ fi
+}
+
+check_core_dumps() {
+ local del=
+ if test "$1" = "--delete" ; then
+ del=1
+ shift
+ fi
+ local app="${1:-${BUILD_DIR}/bin/nvim}"
+ local cores
+ if test "${CI_OS_NAME}" = osx ; then
+ cores="$(find /cores/ -type f -print)"
+ local _sudo='sudo'
+ else
+ cores="$(find ./ -type f \( -name 'core.*' -o -name core -o -name nvim.core \) -print)"
+ local _sudo=
+ fi
+
+ if test -z "${cores}" ; then
+ return
+ fi
+ local core
+ for core in $cores; do
+ if test "$del" = "1" ; then
+ print_core "$app" "$core" >&2
+ "$_sudo" rm "$core"
+ else
+ print_core "$app" "$core"
+ fi
+ done
+ if test "$app" != quiet ; then
+ fail 'cores' 'Core dumps found'
+ fi
+}
+
+check_logs() {
+ # Iterate through each log to remove an useless warning.
+ # shellcheck disable=SC2044
+ for log in $(find "${1}" -type f -name "${2}"); do
+ sed -i "${log}" \
+ -e '/Warning: noted but unhandled ioctl/d' \
+ -e '/could cause spurious value errors to appear/d' \
+ -e '/See README_MISSING_SYSCALL_OR_IOCTL for guidance/d'
+ done
+
+ # Now do it again, but only consider files with size > 0.
+ local err=""
+ # shellcheck disable=SC2044
+ for log in $(find "${1}" -type f -name "${2}" -size +0); do
+ cat "${log}"
+ err=1
+ rm "${log}"
+ done
+ if test -n "${err}" ; then
+ fail 'logs' 'Runtime errors detected.'
+ fi
+}
+
+valgrind_check() {
+ check_logs "${1}" "valgrind-*"
+}
+
+check_sanitizer() {
+ if test -n "${CLANG_SANITIZER}"; then
+ check_logs "${1}" "*san.*" | cat
+ fi
+}
+
+unittests() {(
+ ulimit -c unlimited || true
+ if ! ninja -C "${BUILD_DIR}" unittest; then
+ fail 'unittests' 'Unit tests failed'
+ fi
+ check_core_dumps "$(command -v luajit)"
+)}
+
+functionaltests() {(
+ ulimit -c unlimited || true
+ if ! ninja -C "${BUILD_DIR}" "${FUNCTIONALTEST}"; then
+ fail 'functionaltests' 'Functional tests failed'
+ fi
+ check_sanitizer "${LOG_DIR}"
+ valgrind_check "${LOG_DIR}"
+ check_core_dumps
+)}
+
+oldtests() {(
+ ulimit -c unlimited || true
+ if ! make oldtest; then
+ reset
+ fail 'oldtests' 'Legacy tests failed'
+ fi
+ check_sanitizer "${LOG_DIR}"
+ valgrind_check "${LOG_DIR}"
+ check_core_dumps
+)}
+
+check_runtime_files() {(
+ local test_name="$1" ; shift
+ local message="$1" ; shift
+ local tst="$1" ; shift
+
+ cd runtime || exit
+ for file in $(git ls-files "$@") ; do
+ # Check that test is not trying to work with files with spaces/etc
+ # Prefer failing the build over using more robust construct because files
+ # with IFS are not welcome.
+ if ! test -e "$file" ; then
+ fail "$test_name" "It appears that $file is only a part of the file name"
+ fi
+ if ! test "$tst" "$INSTALL_PREFIX/share/nvim/runtime/$file" ; then
+ fail "$test_name" "$(printf "%s%s" "$message" "$file")"
+ fi
+ done
+)}
+
+install_nvim() {(
+ if ! ninja -C "${BUILD_DIR}" install; then
+ fail 'install' 'make install failed'
+ fi
+
+ "${INSTALL_PREFIX}/bin/nvim" --version
+ if ! "${INSTALL_PREFIX}/bin/nvim" -u NONE -e -c ':help' -c ':qall' ; then
+ echo "Running ':help' in the installed nvim failed."
+ echo "Maybe the helptags have not been generated properly."
+ fail 'help' 'Failed running :help'
+ fi
+
+ # Check that all runtime files were installed
+ check_runtime_files \
+ 'runtime-install' \
+ 'It appears that %s is not installed.' \
+ -e \
+ '*.vim' '*.ps' '*.dict' '*.py' '*.tutor'
+
+ # Check that some runtime files are installed and are executables
+ check_runtime_files \
+ 'not-exe' \
+ 'It appears that %s is not installed or is not executable.' \
+ -x \
+ '*.awk' '*.sh' '*.bat'
+
+ # Check that generated syntax file has function names, #5060.
+ local genvimsynf=syntax/vim/generated.vim
+ local gpat='syn keyword vimFuncName .*eval'
+ if ! grep -q "$gpat" "${INSTALL_PREFIX}/share/nvim/runtime/$genvimsynf" ; then
+ fail 'funcnames' "It appears that $genvimsynf does not contain $gpat."
+ fi
+)}
build_nvim() {
check_core_dumps --delete quiet