some test fixes
This commit is contained in:
parent
c8443d0c7c
commit
b0eabd532c
|
@ -288,10 +288,10 @@ TORRENT_NO_RETURN TORRENT_EXPORT void assert_fail(char const* expr, int line
|
||||||
|
|
||||||
// if production asserts are defined, don't abort, just print the error
|
// if production asserts are defined, don't abort, just print the error
|
||||||
#ifndef TORRENT_PRODUCTION_ASSERTS
|
#ifndef TORRENT_PRODUCTION_ASSERTS
|
||||||
// send SIGINT to the current process
|
// send SIGINT to the current process
|
||||||
// to break into the debugger
|
// to break into the debugger
|
||||||
raise(SIGINT);
|
raise(SIGINT);
|
||||||
abort();
|
abort();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,34 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
using namespace libtorrent;
|
using namespace libtorrent;
|
||||||
|
|
||||||
|
// these are global so we can restore them on abnormal exits and print stuff
|
||||||
|
// out, such as the log
|
||||||
|
int old_stdout = -1;
|
||||||
|
int old_stderr = -1;
|
||||||
|
|
||||||
|
// the current tests file descriptor
|
||||||
|
unit_test_t* current_test = NULL;
|
||||||
|
|
||||||
|
void output_test_log_to_terminal()
|
||||||
|
{
|
||||||
|
if (current_test == NULL || old_stdout == -1 || old_stderr == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
fflush(stdout);
|
||||||
|
fflush(stderr);
|
||||||
|
dup2(old_stdout, fileno(stdout));
|
||||||
|
dup2(old_stderr, fileno(stderr));
|
||||||
|
|
||||||
|
fseek(current_test->output, 0, SEEK_SET);
|
||||||
|
fprintf(stderr, "\x1b[1m[%s]\x1b[0m\n\n", current_test->name);
|
||||||
|
char buf[4096];
|
||||||
|
int size = 0;
|
||||||
|
do {
|
||||||
|
size = fread(buf, 1, sizeof(buf), current_test->output);
|
||||||
|
if (size > 0) fwrite(buf, 1, size, stderr);
|
||||||
|
} while (size > 0);
|
||||||
|
}
|
||||||
|
|
||||||
void sig_handler(int sig)
|
void sig_handler(int sig)
|
||||||
{
|
{
|
||||||
char stack_text[10000];
|
char stack_text[10000];
|
||||||
|
@ -90,6 +118,9 @@ void sig_handler(int sig)
|
||||||
#undef SIG
|
#undef SIG
|
||||||
};
|
};
|
||||||
fprintf(stderr, "signal: %s caught:\n%s\n", sig_name, stack_text);
|
fprintf(stderr, "signal: %s caught:\n%s\n", sig_name, stack_text);
|
||||||
|
|
||||||
|
output_test_log_to_terminal();
|
||||||
|
|
||||||
exit(138);
|
exit(138);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,6 +190,7 @@ int main(int argc, char const* argv[])
|
||||||
signal(SIGBUS, &sig_handler);
|
signal(SIGBUS, &sig_handler);
|
||||||
#endif
|
#endif
|
||||||
signal(SIGILL, &sig_handler);
|
signal(SIGILL, &sig_handler);
|
||||||
|
signal(SIGINT, &sig_handler);
|
||||||
signal(SIGABRT, &sig_handler);
|
signal(SIGABRT, &sig_handler);
|
||||||
signal(SIGFPE, &sig_handler);
|
signal(SIGFPE, &sig_handler);
|
||||||
#ifdef SIGSYS
|
#ifdef SIGSYS
|
||||||
|
@ -190,8 +222,8 @@ int main(int argc, char const* argv[])
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int old_stdout = dup(fileno(stdout));
|
old_stdout = dup(fileno(stdout));
|
||||||
int old_stderr = dup(fileno(stderr));
|
old_stderr = dup(fileno(stderr));
|
||||||
|
|
||||||
int num_run = 0;
|
int num_run = 0;
|
||||||
for (int i = 0; i < _g_num_unit_tests; ++i)
|
for (int i = 0; i < _g_num_unit_tests; ++i)
|
||||||
|
@ -215,6 +247,8 @@ int main(int argc, char const* argv[])
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
current_test = &t;
|
||||||
|
|
||||||
#ifndef BOOST_NO_EXCEPTIONS
|
#ifndef BOOST_NO_EXCEPTIONS
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -240,19 +274,7 @@ int main(int argc, char const* argv[])
|
||||||
|
|
||||||
if (_g_test_failures > 0)
|
if (_g_test_failures > 0)
|
||||||
{
|
{
|
||||||
fflush(stdout);
|
output_test_log_to_terminal();
|
||||||
fflush(stderr);
|
|
||||||
dup2(old_stdout, fileno(stdout));
|
|
||||||
dup2(old_stderr, fileno(stderr));
|
|
||||||
|
|
||||||
fseek(t.output, 0, SEEK_SET);
|
|
||||||
fprintf(stderr, "\x1b[1m[%s]\x1b[0m\n\n", t.name);
|
|
||||||
char buf[4096];
|
|
||||||
int size = 0;
|
|
||||||
do {
|
|
||||||
size = fread(buf, 1, sizeof(buf), t.output);
|
|
||||||
if (size > 0) fwrite(buf, 1, size, stderr);
|
|
||||||
} while (size > 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
t.num_failures = _g_test_failures;
|
t.num_failures = _g_test_failures;
|
||||||
|
|
|
@ -66,12 +66,12 @@ int print_failures()
|
||||||
|
|
||||||
if (_g_unit_tests[i].num_failures == 0)
|
if (_g_unit_tests[i].num_failures == 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "\x1b[32m[%*s] ***PASS***\n"
|
fprintf(stderr, "\x1b[32m[%-*s] ***PASS***\n"
|
||||||
, longest_name, _g_unit_tests[i].name);
|
, longest_name, _g_unit_tests[i].name);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
fprintf(stderr, "\x1b[31m[%*s] %d FAILURES\n"
|
fprintf(stderr, "\x1b[31m[%-*s] %d FAILURES\n"
|
||||||
, longest_name
|
, longest_name
|
||||||
, _g_unit_tests[i].name
|
, _g_unit_tests[i].name
|
||||||
, _g_unit_tests[i].num_failures);
|
, _g_unit_tests[i].num_failures);
|
||||||
|
|
|
@ -71,7 +71,7 @@ extern int EXPORT _g_num_unit_tests;
|
||||||
extern int EXPORT _g_test_failures;
|
extern int EXPORT _g_test_failures;
|
||||||
|
|
||||||
#define TORRENT_TEST(test_name) \
|
#define TORRENT_TEST(test_name) \
|
||||||
void BOOST_PP_CAT(unit_test_, test_name)(); \
|
static void BOOST_PP_CAT(unit_test_, test_name)(); \
|
||||||
static struct BOOST_PP_CAT(register_class, __LINE__) { \
|
static struct BOOST_PP_CAT(register_class, __LINE__) { \
|
||||||
BOOST_PP_CAT(register_class, __LINE__) () { \
|
BOOST_PP_CAT(register_class, __LINE__) () { \
|
||||||
unit_test_t& t = _g_unit_tests[_g_num_unit_tests]; \
|
unit_test_t& t = _g_unit_tests[_g_num_unit_tests]; \
|
||||||
|
|
|
@ -38,11 +38,15 @@ using namespace libtorrent;
|
||||||
|
|
||||||
const int proxy = libtorrent::settings_pack::none;
|
const int proxy = libtorrent::settings_pack::none;
|
||||||
|
|
||||||
|
#ifdef TORRENT_USE_OPENSSL
|
||||||
|
TORRENT_TEST(web_seed_ssl)
|
||||||
|
{
|
||||||
|
run_http_suite(proxy, "https", false);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
TORRENT_TEST(web_seed)
|
TORRENT_TEST(web_seed)
|
||||||
{
|
{
|
||||||
#ifdef TORRENT_USE_OPENSSL
|
|
||||||
run_http_suite(proxy, "https", false);
|
|
||||||
#endif
|
|
||||||
run_http_suite(proxy, "http", false);
|
run_http_suite(proxy, "http", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,12 +40,23 @@ const int proxy = libtorrent::settings_pack::http;
|
||||||
|
|
||||||
TORRENT_TEST(web_seed_http)
|
TORRENT_TEST(web_seed_http)
|
||||||
{
|
{
|
||||||
for (int url_seed = 0; url_seed < 2; ++url_seed)
|
run_http_suite(proxy, "http", false);
|
||||||
{
|
|
||||||
#ifdef TORRENT_USE_OPENSSL
|
|
||||||
run_http_suite(proxy, "https", url_seed);
|
|
||||||
#endif
|
|
||||||
run_http_suite(proxy, "http", url_seed);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TORRENT_TEST(url_seed_http)
|
||||||
|
{
|
||||||
|
run_http_suite(proxy, "http", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef TORRENT_USE_OPENSSL
|
||||||
|
TORRENT_TEST(web_seed_https)
|
||||||
|
{
|
||||||
|
run_http_suite(proxy, "https", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
TORRENT_TEST(url_seed_https)
|
||||||
|
{
|
||||||
|
run_http_suite(proxy, "https", true);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -40,12 +40,23 @@ const int proxy = libtorrent::settings_pack::http_pw;
|
||||||
|
|
||||||
TORRENT_TEST(web_seed_http_pw)
|
TORRENT_TEST(web_seed_http_pw)
|
||||||
{
|
{
|
||||||
for (int url_seed = 0; url_seed < 2; ++url_seed)
|
run_http_suite(proxy, "http", false);
|
||||||
{
|
|
||||||
#ifdef TORRENT_USE_OPENSSL
|
|
||||||
run_http_suite(proxy, "https", url_seed);
|
|
||||||
#endif
|
|
||||||
run_http_suite(proxy, "http", url_seed);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TORRENT_TEST(url_seed_http_pw)
|
||||||
|
{
|
||||||
|
run_http_suite(proxy, "http", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef TORRENT_USE_OPENSSL
|
||||||
|
TORRENT_TEST(web_seed_http_pw_ssl)
|
||||||
|
{
|
||||||
|
run_http_suite(proxy, "https", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
TORRENT_TEST(url_seed_http_pw_ssl)
|
||||||
|
{
|
||||||
|
run_http_suite(proxy, "https", true);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue