mirror of
https://github.com/arvidn/libtorrent.git
synced 2026-07-27 06:21:52 -04:00
82 lines
1.8 KiB
C++
82 lines
1.8 KiB
C++
/*
|
|
|
|
Copyright (c) 2015-2017, 2019-2020, 2022, Arvid Norberg
|
|
Copyright (c) 2017, Andrei Kurushin
|
|
All rights reserved.
|
|
|
|
You may use, distribute and modify this code under the terms of the BSD license,
|
|
see LICENSE file.
|
|
*/
|
|
|
|
#include <vector>
|
|
#include "libtorrent/aux_/array.hpp"
|
|
|
|
#include "test.hpp"
|
|
|
|
namespace unit_test {
|
|
|
|
lt::aux::array<unit_test_t, 1024> g_unit_tests;
|
|
int g_num_unit_tests = 0;
|
|
int g_test_failures = 0; // flushed at start of every unit
|
|
int g_test_idx = 0;
|
|
|
|
namespace {
|
|
std::vector<std::string> failure_strings;
|
|
}
|
|
|
|
int test_counter()
|
|
{
|
|
return g_test_idx;
|
|
}
|
|
|
|
void report_failure(char const* err, char const* file, int line)
|
|
{
|
|
std::printf("::error file=%s,line=%d,title=Check failed::%s", file, line, err);
|
|
char buf[2000];
|
|
std::snprintf(buf, sizeof(buf), "\x1b[41m***** %s:%d \"%s\" *****\x1b[0m\n", file, line, err);
|
|
std::printf("\n%s\n", buf);
|
|
failure_strings.push_back(buf);
|
|
++g_test_failures;
|
|
}
|
|
|
|
int print_failures()
|
|
{
|
|
int longest_name = 0;
|
|
for (int i = 0; i < g_num_unit_tests; ++i)
|
|
{
|
|
int len = int(strlen(g_unit_tests[i].name));
|
|
if (len > longest_name) longest_name = len;
|
|
}
|
|
|
|
std::printf("\n\n");
|
|
int total_num_failures = 0;
|
|
|
|
for (int i = 0; i < g_num_unit_tests; ++i)
|
|
{
|
|
if (g_unit_tests[i].run == false) continue;
|
|
|
|
if (g_unit_tests[i].num_failures == 0)
|
|
{
|
|
std::printf("\x1b[32m[%-*s] ***PASS***\n"
|
|
, longest_name, g_unit_tests[i].name);
|
|
}
|
|
else
|
|
{
|
|
total_num_failures += g_unit_tests[i].num_failures;
|
|
std::printf("\x1b[31m[%-*s] %d FAILURES\n"
|
|
, longest_name
|
|
, g_unit_tests[i].name
|
|
, g_unit_tests[i].num_failures);
|
|
}
|
|
}
|
|
|
|
std::printf("\x1b[0m");
|
|
|
|
if (total_num_failures > 0)
|
|
std::printf("\n\n\x1b[41m == %d TEST(S) FAILED ==\x1b[0m\n\n\n"
|
|
, total_num_failures);
|
|
return total_num_failures;
|
|
}
|
|
|
|
} // unit_test
|