mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-26 12:53:13 +00:00
Modify fish_tests to support specifying the tests to run via arguments
This commit is contained in:
parent
ddec870d25
commit
b60db79866
1 changed files with 58 additions and 32 deletions
|
@ -63,6 +63,26 @@
|
||||||
#include "parse_tree.h"
|
#include "parse_tree.h"
|
||||||
#include "parse_util.h"
|
#include "parse_util.h"
|
||||||
|
|
||||||
|
static const char * const * s_arguments;
|
||||||
|
|
||||||
|
/* Indicate if we should test the given function. Either we test everything (all arguments) or we run only tests that have a prefix in s_arguments */
|
||||||
|
static bool should_test_function(const char *func_name)
|
||||||
|
{
|
||||||
|
/* No args, test everything */
|
||||||
|
if (! s_arguments || ! s_arguments[0])
|
||||||
|
return true;
|
||||||
|
|
||||||
|
for (size_t i=0; s_arguments[i] != NULL; i++)
|
||||||
|
{
|
||||||
|
if (! strncmp(func_name, s_arguments[i], strlen(s_arguments[i])))
|
||||||
|
{
|
||||||
|
/* Prefix match */
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
The number of tests to run
|
The number of tests to run
|
||||||
*/
|
*/
|
||||||
|
@ -1100,6 +1120,12 @@ static void test_complete(void)
|
||||||
assert(completions.size() == 2);
|
assert(completions.size() == 2);
|
||||||
assert(completions.at(0).completion == L"$Foo1");
|
assert(completions.at(0).completion == L"$Foo1");
|
||||||
assert(completions.at(1).completion == L"$Bar1");
|
assert(completions.at(1).completion == L"$Bar1");
|
||||||
|
|
||||||
|
completions.clear();
|
||||||
|
complete(L"echo (/bin/ech", completions, COMPLETION_REQUEST_DEFAULT);
|
||||||
|
assert(completions.size() == 1);
|
||||||
|
assert(completions.at(0).completion == L"o");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
complete_set_variable_names(NULL);
|
complete_set_variable_names(NULL);
|
||||||
|
@ -2192,6 +2218,7 @@ int main(int argc, char **argv)
|
||||||
configure_thread_assertions_for_testing();
|
configure_thread_assertions_for_testing();
|
||||||
|
|
||||||
program_name=L"(ignore)";
|
program_name=L"(ignore)";
|
||||||
|
s_arguments = argv;
|
||||||
|
|
||||||
say(L"Testing low-level functionality");
|
say(L"Testing low-level functionality");
|
||||||
set_main_thread();
|
set_main_thread();
|
||||||
|
@ -2203,39 +2230,38 @@ int main(int argc, char **argv)
|
||||||
reader_init();
|
reader_init();
|
||||||
env_init();
|
env_init();
|
||||||
|
|
||||||
test_highlighting();
|
if (should_test_function("highlighting")) test_highlighting();
|
||||||
test_new_parser_ll2();
|
if (should_test_function("new_parser_ll2")) test_new_parser_ll2();
|
||||||
test_new_parser_fuzzing();
|
if (should_test_function("new_parser_fuzzing")) test_new_parser_fuzzing();
|
||||||
test_new_parser_correctness();
|
if (should_test_function("new_parser_correctness")) test_new_parser_correctness();
|
||||||
test_highlighting();
|
if (should_test_function("new_parser")) test_new_parser();
|
||||||
test_new_parser();
|
|
||||||
|
|
||||||
test_format();
|
if (should_test_function("format")) test_format();
|
||||||
test_escape();
|
if (should_test_function("escape")) test_escape();
|
||||||
test_convert();
|
if (should_test_function("convert")) test_convert();
|
||||||
test_convert_nulls();
|
if (should_test_function("convert_nulls")) test_convert_nulls();
|
||||||
test_tok();
|
if (should_test_function("tok")) test_tok();
|
||||||
test_fork();
|
if (should_test_function("fork")) test_fork();
|
||||||
test_parser();
|
if (should_test_function("parser")) test_parser();
|
||||||
test_utils();
|
if (should_test_function("utils")) test_utils();
|
||||||
test_escape_sequences();
|
if (should_test_function("escape_sequences")) test_escape_sequences();
|
||||||
test_lru();
|
if (should_test_function("lru")) test_lru();
|
||||||
test_expand();
|
if (should_test_function("expand")) test_expand();
|
||||||
test_fuzzy_match();
|
if (should_test_function("fuzzy_match")) test_fuzzy_match();
|
||||||
test_abbreviations();
|
if (should_test_function("abbreviations")) test_abbreviations();
|
||||||
test_test();
|
if (should_test_function("test")) test_test();
|
||||||
test_path();
|
if (should_test_function("path")) test_path();
|
||||||
test_word_motion();
|
if (should_test_function("word_motion")) test_word_motion();
|
||||||
test_is_potential_path();
|
if (should_test_function("is_potential_path")) test_is_potential_path();
|
||||||
test_colors();
|
if (should_test_function("colors")) test_colors();
|
||||||
test_complete();
|
if (should_test_function("complete")) test_complete();
|
||||||
test_completion_insertions();
|
if (should_test_function("completion_insertions")) test_completion_insertions();
|
||||||
test_autosuggestion_combining();
|
if (should_test_function("autosuggestion_combining")) test_autosuggestion_combining();
|
||||||
test_autosuggest_suggest_special();
|
if (should_test_function("autosuggest_suggest_special")) test_autosuggest_suggest_special();
|
||||||
history_tests_t::test_history();
|
if (should_test_function("history")) history_tests_t::test_history();
|
||||||
history_tests_t::test_history_merge();
|
if (should_test_function("history_merge")) history_tests_t::test_history_merge();
|
||||||
history_tests_t::test_history_races();
|
if (should_test_function("history_races")) history_tests_t::test_history_races();
|
||||||
history_tests_t::test_history_formats();
|
if (should_test_function("history_formats")) history_tests_t::test_history_formats();
|
||||||
//history_tests_t::test_history_speed();
|
//history_tests_t::test_history_speed();
|
||||||
|
|
||||||
say(L"Encountered %d errors in low-level tests", err_count);
|
say(L"Encountered %d errors in low-level tests", err_count);
|
||||||
|
|
Loading…
Reference in a new issue