defcompile
END
writefile(import_star_as_lines_no_dot, 'Ximport.vim')
- assert_fails('source Ximport.vim', 'E1060:')
+ assert_fails('source Ximport.vim', 'E1060:', '', 2, 'Func')
let import_star_as_lines_dot_space =<< trim END
vim9script
defcompile
END
writefile(import_star_as_lines_dot_space, 'Ximport.vim')
- assert_fails('source Ximport.vim', 'E1074:')
+ assert_fails('source Ximport.vim', 'E1074:', '', 1, 'Func')
let import_star_as_lines_missing_name =<< trim END
vim9script
defcompile
END
writefile(import_star_as_lines_missing_name, 'Ximport.vim')
- assert_fails('source Ximport.vim', 'E1048:')
+ assert_fails('source Ximport.vim', 'E1048:', '', 1, 'Func')
let import_star_as_lbr_lines =<< trim END
vim9script
import * from './Xexport.vim'
END
writefile(import_star_lines, 'Ximport.vim')
- assert_fails('source Ximport.vim', 'E1045:')
+ assert_fails('source Ximport.vim', 'E1045:', '', 2, 'Ximport.vim')
# try to import something that exists but is not exported
let import_not_exported_lines =<< trim END
import name from './Xexport.vim'
END
writefile(import_not_exported_lines, 'Ximport.vim')
- assert_fails('source Ximport.vim', 'E1049:')
+ assert_fails('source Ximport.vim', 'E1049:', '', 2, 'Ximport.vim')
# try to import something that is already defined
let import_already_defined =<< trim END
import exported from './Xexport.vim'
END
writefile(import_already_defined, 'Ximport.vim')
- assert_fails('source Ximport.vim', 'E1073:')
+ assert_fails('source Ximport.vim', 'E1073:', '', 3, 'Ximport.vim')
# try to import something that is already defined
import_already_defined =<< trim END
import * as exported from './Xexport.vim'
END
writefile(import_already_defined, 'Ximport.vim')
- assert_fails('source Ximport.vim', 'E1073:')
+ assert_fails('source Ximport.vim', 'E1073:', '', 3, 'Ximport.vim')
# try to import something that is already defined
import_already_defined =<< trim END
import {exported} from './Xexport.vim'
END
writefile(import_already_defined, 'Ximport.vim')
- assert_fails('source Ximport.vim', 'E1073:')
+ assert_fails('source Ximport.vim', 'E1073:', '', 3, 'Ximport.vim')
# import a very long name, requires making a copy
let import_long_name_lines =<< trim END
import name012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 from './Xexport.vim'
END
writefile(import_long_name_lines, 'Ximport.vim')
- assert_fails('source Ximport.vim', 'E1048:')
+ assert_fails('source Ximport.vim', 'E1048:', '', 2, 'Ximport.vim')
let import_no_from_lines =<< trim END
vim9script
import name './Xexport.vim'
END
writefile(import_no_from_lines, 'Ximport.vim')
- assert_fails('source Ximport.vim', 'E1070:')
+ assert_fails('source Ximport.vim', 'E1070:', '', 2, 'Ximport.vim')
let import_invalid_string_lines =<< trim END
vim9script
import name from Xexport.vim
END
writefile(import_invalid_string_lines, 'Ximport.vim')
- assert_fails('source Ximport.vim', 'E1071:')
+ assert_fails('source Ximport.vim', 'E1071:', '', 2, 'Ximport.vim')
let import_wrong_name_lines =<< trim END
vim9script
import name from './XnoExport.vim'
END
writefile(import_wrong_name_lines, 'Ximport.vim')
- assert_fails('source Ximport.vim', 'E1053:')
+ assert_fails('source Ximport.vim', 'E1053:', '', 2, 'Ximport.vim')
let import_missing_comma_lines =<< trim END
vim9script
import {exported name} from './Xexport.vim'
END
writefile(import_missing_comma_lines, 'Ximport3.vim')
- assert_fails('source Ximport3.vim', 'E1046:')
+ assert_fails('source Ximport3.vim', 'E1046:', '', 2, 'Ximport3.vim')
delete('Ximport.vim')
delete('Ximport3.vim')
let valone = 5678
END
writefile(lines, 'Xreload.vim')
- assert_fails('source Xreload.vim', 'E1041:')
+ assert_fails('source Xreload.vim', 'E1041:', '', 3, 'Xreload.vim')
delete('Xreload.vim')
delete('Ximport.vim')
let nono_lines =<< trim END
def g:DoCheck(no_exists: bool)
assert_equal('yes', FuncYes())
- assert_fails('FuncNo()', 'E117:')
+ assert_fails('FuncNo()', 'E117:', '', 2, 'DoCheck')
enddef
END
garray_T ga;
int save_trylevel = trylevel;
int called_emsg_before = called_emsg;
- int wrong_arg = FALSE;
+ char *wrong_arg_msg = NULL;
// trylevel must be zero for a ":throw" command to be considered failed
trylevel = 0;
if (list == NULL || list->lv_len < 1 || list->lv_len > 2)
{
- wrong_arg = TRUE;
+ wrong_arg_msg = e_assert_fails_second_arg;
goto theend;
}
CHECK_LIST_MATERIALIZE(list);
}
else
{
- wrong_arg = TRUE;
+ wrong_arg_msg = e_assert_fails_second_arg;
goto theend;
}
if (!error_found && argvars[2].v_type != VAR_UNKNOWN
- && argvars[3].v_type == VAR_NUMBER)
+ && argvars[3].v_type != VAR_UNKNOWN)
{
- if (argvars[3].vval.v_number >= 0
- && argvars[3].vval.v_number != emsg_assert_fails_lnum)
+ if (argvars[3].v_type != VAR_NUMBER)
+ {
+ wrong_arg_msg = e_assert_fails_fourth_argument;
+ goto theend;
+ }
+ else if (argvars[3].vval.v_number >= 0
+ && argvars[3].vval.v_number != emsg_assert_fails_lnum)
{
error_found = TRUE;
error_found_index = 3;
}
- if (!error_found && argvars[4].v_type == VAR_STRING
- && argvars[4].vval.v_string != NULL
+ if (!error_found && argvars[4].v_type != VAR_UNKNOWN)
+ {
+ if (argvars[4].v_type != VAR_STRING)
+ {
+ wrong_arg_msg = e_assert_fails_fifth_argument;
+ goto theend;
+ }
+ else if (argvars[4].vval.v_string != NULL
&& !pattern_match(argvars[4].vval.v_string,
emsg_assert_fails_context, FALSE))
- {
- error_found = TRUE;
- error_found_index = 4;
+ {
+ error_found = TRUE;
+ error_found_index = 4;
+ }
}
}
emsg_assert_fails_used = FALSE;
VIM_CLEAR(emsg_assert_fails_msg);
set_vim_var_string(VV_ERRMSG, NULL, 0);
- if (wrong_arg)
- emsg(_("E856: assert_fails() second argument must be a string or a list with one or two strings"));
+ if (wrong_arg_msg != NULL)
+ emsg(_(wrong_arg_msg));
}
/*