aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--fish_tests.cpp339
1 files changed, 131 insertions, 208 deletions
diff --git a/fish_tests.cpp b/fish_tests.cpp
index c87bee69..13d111d3 100644
--- a/fish_tests.cpp
+++ b/fish_tests.cpp
@@ -18,7 +18,6 @@
#include <sys/wait.h>
#include <fcntl.h>
#include <stdarg.h>
-#include <assert.h>
#include <iostream>
#include <string>
#include <sstream>
@@ -146,6 +145,8 @@ static void err(const wchar_t *blah, ...)
wprintf(L"\n");
}
+#define do_test(e) do { if (! (e)) err(L"Test failed on line %lu: %s", __LINE__, #e); } while (0)
+
/* Test sane escapes */
static void test_unescape_sane()
{
@@ -249,7 +250,7 @@ static void test_format(void)
{
char buff[128];
format_size_safe(buff, tests[i].val);
- assert(! strcmp(buff, tests[i].expected));
+ do_test(! strcmp(buff, tests[i].expected));
}
for (int j=-129; j <= 129; j++)
@@ -257,14 +258,14 @@ static void test_format(void)
char buff1[128], buff2[128];
format_long_safe(buff1, j);
sprintf(buff2, "%d", j);
- assert(! strcmp(buff1, buff2));
+ do_test(! strcmp(buff1, buff2));
}
long q = LONG_MIN;
char buff1[128], buff2[128];
format_long_safe(buff1, q);
sprintf(buff2, "%ld", q);
- assert(! strcmp(buff1, buff2));
+ do_test(! strcmp(buff1, buff2));
}
@@ -457,83 +458,6 @@ static void test_tok()
if (redirection_type_for_string(L"2>|") != TOK_NONE) err(L"redirection_type_for_string failed on line %ld", (long)__LINE__);
}
-static int test_fork_helper(void *unused)
-{
- size_t i;
- for (i=0; i < 1000; i++)
- {
- //delete [](new char[4 * 1024 * 1024]);
- for (int j=0; j < 1024; j++)
- {
- strerror(j);
- }
- }
- return 0;
-}
-
-static void test_fork(void)
-{
- return;
- say(L"Testing fork");
- size_t i, max = 100;
- for (i=0; i < 100; i++)
- {
- printf("%lu / %lu\n", (unsigned long)(i+1), (unsigned long) max);
- /* Do something horrible to try to trigger an error */
-#define THREAD_COUNT 8
-#define FORK_COUNT 10
-#define FORK_LOOP_COUNT 16
- signal_block();
- for (size_t i=0; i < THREAD_COUNT; i++)
- {
- iothread_perform<void>(test_fork_helper, NULL, NULL);
- }
- for (size_t q = 0; q < FORK_LOOP_COUNT; q++)
- {
- pid_t pids[FORK_COUNT];
- for (size_t i=0; i < FORK_COUNT; i++)
- {
- pid_t pid = execute_fork(false);
- if (pid > 0)
- {
- /* Parent */
- pids[i] = pid;
- }
- else if (pid == 0)
- {
- /* Child */
- //new char[4 * 1024 * 1024];
- for (size_t i=0; i < 1024 * 16; i++)
- {
- for (int j=0; j < 256; j++)
- {
- strerror(j);
- }
- }
- exit_without_destructors(0);
- }
- else
- {
- perror("fork");
- }
- }
- for (size_t i=0; i < FORK_COUNT; i++)
- {
- int status = 0;
- if (pids[i] != waitpid(pids[i], &status, 0))
- {
- perror("waitpid");
- assert(0);
- }
- assert(WIFEXITED(status) && 0 == WEXITSTATUS(status));
- }
- }
- iothread_drain_all();
- signal_unblock();
- }
-#undef FORK_COUNT
-}
-
// Little function that runs in the main thread
static int test_iothread_main_call(int *addr)
{
@@ -880,7 +804,7 @@ static void test_indents()
text.append(components[i].txt);
expected_indents.resize(text.size(), components[i].indent);
}
- assert(expected_indents.size() == text.size());
+ do_test(expected_indents.size() == text.size());
// Compute the indents
std::vector<int> indents = parse_util_compute_indents(text);
@@ -889,7 +813,7 @@ static void test_indents()
{
err(L"Indent vector has wrong size! Expected %lu, actual %lu", expected_indents.size(), indents.size());
}
- assert(expected_indents.size() == indents.size());
+ do_test(expected_indents.size() == indents.size());
for (size_t i=0; i < text.size(); i++)
{
if (expected_indents.at(i) != indents.at(i))
@@ -949,7 +873,7 @@ public:
virtual void node_was_evicted(lru_node_test_t *node)
{
- assert(find(evicted_nodes.begin(), evicted_nodes.end(), node) == evicted_nodes.end());
+ do_test(find(evicted_nodes.begin(), evicted_nodes.end(), node) == evicted_nodes.end());
evicted_nodes.push_back(node);
}
};
@@ -963,16 +887,16 @@ static void test_lru(void)
size_t total_nodes = 20;
for (size_t i=0; i < total_nodes; i++)
{
- assert(cache.size() == std::min(i, (size_t)16));
+ do_test(cache.size() == std::min(i, (size_t)16));
lru_node_test_t *node = new lru_node_test_t(to_string(i));
if (i < 4) expected_evicted.push_back(node);
// Adding the node the first time should work, and subsequent times should fail
- assert(cache.add_node(node));
- assert(! cache.add_node(node));
+ do_test(cache.add_node(node));
+ do_test(! cache.add_node(node));
}
- assert(cache.evicted_nodes == expected_evicted);
+ do_test(cache.evicted_nodes == expected_evicted);
cache.evict_all_nodes();
- assert(cache.evicted_nodes.size() == total_nodes);
+ do_test(cache.evicted_nodes.size() == total_nodes);
while (! cache.evicted_nodes.empty())
{
lru_node_t *node = cache.evicted_nodes.back();
@@ -1286,24 +1210,24 @@ static void test_is_potential_path()
const wcstring_list_t wds(1, wd);
wcstring tmp;
- assert(is_potential_path(L"al", wds, PATH_REQUIRE_DIR, &tmp) && tmp == L"alpha/");
- assert(is_potential_path(L"alpha/", wds, PATH_REQUIRE_DIR, &tmp) && tmp == L"alpha/");
- assert(is_potential_path(L"aard", wds, 0, &tmp) && tmp == L"aardvark");
+ do_test(is_potential_path(L"al", wds, PATH_REQUIRE_DIR, &tmp) && tmp == L"alpha/");
+ do_test(is_potential_path(L"alpha/", wds, PATH_REQUIRE_DIR, &tmp) && tmp == L"alpha/");
+ do_test(is_potential_path(L"aard", wds, 0, &tmp) && tmp == L"aardvark");
- assert(! is_potential_path(L"balpha/", wds, PATH_REQUIRE_DIR, &tmp));
- assert(! is_potential_path(L"aard", wds, PATH_REQUIRE_DIR, &tmp));
- assert(! is_potential_path(L"aarde", wds, PATH_REQUIRE_DIR, &tmp));
- assert(! is_potential_path(L"aarde", wds, 0, &tmp));
+ do_test(! is_potential_path(L"balpha/", wds, PATH_REQUIRE_DIR, &tmp));
+ do_test(! is_potential_path(L"aard", wds, PATH_REQUIRE_DIR, &tmp));
+ do_test(! is_potential_path(L"aarde", wds, PATH_REQUIRE_DIR, &tmp));
+ do_test(! is_potential_path(L"aarde", wds, 0, &tmp));
- assert(is_potential_path(L"/tmp/is_potential_path_test/aardvark", wds, 0, &tmp) && tmp == L"/tmp/is_potential_path_test/aardvark");
- assert(is_potential_path(L"/tmp/is_potential_path_test/al", wds, PATH_REQUIRE_DIR, &tmp) && tmp == L"/tmp/is_potential_path_test/alpha/");
- assert(is_potential_path(L"/tmp/is_potential_path_test/aardv", wds, 0, &tmp) && tmp == L"/tmp/is_potential_path_test/aardvark");
+ do_test(is_potential_path(L"/tmp/is_potential_path_test/aardvark", wds, 0, &tmp) && tmp == L"/tmp/is_potential_path_test/aardvark");
+ do_test(is_potential_path(L"/tmp/is_potential_path_test/al", wds, PATH_REQUIRE_DIR, &tmp) && tmp == L"/tmp/is_potential_path_test/alpha/");
+ do_test(is_potential_path(L"/tmp/is_potential_path_test/aardv", wds, 0, &tmp) && tmp == L"/tmp/is_potential_path_test/aardvark");
- assert(! is_potential_path(L"/tmp/is_potential_path_test/aardvark", wds, PATH_REQUIRE_DIR, &tmp));
- assert(! is_potential_path(L"/tmp/is_potential_path_test/al/", wds, 0, &tmp));
- assert(! is_potential_path(L"/tmp/is_potential_path_test/ar", wds, 0, &tmp));
+ do_test(! is_potential_path(L"/tmp/is_potential_path_test/aardvark", wds, PATH_REQUIRE_DIR, &tmp));
+ do_test(! is_potential_path(L"/tmp/is_potential_path_test/al/", wds, 0, &tmp));
+ do_test(! is_potential_path(L"/tmp/is_potential_path_test/ar", wds, 0, &tmp));
- assert(is_potential_path(L"/usr", wds, PATH_REQUIRE_DIR, &tmp) && tmp == L"/usr/");
+ do_test(is_potential_path(L"/usr", wds, PATH_REQUIRE_DIR, &tmp) && tmp == L"/usr/");
}
@@ -1342,7 +1266,7 @@ static bool run_test_test(int expected, const wcstring &str)
bool bracket = run_one_test_test(expected, lst, true);
bool nonbracket = run_one_test_test(expected, lst, false);
- assert(bracket == nonbracket);
+ do_test(bracket == nonbracket);
return nonbracket;
}
@@ -1352,13 +1276,13 @@ static void test_test_brackets()
parser_t parser(PARSER_TYPE_GENERAL, true);
const wchar_t *argv1[] = {L"[", L"foo", NULL};
- assert(builtin_test(parser, (wchar_t **)argv1) != 0);
+ do_test(builtin_test(parser, (wchar_t **)argv1) != 0);
const wchar_t *argv2[] = {L"[", L"foo", L"]", NULL};
- assert(builtin_test(parser, (wchar_t **)argv2) == 0);
+ do_test(builtin_test(parser, (wchar_t **)argv2) == 0);
const wchar_t *argv3[] = {L"[", L"foo", L"]", L"bar", NULL};
- assert(builtin_test(parser, (wchar_t **)argv3) != 0);
+ do_test(builtin_test(parser, (wchar_t **)argv3) != 0);
}
@@ -1367,28 +1291,28 @@ static void test_test()
say(L"Testing test builtin");
test_test_brackets();
- assert(run_test_test(0, L"5 -ne 6"));
- assert(run_test_test(0, L"5 -eq 5"));
- assert(run_test_test(0, L"0 -eq 0"));
- assert(run_test_test(0, L"-1 -eq -1"));
- assert(run_test_test(0, L"1 -ne -1"));
- assert(run_test_test(1, L"-1 -ne -1"));
- assert(run_test_test(0, L"abc != def"));
- assert(run_test_test(1, L"abc = def"));
- assert(run_test_test(0, L"5 -le 10"));
- assert(run_test_test(0, L"10 -le 10"));
- assert(run_test_test(1, L"20 -le 10"));
- assert(run_test_test(0, L"-1 -le 0"));
- assert(run_test_test(1, L"0 -le -1"));
- assert(run_test_test(0, L"15 -ge 10"));
- assert(run_test_test(0, L"15 -ge 10"));
- assert(run_test_test(1, L"! 15 -ge 10"));
- assert(run_test_test(0, L"! ! 15 -ge 10"));
-
- assert(run_test_test(0, L"0 -ne 1 -a 0 -eq 0"));
- assert(run_test_test(0, L"0 -ne 1 -a -n 5"));
- assert(run_test_test(0, L"-n 5 -a 10 -gt 5"));
- assert(run_test_test(0, L"-n 3 -a -n 5"));
+ do_test(run_test_test(0, L"5 -ne 6"));
+ do_test(run_test_test(0, L"5 -eq 5"));
+ do_test(run_test_test(0, L"0 -eq 0"));
+ do_test(run_test_test(0, L"-1 -eq -1"));
+ do_test(run_test_test(0, L"1 -ne -1"));
+ do_test(run_test_test(1, L"-1 -ne -1"));
+ do_test(run_test_test(0, L"abc != def"));
+ do_test(run_test_test(1, L"abc = def"));
+ do_test(run_test_test(0, L"5 -le 10"));
+ do_test(run_test_test(0, L"10 -le 10"));
+ do_test(run_test_test(1, L"20 -le 10"));
+ do_test(run_test_test(0, L"-1 -le 0"));
+ do_test(run_test_test(1, L"0 -le -1"));
+ do_test(run_test_test(0, L"15 -ge 10"));
+ do_test(run_test_test(0, L"15 -ge 10"));
+ do_test(run_test_test(1, L"! 15 -ge 10"));
+ do_test(run_test_test(0, L"! ! 15 -ge 10"));
+
+ do_test(run_test_test(0, L"0 -ne 1 -a 0 -eq 0"));
+ do_test(run_test_test(0, L"0 -ne 1 -a -n 5"));
+ do_test(run_test_test(0, L"-n 5 -a 10 -gt 5"));
+ do_test(run_test_test(0, L"-n 3 -a -n 5"));
/* test precedence:
'0 == 0 || 0 == 1 && 0 == 2'
@@ -1397,55 +1321,55 @@ static void test_test()
and therefore true. If it were
'(0 == 0 || 0 == 1) && 0 == 2'
it would be false. */
- assert(run_test_test(0, L"0 = 0 -o 0 = 1 -a 0 = 2"));
- assert(run_test_test(0, L"-n 5 -o 0 = 1 -a 0 = 2"));
- assert(run_test_test(1, L"( 0 = 0 -o 0 = 1 ) -a 0 = 2"));
- assert(run_test_test(0, L"0 = 0 -o ( 0 = 1 -a 0 = 2 )"));
+ do_test(run_test_test(0, L"0 = 0 -o 0 = 1 -a 0 = 2"));
+ do_test(run_test_test(0, L"-n 5 -o 0 = 1 -a 0 = 2"));
+ do_test(run_test_test(1, L"( 0 = 0 -o 0 = 1 ) -a 0 = 2"));
+ do_test(run_test_test(0, L"0 = 0 -o ( 0 = 1 -a 0 = 2 )"));
/* A few lame tests for permissions; these need to be a lot more complete. */
- assert(run_test_test(0, L"-e /bin/ls"));
- assert(run_test_test(1, L"-e /bin/ls_not_a_path"));
- assert(run_test_test(0, L"-x /bin/ls"));
- assert(run_test_test(1, L"-x /bin/ls_not_a_path"));
- assert(run_test_test(0, L"-d /bin/"));
- assert(run_test_test(1, L"-d /bin/ls"));
+ do_test(run_test_test(0, L"-e /bin/ls"));
+ do_test(run_test_test(1, L"-e /bin/ls_not_a_path"));
+ do_test(run_test_test(0, L"-x /bin/ls"));
+ do_test(run_test_test(1, L"-x /bin/ls_not_a_path"));
+ do_test(run_test_test(0, L"-d /bin/"));
+ do_test(run_test_test(1, L"-d /bin/ls"));
/* This failed at one point */
- assert(run_test_test(1, L"-d /bin -a 5 -eq 3"));
- assert(run_test_test(0, L"-d /bin -o 5 -eq 3"));
- assert(run_test_test(0, L"-d /bin -a ! 5 -eq 3"));
+ do_test(run_test_test(1, L"-d /bin -a 5 -eq 3"));
+ do_test(run_test_test(0, L"-d /bin -o 5 -eq 3"));
+ do_test(run_test_test(0, L"-d /bin -a ! 5 -eq 3"));
/* We didn't properly handle multiple "just strings" either */
- assert(run_test_test(0, L"foo"));
- assert(run_test_test(0, L"foo -a bar"));
+ do_test(run_test_test(0, L"foo"));
+ do_test(run_test_test(0, L"foo -a bar"));
/* These should be errors */
- assert(run_test_test(1, L"foo bar"));
- assert(run_test_test(1, L"foo bar baz"));
+ do_test(run_test_test(1, L"foo bar"));
+ do_test(run_test_test(1, L"foo bar baz"));
/* This crashed */
- assert(run_test_test(1, L"1 = 1 -a = 1"));
+ do_test(run_test_test(1, L"1 = 1 -a = 1"));
/* Make sure we can treat -S as a parameter instead of an operator. https://github.com/fish-shell/fish-shell/issues/601 */
- assert(run_test_test(0, L"-S = -S"));
- assert(run_test_test(1, L"! ! ! A"));
+ do_test(run_test_test(0, L"-S = -S"));
+ do_test(run_test_test(1, L"! ! ! A"));
}
/** Testing colors */
static void test_colors()
{
say(L"Testing colors");
- assert(rgb_color_t(L"#FF00A0").is_rgb());
- assert(rgb_color_t(L"FF00A0").is_rgb());
- assert(rgb_color_t(L"#F30").is_rgb());
- assert(rgb_color_t(L"F30").is_rgb());
- assert(rgb_color_t(L"f30").is_rgb());
- assert(rgb_color_t(L"#FF30a5").is_rgb());
- assert(rgb_color_t(L"3f30").is_none());
- assert(rgb_color_t(L"##f30").is_none());
- assert(rgb_color_t(L"magenta").is_named());
- assert(rgb_color_t(L"MaGeNTa").is_named());
- assert(rgb_color_t(L"mooganta").is_none());
+ do_test(rgb_color_t(L"#FF00A0").is_rgb());
+ do_test(rgb_color_t(L"FF00A0").is_rgb());
+ do_test(rgb_color_t(L"#F30").is_rgb());
+ do_test(rgb_color_t(L"F30").is_rgb());
+ do_test(rgb_color_t(L"f30").is_rgb());
+ do_test(rgb_color_t(L"#FF30a5").is_rgb());
+ do_test(rgb_color_t(L"3f30").is_none());
+ do_test(rgb_color_t(L"##f30").is_none());
+ do_test(rgb_color_t(L"magenta").is_named());
+ do_test(rgb_color_t(L"MaGeNTa").is_named());
+ do_test(rgb_color_t(L"mooganta").is_none());
}
static void test_complete(void)
@@ -1459,35 +1383,35 @@ static void test_complete(void)
std::vector<completion_t> completions;
complete(L"$F", completions, COMPLETION_REQUEST_DEFAULT);
- assert(completions.size() == 3);
- assert(completions.at(0).completion == L"oo1");
- assert(completions.at(1).completion == L"oo2");
- assert(completions.at(2).completion == L"oo3");
+ do_test(completions.size() == 3);
+ do_test(completions.at(0).completion == L"oo1");
+ do_test(completions.at(1).completion == L"oo2");
+ do_test(completions.at(2).completion == L"oo3");
completions.clear();
complete(L"$1", completions, COMPLETION_REQUEST_DEFAULT);
- assert(completions.empty());
+ do_test(completions.empty());
completions.clear();
complete(L"$1", completions, COMPLETION_REQUEST_DEFAULT | COMPLETION_REQUEST_FUZZY_MATCH);
- assert(completions.size() == 2);
- assert(completions.at(0).completion == L"$Foo1");
- assert(completions.at(1).completion == L"$Bar1");
+ do_test(completions.size() == 2);
+ do_test(completions.at(0).completion == L"$Foo1");
+ do_test(completions.at(1).completion == L"$Bar1");
completions.clear();
complete(L"echo (/bin/mkdi", completions, COMPLETION_REQUEST_DEFAULT);
- assert(completions.size() == 1);
- assert(completions.at(0).completion == L"r");
+ do_test(completions.size() == 1);
+ do_test(completions.at(0).completion == L"r");
completions.clear();
complete(L"echo (ls /bin/mkdi", completions, COMPLETION_REQUEST_DEFAULT);
- assert(completions.size() == 1);
- assert(completions.at(0).completion == L"r");
+ do_test(completions.size() == 1);
+ do_test(completions.at(0).completion == L"r");
completions.clear();
complete(L"echo (command ls /bin/mkdi", completions, COMPLETION_REQUEST_DEFAULT);
- assert(completions.size() == 1);
- assert(completions.at(0).completion == L"r");
+ do_test(completions.size() == 1);
+ do_test(completions.at(0).completion == L"r");
/* Add a function and test completing it in various ways */
struct function_data_t func_data;
@@ -1498,25 +1422,25 @@ static void test_complete(void)
/* Complete a function name */
completions.clear();
complete(L"echo (scuttlebut", completions, COMPLETION_REQUEST_DEFAULT);
- assert(completions.size() == 1);
- assert(completions.at(0).completion == L"t");
+ do_test(completions.size() == 1);
+ do_test(completions.at(0).completion == L"t");
/* But not with the command prefix */
completions.clear();
complete(L"echo (command scuttlebut", completions, COMPLETION_REQUEST_DEFAULT);
- assert(completions.size() == 0);
+ do_test(completions.size() == 0);
/* Not with the builtin prefix */
completions.clear();
complete(L"echo (builtin scuttlebut", completions, COMPLETION_REQUEST_DEFAULT);
- assert(completions.size() == 0);
+ do_test(completions.size() == 0);
/* Trailing spaces (#1261) */
complete_add(L"foobarbaz", false, 0, NULL, 0, NO_FILES, NULL, L"qux", NULL, COMPLETE_AUTO_SPACE);
completions.clear();
complete(L"foobarbaz ", completions, COMPLETION_REQUEST_DEFAULT);
- assert(completions.size() == 1);
- assert(completions.at(0).completion == L"qux");
+ do_test(completions.size() == 1);
+ do_test(completions.at(0).completion == L"qux");
complete_set_variable_names(NULL);
@@ -1527,11 +1451,11 @@ static void test_1_completion(wcstring line, const wcstring &completion, complet
// str is given with a caret, which we use to represent the cursor position
// find it
const size_t in_cursor_pos = line.find(L'^');
- assert(in_cursor_pos != wcstring::npos);
+ do_test(in_cursor_pos != wcstring::npos);
line.erase(in_cursor_pos, 1);
const size_t out_cursor_pos = expected.find(L'^');
- assert(out_cursor_pos != wcstring::npos);
+ do_test(out_cursor_pos != wcstring::npos);
expected.erase(out_cursor_pos, 1);
size_t cursor_pos = in_cursor_pos;
@@ -1540,8 +1464,8 @@ static void test_1_completion(wcstring line, const wcstring &completion, complet
{
fprintf(stderr, "line %ld: %ls + %ls -> [%ls], expected [%ls]\n", source_line, line.c_str(), completion.c_str(), result.c_str(), expected.c_str());
}
- assert(result == expected);
- assert(cursor_pos == out_cursor_pos);
+ do_test(result == expected);
+ do_test(cursor_pos == out_cursor_pos);
}
static void test_completion_insertions()
@@ -1580,14 +1504,14 @@ static void perform_one_autosuggestion_test(const wcstring &command, const wcstr
if (! success)
{
printf("line %ld: autosuggest_suggest_special() failed for command %ls\n", line, command.c_str());
- assert(success);
+ do_test(success);
}
if (suggestion != expected)
{
printf("line %ld: autosuggest_suggest_special() returned the wrong expected string for command %ls\n", line, command.c_str());
printf(" actual: %ls\n", suggestion.c_str());
printf("expected: %ls\n", expected.c_str());
- assert(suggestion == expected);
+ do_test(suggestion == expected);
}
}
@@ -1657,17 +1581,17 @@ static void test_autosuggest_suggest_special()
static void test_autosuggestion_combining()
{
say(L"Testing autosuggestion combining");
- assert(combine_command_and_autosuggestion(L"alpha", L"alphabeta") == L"alphabeta");
+ do_test(combine_command_and_autosuggestion(L"alpha", L"alphabeta") == L"alphabeta");
// when the last token contains no capital letters, we use the case of the autosuggestion
- assert(combine_command_and_autosuggestion(L"alpha", L"ALPHABETA") == L"ALPHABETA");
+ do_test(combine_command_and_autosuggestion(L"alpha", L"ALPHABETA") == L"ALPHABETA");
// when the last token contains capital letters, we use its case
- assert(combine_command_and_autosuggestion(L"alPha", L"alphabeTa") == L"alPhabeTa");
+ do_test(combine_command_and_autosuggestion(L"alPha", L"alphabeTa") == L"alPhabeTa");
// if autosuggestion is not longer than input, use the input's case
- assert(combine_command_and_autosuggestion(L"alpha", L"ALPHAA") == L"ALPHAA");
- assert(combine_command_and_autosuggestion(L"alpha", L"ALPHA") == L"alpha");
+ do_test(combine_command_and_autosuggestion(L"alpha", L"ALPHAA") == L"ALPHAA");
+ do_test(combine_command_and_autosuggestion(L"alpha", L"ALPHA") == L"alpha");
}
@@ -1742,16 +1666,16 @@ static void test_history_matches(history_search_t &search, size_t matches)
size_t i;
for (i=0; i < matches; i++)
{
- assert(search.go_backwards());
+ do_test(search.go_backwards());
wcstring item = search.current_string();
}
- assert(! search.go_backwards());
+ do_test(! search.go_backwards());
for (i=1; i < matches; i++)
{
- assert(search.go_forwards());
+ do_test(search.go_forwards());
}
- assert(! search.go_forwards());
+ do_test(! search.go_forwards());
}
static bool history_contains(history_t *history, const wcstring &txt)
@@ -1810,12 +1734,12 @@ void history_tests_t::test_history(void)
/* All three items match "a" */
history_search_t search1(history, L"a");
test_history_matches(search1, 3);
- assert(search1.current_string() == L"Alpha");
+ do_test(search1.current_string() == L"Alpha");
/* One item matches "et" */
history_search_t search2(history, L"et");
test_history_matches(search2, 1);
- assert(search2.current_string() == L"Beta");
+ do_test(search2.current_string() == L"Beta");
/* Test item removal */
history.remove(L"Alpha");
@@ -1855,16 +1779,16 @@ void history_tests_t::test_history(void)
for (i=100; i >= 1; i--)
{
history_item_t item = history.item_at_index(i);
- assert(! item.empty());
+ do_test(! item.empty());
after.push_back(item);
}
- assert(before.size() == after.size());
+ do_test(before.size() == after.size());
for (size_t i=0; i < before.size(); i++)
{
const history_item_t &bef = before.at(i), &aft = after.at(i);
- assert(bef.contents == aft.contents);
- assert(bef.creation_timestamp == aft.creation_timestamp);
- assert(bef.required_paths == aft.required_paths);
+ do_test(bef.contents == aft.contents);
+ do_test(bef.creation_timestamp == aft.creation_timestamp);
+ do_test(bef.required_paths == aft.required_paths);
}
/* Clean up after our tests */
@@ -1994,7 +1918,7 @@ void history_tests_t::test_history_races(void)
}
}
// every write should add at least one item
- assert(hist_idx >= RACE_COUNT);
+ do_test(hist_idx >= RACE_COUNT);
//hist->clear();
delete hist;
@@ -2040,7 +1964,7 @@ void history_tests_t::test_history_merge(void)
{
bool does_contain = history_contains(hists[i], texts[j]);
bool should_contain = (i == j);
- assert(should_contain == does_contain);
+ do_test(should_contain == does_contain);
}
}
@@ -2049,7 +1973,7 @@ void history_tests_t::test_history_merge(void)
history_t *everything = new history_t(name);
for (size_t i=0; i < count; i++)
{
- assert(history_contains(everything, texts[i]));
+ do_test(history_contains(everything, texts[i]));
}
/* Clean up */
@@ -2716,7 +2640,7 @@ static void test_highlighting(void)
text.append(components[i].txt);
expected_colors.resize(text.size(), components[i].color);
}
- assert(expected_colors.size() == text.size());
+ do_test(expected_colors.size() == text.size());
std::vector<highlight_spec_t> colors(text.size());
highlight_shell(text, colors, 20, NULL, env_vars_snapshot_t());
@@ -2725,7 +2649,7 @@ static void test_highlighting(void)
{
err(L"Color vector has wrong size! Expected %lu, actual %lu", expected_colors.size(), colors.size());
}
- assert(expected_colors.size() == colors.size());
+ do_test(expected_colors.size() == colors.size());
for (size_t i=0; i < text.size(); i++)
{
// Hackish space handling. We don't care about the colors in spaces.
@@ -2780,7 +2704,6 @@ int main(int argc, char **argv)
if (should_test_function("convert")) test_convert();
if (should_test_function("convert_nulls")) test_convert_nulls();
if (should_test_function("tok")) test_tok();
- if (should_test_function("fork")) test_fork();
if (should_test_function("iothread")) test_iothread();
if (should_test_function("parser")) test_parser();
if (should_test_function("cancellation")) test_cancellation();