tests: Test the function forms of g_bit_*() APIs too

The tests were previously only checking the macro forms. The function
forms should behave identically, but since it’s easy enough to get
coverage of them, we might as well.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
This commit is contained in:
Philip Withnall
2021-12-02 10:01:17 +00:00
parent d5e6793b83
commit cbd48824bd

View File

@@ -312,10 +312,18 @@ test_basic_bits (void)
{
guint naive_bit_storage_i = naive_bit_storage (i);
/* Test the g_bit_*() implementations against the compiler builtins (if
* available), and against a slow-but-correct naive implementation.
* They should all agree.
*
* The macro and function versions of the g_bit_*() functions are tested,
* hence one call with the function name in brackets (to avoid it being
* expanded as a macro). */
#if TEST_BUILTINS
g_assert_cmpint (naive_bit_storage_i, ==, builtin_bit_storage (i));
#endif
g_assert_cmpint (naive_bit_storage_i, ==, g_bit_storage (i));
g_assert_cmpint (naive_bit_storage_i, ==, (g_bit_storage) (i));
for (nth_bit = -3; nth_bit <= 2 + GLIB_SIZEOF_LONG * 8; nth_bit++)
{
@@ -330,6 +338,8 @@ test_basic_bits (void)
#endif
g_assert_cmpint (naive_bit_nth_lsf_i_nth_bit, ==,
g_bit_nth_lsf (i, nth_bit));
g_assert_cmpint (naive_bit_nth_lsf_i_nth_bit, ==,
(g_bit_nth_lsf) (i, nth_bit));
#if TEST_BUILTINS
g_assert_cmpint (naive_bit_nth_msf_i_nth_bit, ==,
@@ -337,6 +347,8 @@ test_basic_bits (void)
#endif
g_assert_cmpint (naive_bit_nth_msf_i_nth_bit, ==,
g_bit_nth_msf (i, nth_bit));
g_assert_cmpint (naive_bit_nth_msf_i_nth_bit, ==,
(g_bit_nth_msf) (i, nth_bit));
}
}
}