Mercurial > vim
changeset 27116:5b267700e6ab v8.2.4087
patch 8.2.4087: cannot test items from an autoload script easily
Commit: https://github.com/vim/vim/commit/3e4fa3d7d37162cd08fc0c6e83f52fd323f63eba
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jan 13 22:05:09 2022 +0000
patch 8.2.4087: cannot test items from an autoload script easily
Problem: Cannot test items from an autoload script easily.
Solution: Add the "autoload" value for test_override().
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 13 Jan 2022 23:15:03 +0100 |
parents | 45d988099660 |
children | a11e7c054f98 |
files | runtime/doc/testing.txt src/globals.h src/testdir/test_vim9_import.vim src/testing.c src/version.c src/vim9script.c |
diffstat | 6 files changed, 53 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/testing.txt +++ b/runtime/doc/testing.txt @@ -188,23 +188,25 @@ test_override({name}, {val}) *test_ov to run tests. Only to be used for testing Vim! The override is enabled when {val} is non-zero and removed when {val} is zero. - Current supported values for name are: + Current supported values for {name} are: - name effect when {val} is non-zero ~ - redraw disable the redrawing() function - redraw_flag ignore the RedrawingDisabled flag + {name} effect when {val} is non-zero ~ + autoload `import autoload` will load the script right + away, not postponed until an item is used char_avail disable the char_avail() function - starting reset the "starting" variable, see below nfa_fail makes the NFA regexp engine fail to force a fallback to the old engine no_query_mouse do not query the mouse position for "dec" terminals no_wait_return set the "no_wait_return" flag. Not restored with "ALL". + redraw disable the redrawing() function + redraw_flag ignore the RedrawingDisabled flag + starting reset the "starting" variable, see below + term_props reset all terminal properties when the version + string is detected ui_delay time in msec to use in ui_delay(); overrules a wait time of up to 3 seconds for messages - term_props reset all terminal properties when the version - string is detected uptime overrules sysinfo.uptime ALL clear all overrides ({val} is not used)
--- a/src/globals.h +++ b/src/globals.h @@ -1643,6 +1643,7 @@ EXTERN int no_query_mouse_for_testing I EXTERN int ui_delay_for_testing INIT(= 0); EXTERN int reset_term_props_on_termresponse INIT(= FALSE); EXTERN long override_sysinfo_uptime INIT(= -1); +EXTERN int override_autoload INIT(= FALSE); EXTERN int in_free_unref_items INIT(= FALSE); #endif
--- a/src/testdir/test_vim9_import.vim +++ b/src/testdir/test_vim9_import.vim @@ -1288,6 +1288,42 @@ def Test_import_autoload_postponed() &rtp = save_rtp enddef +def Test_import_autoload_override() + mkdir('Xdir/autoload', 'p') + var save_rtp = &rtp + exe 'set rtp^=' .. getcwd() .. '/Xdir' + test_override('autoload', 1) + + var lines =<< trim END + vim9script autoload + + g:loaded_override = 'true' + export var variable = 'bla' + export def Function(): string + return 'bla' + enddef + END + writefile(lines, 'Xdir/autoload/override.vim') + + lines =<< trim END + vim9script + + import autoload 'override.vim' + assert_equal('true', g:loaded_override) + + def Tryit() + echo override.doesNotExist + enddef + defcompile + END + CheckScriptFailure(lines, 'E1048: Item not found in script: doesNotExist', 1) + + test_override('autoload', 0) + unlet g:loaded_override + delete('Xdir', 'rf') + &rtp = save_rtp +enddef + def Test_autoload_mapping() mkdir('Xdir/autoload', 'p') var save_rtp = &rtp
--- a/src/testing.c +++ b/src/testing.c @@ -1055,6 +1055,8 @@ f_test_override(typval_T *argvars, typva reset_term_props_on_termresponse = val; else if (STRCMP(name, (char_u *)"uptime") == 0) override_sysinfo_uptime = val; + else if (STRCMP(name, (char_u *)"autoload") == 0) + override_autoload = val; else if (STRCMP(name, (char_u *)"ALL") == 0) { disable_char_avail_for_testing = FALSE;
--- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4087, +/**/ 4086, /**/ 4085,
--- a/src/vim9script.c +++ b/src/vim9script.c @@ -496,6 +496,9 @@ handle_import( if (si->sn_autoload_prefix == NULL) si->sn_autoload_prefix = get_autoload_prefix(si); res = OK; + if (override_autoload && si->sn_state == SN_STATE_NOT_LOADED) + // testing override: load autoload script right away + (void)do_source(si->sn_name, FALSE, DOSO_NONE, NULL); } else res = FAIL;