123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #!/usr/bin/env bash
- if [ "$1" == "--help" ]; then
- echo "$(basename $0) <optional list of tests in form file:func>"
- echo "e.g.: "
- echo " - run all tests: $0"
- echo " - run specific tests script: $0 signature_help.test.vim"
- echo " - run specific tests fun: $0 signature_help.test.vim:Test_signatures_TopLine\(\)"
- exit 0
- elif [ "$1" == "--stdout" ]; then
- export YCM_TEST_STDOUT=1
- shift
- fi
- VIM=vim
- if [ "$1" == "--vim" ]; then
- VIM=$2
- shift
- shift
- fi
- RUN_VIM="${VIM} --clean --not-a-term"
- RUN_TEST="${RUN_VIM} -S lib/run_test.vim"
- pushd $(dirname $0) > /dev/null
- echo "Running YouCompleteMe Vim tests"
- RESULT=0
- TESTS="$@"
- if [ -z "$TESTS" ]; then
- TESTS=*.test.vim
- fi
- for t in ${TESTS}; do
- echo ""
- echo "%RUN: $t"
- # split on : into fileName and testName
- IFS=: read -s t T <<< "$t"
- TESTLOGDIR=$(pwd)/logs/$t
- if ${RUN_TEST} --cmd 'au SwapExists * let v:swapchoice = "e"' $t $T \
- && [ -f $t.res ]; then
- echo "%PASS: $t PASSED"
- else
- echo "%FAIL: $t FAILED - see $TESTLOGDIR"
- RESULT=1
- fi
- rm -rf $TESTLOGDIR
- mkdir -p $TESTLOGDIR
- ${RUN_VIM} --version > ${TESTLOGDIR}/vimversion
- for l in messages debuglog test.log *.testlog; do
- # In CI we can't view the output files, so we just have to cat them
- if [ -f $l ]; then
- if [ "$YCM_TEST_STDOUT" ]; then
- echo ""
- echo ""
- echo "*** START: $l ***"
- cat $l
- echo "*** END: $l ***"
- fi
- mv $l $TESTLOGDIR
- fi
- done
- if [ -n "${COVERAGE}" ]; then
- covimerage write_coverage --append \
- --source $(pwd)/.. \
- --data-file .coverage.vim \
- .vim_profile
- fi
- rm -f $t.res
- done
- echo "Done running tests"
- if [ -n "${COVERAGE}" ]; then
- mv .coverage.* ../
- fi
- popd > /dev/null
- echo ""
- echo "All done."
- exit $RESULT
|