<code class="function">__builtin_abort</code>
(to avoid using <code class="literal">assert</code> and being affected by
<code class="literal">NDEBUG</code>).
- </p><p>
- Prior to GCC 7.1, <code class="literal">VERIFY</code> was defined differently.
- It usually expanded to the standard <code class="literal">assert</code> macro, but
- allowed targets to define it to something different. In order to support
- the alternative expansions of <code class="literal">VERIFY</code>, before any use
- of the macro there needed to be a variable called <code class="varname">test</code>
- in scope, which was usually defined like so (the attribute avoids
- warnings about an unused variable):
- </p><pre class="programlisting">
- bool test __attribute__((unused)) = true;
- </pre><p>
- This is no longer needed, and should not be added to new tests.
</p><p>
The testsuite uses the DejaGnu framework to compile and run the tests.
Test cases are normal C++ files which contain special directives in
<literal>NDEBUG</literal>).
</para>
- <para>
- Prior to GCC 7.1, <literal>VERIFY</literal> was defined differently.
- It usually expanded to the standard <literal>assert</literal> macro, but
- allowed targets to define it to something different. In order to support
- the alternative expansions of <literal>VERIFY</literal>, before any use
- of the macro there needed to be a variable called <varname>test</varname>
- in scope, which was usually defined like so (the attribute avoids
- warnings about an unused variable):
- <programlisting>
- bool test __attribute__((unused)) = true;
- </programlisting>
- This is no longer needed, and should not be added to new tests.
- </para>
-
<para>
The testsuite uses the DejaGnu framework to compile and run the tests.
Test cases are normal C++ files which contain special directives in
void
test01()
{
- bool test __attribute__((unused)) = false;
char c[4];
mutable_buffer mb;
void
test02()
{
- bool test __attribute__((unused)) = false;
char c[4];
const_buffer cb;
void
test02()
{
- bool test __attribute__((unused)) = false;
char c[4];
const_buffer b;
void
test02()
{
- bool test __attribute__((unused)) = false;
char c[4];
mutable_buffer b;
void
test01()
{
- bool test __attribute__((unused)) = false;
char c[4];
mutable_buffer mb;
void
test02()
{
- bool test __attribute__((unused)) = false;
char c[32];
std::vector<mutable_buffer> mv{ {c, 0}, {c, 32}, {c, 16}, {c, 3}, {c, 0} };
void
test01()
{
- bool test __attribute__((unused)) = false;
-
io_context ctx1, ctx2;
system_timer timer1(ctx1);
void
test02()
{
- bool test __attribute__((unused)) = false;
-
io_context ctx1, ctx2;
auto t1 = system_timer::clock_type::now();
auto t2 = t1 + system_timer::duration(10);
void
test03()
{
- bool test __attribute__((unused)) = false;
-
io_context ctx1, ctx2;
auto now = system_timer::clock_type::now();
auto d1 = system_timer::duration(10);
void
test01()
{
- bool test __attribute__((unused)) = false;
-
std::error_code ec;
io_context ctx;
void
test01()
{
- bool test __attribute__((unused)) = false;
-
io_context ctx;
error_code ec;
bool complete = false;
void
test02()
{
- bool test __attribute__((unused)) = false;
-
io_context ctx;
error_code ec1, ec2;
void
test(const testcase_airy_ai<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_airy_bi<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_conf_hyperg<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_hyperg<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_assoc_laguerre<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_assoc_legendre<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test_m_gt_l()
{
- bool test __attribute__((unused)) = true;
for (auto l : {0u, 1u, 2u, 5u})
for (auto m : {l + 1u, l + 2u})
for (auto i : {-2, -1, 0, 1, 2})
void
test(const testcase_beta<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_comp_ellint_1<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_comp_ellint_2<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_comp_ellint_3<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_cyl_bessel_i<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_cyl_bessel_j<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_cyl_bessel_k<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_cyl_neumann<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_ellint_1<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_ellint_2<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_ellint_3<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_expint<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_hermite<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_laguerre<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_legendre<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_riemann_zeta<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_sph_bessel<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_sph_legendre<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test_m_gt_l()
{
- bool test __attribute__((unused)) = true;
for (auto l : {0u, 1u, 2u, 5u})
for (auto m : {l + 1u, l + 2u})
for (auto i : {-2, -1, 0, 1, 2})
void
test(const testcase_sph_neumann<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_assoc_laguerre<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_assoc_legendre<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test_m_gt_l()
{
- bool test __attribute__((unused)) = true;
unsigned int larr[4] = {0u, 1u, 2u, 5u};
for (unsigned int l = 0; l < 4; ++l)
for (unsigned int m = larr[l] + 1u; m <= larr[l] + 2u; ++m)
void
test(const testcase_beta<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_comp_ellint_1<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_comp_ellint_2<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_comp_ellint_3<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_conf_hyperg<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_cyl_bessel_i<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_cyl_bessel_j<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_cyl_bessel_k<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_cyl_neumann<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_ellint_1<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_ellint_2<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_ellint_3<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_expint<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_hermite<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_hyperg<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_laguerre<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_legendre<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_riemann_zeta<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_sph_bessel<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test(const testcase_sph_legendre<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);
void
test_m_gt_l()
{
- bool test __attribute__((unused)) = true;
unsigned int larr[4] = {0u, 1u, 2u, 5u};
for (unsigned int l = 0; l < 4; ++l)
for (unsigned int m = larr[l] + 1u; m <= larr[l] + 2u; ++m)
void
test(const testcase_sph_neumann<Ret> (&data)[Num], Ret toler)
{
- bool test __attribute__((unused)) = true;
const Ret eps = std::numeric_limits<Ret>::epsilon();
Ret max_abs_diff = -Ret(1);
Ret max_abs_frac = -Ret(1);