tests: use runtime from build for doc/tags with :help (#10479)

This is better practice in general, and allows to remove the "helptags
ALL" hacks.

Ref: https://github.com/neovim/neovim/issues/8824
Ref: https://github.com/neovim/neovim/commit/f1b67c3453c

* Makefile: fix dependencies with regard to helptags

- use the file as the main target to avoid unnecessary triggering
- use "make oldtest" on Travis to ensure it gets built
This commit is contained in:
Daniel Hahler 2019-08-28 22:47:54 +02:00 committed by GitHub
parent 1d59575450
commit 6cc76194b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 23 additions and 10 deletions

View File

@ -541,6 +541,7 @@ add_subdirectory(test/includes)
add_subdirectory(config)
add_subdirectory(test/functional/fixtures) # compile test programs
add_subdirectory(runtime)
get_directory_property(GENERATED_HELP_TAGS DIRECTORY runtime DEFINITION GENERATED_HELP_TAGS)
if(WIN32)
install_helper(
FILES ${DEPS_PREFIX}/share/nvim-qt/runtime/plugin/nvim_gui_shim.vim
@ -562,7 +563,7 @@ if(BUSTED_PRG)
endif()
set(UNITTEST_PREREQS nvim-test unittest-headers)
set(FUNCTIONALTEST_PREREQS nvim printargs-test shell-test)
set(FUNCTIONALTEST_PREREQS nvim printargs-test shell-test ${GENERATED_HELP_TAGS})
if(NOT WIN32)
list(APPEND FUNCTIONALTEST_PREREQS tty-test)
endif()

View File

@ -114,7 +114,7 @@ build/.ran-third-party-cmake::
touch $@
# TODO: cmake 3.2+ add_custom_target() has a USES_TERMINAL flag.
oldtest: | nvim helptags
oldtest: | nvim build/runtime/doc/tags
+$(SINGLE_MAKE) -C src/nvim/testdir clean
ifeq ($(strip $(TEST_FILE)),)
+$(SINGLE_MAKE) -C src/nvim/testdir NVIM_PRG="$(realpath build/bin/nvim)" $(MAKEOVERRIDES)
@ -122,11 +122,11 @@ else
+$(SINGLE_MAKE) -C src/nvim/testdir NVIM_PRG="$(realpath build/bin/nvim)" NEW_TESTS=$(TEST_FILE) SCRIPTS= $(MAKEOVERRIDES)
endif
helptags: | nvim
build/runtime/doc/tags helptags: | nvim
+$(BUILD_CMD) -C build runtime/doc/tags
# Builds help HTML _and_ checks for invalid help tags.
helphtml: | nvim helptags
helphtml: | nvim build/runtime/doc/tags
+$(BUILD_CMD) -C build doc_html
functionaltest: | nvim

View File

@ -113,7 +113,7 @@ run_functionaltests() {(
run_oldtests() {(
enter_suite oldtests
ulimit -c unlimited || true
if ! make -C "${TRAVIS_BUILD_DIR}/src/nvim/testdir"; then
if ! make oldtest; then
reset
fail 'oldtests' F 'Legacy tests failed'
fi

View File

@ -74,6 +74,9 @@ set nomore
" Output all messages in English.
lang mess C
" Nvim: append runtime from build dir, which contains the generated doc/tags.
let &runtimepath .= ','.expand($BUILD_DIR).'/runtime/'
" Always use forward slashes.
set shellslash

View File

@ -300,7 +300,6 @@ func Test_augroup_warning()
endfunc
func Test_BufReadCmdHelp()
helptags ALL
" This used to cause access to free memory
au BufReadCmd * e +h
help
@ -382,7 +381,6 @@ func Test_three_windows()
only
helptags ALL
help
wincmd w
1quit

View File

@ -242,7 +242,6 @@ func Test_getcompletion()
let l = getcompletion('break', 'compiler')
call assert_equal([], l)
helptags ALL
let l = getcompletion('last', 'help')
call assert_true(index(l, ':tablast') >= 0)
let l = getcompletion('giveup', 'help')

View File

@ -89,8 +89,11 @@ func Test_tagfiles()
help
let tf = tagfiles()
" Nvim: expectation(s) based on tags in build dir (added to &rtp).
" Filter out the (non-existing) '../../../runtime/doc/tags'.
call filter(tf, 'filereadable(v:val)')
call assert_equal(1, len(tf))
call assert_equal(fnamemodify(expand('$VIMRUNTIME/doc/tags'), ':p:gs?\\?/?'),
call assert_equal(fnamemodify(expand('$BUILD_DIR/runtime/doc/tags'), ':p:gs?\\?/?'),
\ fnamemodify(tf[0], ':p:gs?\\?/?'))
helpclose
call assert_equal(['Xtags1', 'Xtags2'], tagfiles())

View File

@ -33,9 +33,9 @@ describe('autocmd BufEnter', function()
end)
it('triggered by ":split normal|:help|:bw"', function()
helpers.add_builddir_to_rtp()
command("split normal")
command("wincmd j")
command("helptags runtime/doc")
command("help")
command("wincmd L")
command("autocmd BufEnter normal let g:bufentered = 1")

View File

@ -8,6 +8,7 @@ describe('autocmd FileType', function()
before_each(clear)
it("is triggered by :help only once", function()
helpers.add_builddir_to_rtp()
command("let g:foo = 0")
command("autocmd FileType help let g:foo = g:foo + 1")
command("help help")

View File

@ -9,6 +9,7 @@ describe(':help', function()
before_each(clear)
it('window closed makes cursor return to a valid win/buf #9773', function()
helpers.add_builddir_to_rtp()
command('help help')
eq(1001, funcs.win_getid())
command('quit')

View File

@ -800,6 +800,11 @@ function module.parse_context(ctx)
end, parsed)
end
function module.add_builddir_to_rtp()
-- Add runtime from build dir for doc/tags (used with :help).
module.command(string.format([[set rtp+=%s/runtime]], module.test_build_dir))
end
module = global_helpers.tbl_extend('error', module, global_helpers)
return function(after_each)

View File

@ -97,6 +97,7 @@ describe('python3 provider', function()
end)
it('RPC call to expand("<afile>") during BufDelete #5245 #5617', function()
helpers.add_builddir_to_rtp()
source([=[
python3 << EOF
import vim

View File

@ -101,6 +101,7 @@ end)
describe('ruby provider', function()
it('RPC call to expand("<afile>") during BufDelete #5245 #5617', function()
helpers.add_builddir_to_rtp()
command([=[autocmd BufDelete * ruby VIM::evaluate('expand("<afile>")')]=])
feed_command('help help')
eq(2, eval('1+1')) -- Still alive?