From 6129f6f244b1b8fce5d6744a3a5ba48ce6889048 Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Fri, 28 Jun 2024 14:38:22 +0100 Subject: [PATCH] tests: Use correct numeric comparison assertions in param tests There were various places where (signed or unsigned) integer assertions were being used to compare `double` or `float` values, resulting in an implicit integer conversion. This causes a warning when building with `-Wfloat-conversion`. Improve the specificity of the tests by using the most-specific numeric assertions through all `param` tests. For the conversion tests, this means using the assertion function associated with the target type, not the source type. Signed-off-by: Philip Withnall Helps: #3405 --- gobject/tests/param.c | 262 +++++++++++++++++++++--------------------- 1 file changed, 131 insertions(+), 131 deletions(-) diff --git a/gobject/tests/param.c b/gobject/tests/param.c index 47ec695e8..2aee68dc8 100644 --- a/gobject/tests/param.c +++ b/gobject/tests/param.c @@ -267,7 +267,7 @@ test_param_spec_float (void) g_value_set_float (&value, 0.0); g_assert_false (g_param_value_is_valid (pspec, &value)); g_assert_true (g_param_value_validate (pspec, &value)); - g_assert_cmpint (g_value_get_float (&value), ==, 20.0); + g_assert_cmpfloat (g_value_get_float (&value), ==, 20.0); g_param_spec_unref (pspec); } @@ -289,7 +289,7 @@ test_param_spec_double (void) g_value_set_double (&value, 0.0); g_assert_false (g_param_value_is_valid (pspec, &value)); g_assert_true (g_param_value_validate (pspec, &value)); - g_assert_cmpint (g_value_get_double (&value), ==, 20.0); + g_assert_cmpfloat (g_value_get_double (&value), ==, 20.0); g_param_spec_unref (pspec); @@ -819,13 +819,13 @@ test_value_transform (void) GValue src = G_VALUE_INIT; GValue dest = G_VALUE_INIT; -#define CHECK_INT_CONVERSION(type, getter, value) \ +#define CHECK_INT_CONVERSION(type, cmpfunc, getter, value) \ g_assert_true (g_value_type_transformable (G_TYPE_INT, type)); \ g_value_init (&src, G_TYPE_INT); \ g_value_init (&dest, type); \ g_value_set_int (&src, value); \ g_assert_true (g_value_transform (&src, &dest)); \ - g_assert_cmpint (g_value_get_##getter (&dest), ==, value); \ + cmpfunc (g_value_get_##getter (&dest), ==, value); \ g_value_unset (&src); \ g_value_unset (&dest); @@ -834,197 +834,197 @@ test_value_transform (void) * https://bugzilla.gnome.org/show_bug.cgi?id=659870 * for why it is broken. */ - CHECK_INT_CONVERSION(G_TYPE_CHAR, char, 124) + CHECK_INT_CONVERSION(G_TYPE_CHAR, g_assert_cmpuint, char, 124) - CHECK_INT_CONVERSION(G_TYPE_CHAR, schar, -124) - CHECK_INT_CONVERSION(G_TYPE_CHAR, schar, 124) - CHECK_INT_CONVERSION(G_TYPE_UCHAR, uchar, 0) - CHECK_INT_CONVERSION(G_TYPE_UCHAR, uchar, 255) - CHECK_INT_CONVERSION(G_TYPE_INT, int, -12345) - CHECK_INT_CONVERSION(G_TYPE_INT, int, 12345) - CHECK_INT_CONVERSION(G_TYPE_UINT, uint, 0) - CHECK_INT_CONVERSION(G_TYPE_UINT, uint, 12345) - CHECK_INT_CONVERSION(G_TYPE_LONG, long, -12345678) - CHECK_INT_CONVERSION(G_TYPE_ULONG, ulong, 12345678) - CHECK_INT_CONVERSION(G_TYPE_INT64, int64, -12345678) - CHECK_INT_CONVERSION(G_TYPE_UINT64, uint64, 12345678) - CHECK_INT_CONVERSION(G_TYPE_FLOAT, float, 12345678) - CHECK_INT_CONVERSION(G_TYPE_DOUBLE, double, 12345678) + CHECK_INT_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, schar, -124) + CHECK_INT_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, schar, 124) + CHECK_INT_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 0) + CHECK_INT_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 255) + CHECK_INT_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, -12345) + CHECK_INT_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, 12345) + CHECK_INT_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 0) + CHECK_INT_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 12345) + CHECK_INT_CONVERSION(G_TYPE_LONG, g_assert_cmpint, long, -12345678) + CHECK_INT_CONVERSION(G_TYPE_ULONG, g_assert_cmpuint, ulong, 12345678) + CHECK_INT_CONVERSION(G_TYPE_INT64, g_assert_cmpint, int64, -12345678) + CHECK_INT_CONVERSION(G_TYPE_UINT64, g_assert_cmpuint, uint64, 12345678) + CHECK_INT_CONVERSION(G_TYPE_FLOAT, g_assert_cmpfloat, float, 12345678) + CHECK_INT_CONVERSION(G_TYPE_DOUBLE, g_assert_cmpfloat, double, 12345678) -#define CHECK_UINT_CONVERSION(type, getter, value) \ +#define CHECK_UINT_CONVERSION(type, cmpfunc, getter, value) \ g_assert_true (g_value_type_transformable (G_TYPE_UINT, type)); \ g_value_init (&src, G_TYPE_UINT); \ g_value_init (&dest, type); \ g_value_set_uint (&src, value); \ g_assert_true (g_value_transform (&src, &dest)); \ - g_assert_cmpuint (g_value_get_##getter (&dest), ==, value); \ + cmpfunc (g_value_get_##getter (&dest), ==, value); \ g_value_unset (&src); \ g_value_unset (&dest); - CHECK_UINT_CONVERSION(G_TYPE_CHAR, char, 124) - CHECK_UINT_CONVERSION(G_TYPE_CHAR, char, 124) - CHECK_UINT_CONVERSION(G_TYPE_UCHAR, uchar, 0) - CHECK_UINT_CONVERSION(G_TYPE_UCHAR, uchar, 255) - CHECK_UINT_CONVERSION(G_TYPE_INT, int, 12345) - CHECK_UINT_CONVERSION(G_TYPE_INT, int, 12345) - CHECK_UINT_CONVERSION(G_TYPE_UINT, uint, 0) - CHECK_UINT_CONVERSION(G_TYPE_UINT, uint, 12345) - CHECK_UINT_CONVERSION(G_TYPE_LONG, long, 12345678) - CHECK_UINT_CONVERSION(G_TYPE_ULONG, ulong, 12345678) - CHECK_UINT_CONVERSION(G_TYPE_INT64, int64, 12345678) - CHECK_UINT_CONVERSION(G_TYPE_UINT64, uint64, 12345678) - CHECK_UINT_CONVERSION(G_TYPE_FLOAT, float, 12345678) - CHECK_UINT_CONVERSION(G_TYPE_DOUBLE, double, 12345678) + CHECK_UINT_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, char, 124) + CHECK_UINT_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, char, 124) + CHECK_UINT_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 0) + CHECK_UINT_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 255) + CHECK_UINT_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, 12345) + CHECK_UINT_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, 12345) + CHECK_UINT_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 0) + CHECK_UINT_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 12345) + CHECK_UINT_CONVERSION(G_TYPE_LONG, g_assert_cmpint, long, 12345678) + CHECK_UINT_CONVERSION(G_TYPE_ULONG, g_assert_cmpuint, ulong, 12345678) + CHECK_UINT_CONVERSION(G_TYPE_INT64, g_assert_cmpint, int64, 12345678) + CHECK_UINT_CONVERSION(G_TYPE_UINT64, g_assert_cmpuint, uint64, 12345678) + CHECK_UINT_CONVERSION(G_TYPE_FLOAT, g_assert_cmpfloat, float, 12345678) + CHECK_UINT_CONVERSION(G_TYPE_DOUBLE, g_assert_cmpfloat, double, 12345678) -#define CHECK_LONG_CONVERSION(type, getter, value) \ +#define CHECK_LONG_CONVERSION(type, cmpfunc, getter, value) \ g_assert_true (g_value_type_transformable (G_TYPE_LONG, type)); \ g_value_init (&src, G_TYPE_LONG); \ g_value_init (&dest, type); \ g_value_set_long (&src, value); \ g_assert_true (g_value_transform (&src, &dest)); \ - g_assert_cmpint (g_value_get_##getter (&dest), ==, value); \ + cmpfunc (g_value_get_##getter (&dest), ==, value); \ g_value_unset (&src); \ g_value_unset (&dest); - CHECK_LONG_CONVERSION(G_TYPE_CHAR, schar, -124) - CHECK_LONG_CONVERSION(G_TYPE_CHAR, schar, 124) - CHECK_LONG_CONVERSION(G_TYPE_UCHAR, uchar, 0) - CHECK_LONG_CONVERSION(G_TYPE_UCHAR, uchar, 255) - CHECK_LONG_CONVERSION(G_TYPE_INT, int, -12345) - CHECK_LONG_CONVERSION(G_TYPE_INT, int, 12345) - CHECK_LONG_CONVERSION(G_TYPE_UINT, uint, 0) - CHECK_LONG_CONVERSION(G_TYPE_UINT, uint, 12345) - CHECK_LONG_CONVERSION(G_TYPE_LONG, long, -12345678) - CHECK_LONG_CONVERSION(G_TYPE_ULONG, ulong, 12345678) - CHECK_LONG_CONVERSION(G_TYPE_INT64, int64, -12345678) - CHECK_LONG_CONVERSION(G_TYPE_UINT64, uint64, 12345678) - CHECK_LONG_CONVERSION(G_TYPE_FLOAT, float, 12345678) - CHECK_LONG_CONVERSION(G_TYPE_DOUBLE, double, 12345678) + CHECK_LONG_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, schar, -124) + CHECK_LONG_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, schar, 124) + CHECK_LONG_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 0) + CHECK_LONG_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 255) + CHECK_LONG_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, -12345) + CHECK_LONG_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, 12345) + CHECK_LONG_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 0) + CHECK_LONG_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 12345) + CHECK_LONG_CONVERSION(G_TYPE_LONG, g_assert_cmpint, long, -12345678) + CHECK_LONG_CONVERSION(G_TYPE_ULONG, g_assert_cmpuint, ulong, 12345678) + CHECK_LONG_CONVERSION(G_TYPE_INT64, g_assert_cmpint, int64, -12345678) + CHECK_LONG_CONVERSION(G_TYPE_UINT64, g_assert_cmpuint, uint64, 12345678) + CHECK_LONG_CONVERSION(G_TYPE_FLOAT, g_assert_cmpfloat, float, 12345678) + CHECK_LONG_CONVERSION(G_TYPE_DOUBLE, g_assert_cmpfloat, double, 12345678) -#define CHECK_ULONG_CONVERSION(type, getter, value) \ +#define CHECK_ULONG_CONVERSION(type, cmpfunc, getter, value) \ g_assert_true (g_value_type_transformable (G_TYPE_ULONG, type)); \ g_value_init (&src, G_TYPE_ULONG); \ g_value_init (&dest, type); \ g_value_set_ulong (&src, value); \ g_assert_true (g_value_transform (&src, &dest)); \ - g_assert_cmpuint (g_value_get_##getter (&dest), ==, value); \ + cmpfunc (g_value_get_##getter (&dest), ==, value); \ g_value_unset (&src); \ g_value_unset (&dest); - CHECK_ULONG_CONVERSION(G_TYPE_CHAR, char, 124) - CHECK_ULONG_CONVERSION(G_TYPE_CHAR, char, 124) - CHECK_ULONG_CONVERSION(G_TYPE_UCHAR, uchar, 0) - CHECK_ULONG_CONVERSION(G_TYPE_UCHAR, uchar, 255) - CHECK_ULONG_CONVERSION(G_TYPE_INT, int, -12345) - CHECK_ULONG_CONVERSION(G_TYPE_INT, int, 12345) - CHECK_ULONG_CONVERSION(G_TYPE_UINT, uint, 0) - CHECK_ULONG_CONVERSION(G_TYPE_UINT, uint, 12345) - CHECK_ULONG_CONVERSION(G_TYPE_LONG, long, 12345678) - CHECK_ULONG_CONVERSION(G_TYPE_ULONG, ulong, 12345678) - CHECK_ULONG_CONVERSION(G_TYPE_INT64, int64, 12345678) - CHECK_ULONG_CONVERSION(G_TYPE_UINT64, uint64, 12345678) - CHECK_ULONG_CONVERSION(G_TYPE_FLOAT, float, 12345678) - CHECK_ULONG_CONVERSION(G_TYPE_DOUBLE, double, 12345678) + CHECK_ULONG_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, char, 124) + CHECK_ULONG_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, char, 124) + CHECK_ULONG_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 0) + CHECK_ULONG_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 255) + CHECK_ULONG_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, -12345) + CHECK_ULONG_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, 12345) + CHECK_ULONG_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 0) + CHECK_ULONG_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 12345) + CHECK_ULONG_CONVERSION(G_TYPE_LONG, g_assert_cmpint, long, 12345678) + CHECK_ULONG_CONVERSION(G_TYPE_ULONG, g_assert_cmpuint, ulong, 12345678) + CHECK_ULONG_CONVERSION(G_TYPE_INT64, g_assert_cmpint, int64, 12345678) + CHECK_ULONG_CONVERSION(G_TYPE_UINT64, g_assert_cmpuint, uint64, 12345678) + CHECK_ULONG_CONVERSION(G_TYPE_FLOAT, g_assert_cmpfloat, float, 12345678) + CHECK_ULONG_CONVERSION(G_TYPE_DOUBLE, g_assert_cmpfloat, double, 12345678) -#define CHECK_INT64_CONVERSION(type, getter, value) \ +#define CHECK_INT64_CONVERSION(type, cmpfunc, getter, value) \ g_assert_true (g_value_type_transformable (G_TYPE_INT64, type)); \ g_value_init (&src, G_TYPE_INT64); \ g_value_init (&dest, type); \ g_value_set_int64 (&src, value); \ g_assert_true (g_value_transform (&src, &dest)); \ - g_assert_cmpint (g_value_get_##getter (&dest), ==, value); \ + cmpfunc (g_value_get_##getter (&dest), ==, value); \ g_value_unset (&src); \ g_value_unset (&dest); - CHECK_INT64_CONVERSION(G_TYPE_CHAR, schar, -124) - CHECK_INT64_CONVERSION(G_TYPE_CHAR, schar, 124) - CHECK_INT64_CONVERSION(G_TYPE_UCHAR, uchar, 0) - CHECK_INT64_CONVERSION(G_TYPE_UCHAR, uchar, 255) - CHECK_INT64_CONVERSION(G_TYPE_INT, int, -12345) - CHECK_INT64_CONVERSION(G_TYPE_INT, int, 12345) - CHECK_INT64_CONVERSION(G_TYPE_UINT, uint, 0) - CHECK_INT64_CONVERSION(G_TYPE_UINT, uint, 12345) - CHECK_INT64_CONVERSION(G_TYPE_LONG, long, -12345678) - CHECK_INT64_CONVERSION(G_TYPE_ULONG, ulong, 12345678) - CHECK_INT64_CONVERSION(G_TYPE_INT64, int64, -12345678) - CHECK_INT64_CONVERSION(G_TYPE_UINT64, uint64, 12345678) - CHECK_INT64_CONVERSION(G_TYPE_FLOAT, float, 12345678) - CHECK_INT64_CONVERSION(G_TYPE_DOUBLE, double, 12345678) + CHECK_INT64_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, schar, -124) + CHECK_INT64_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, schar, 124) + CHECK_INT64_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 0) + CHECK_INT64_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 255) + CHECK_INT64_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, -12345) + CHECK_INT64_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, 12345) + CHECK_INT64_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 0) + CHECK_INT64_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 12345) + CHECK_INT64_CONVERSION(G_TYPE_LONG, g_assert_cmpint, long, -12345678) + CHECK_INT64_CONVERSION(G_TYPE_ULONG, g_assert_cmpuint, ulong, 12345678) + CHECK_INT64_CONVERSION(G_TYPE_INT64, g_assert_cmpint, int64, -12345678) + CHECK_INT64_CONVERSION(G_TYPE_UINT64, g_assert_cmpuint, uint64, 12345678) + CHECK_INT64_CONVERSION(G_TYPE_FLOAT, g_assert_cmpfloat, float, 12345678) + CHECK_INT64_CONVERSION(G_TYPE_DOUBLE, g_assert_cmpfloat, double, 12345678) -#define CHECK_UINT64_CONVERSION(type, getter, value) \ +#define CHECK_UINT64_CONVERSION(type, cmpfunc, getter, value) \ g_assert_true (g_value_type_transformable (G_TYPE_UINT64, type)); \ g_value_init (&src, G_TYPE_UINT64); \ g_value_init (&dest, type); \ g_value_set_uint64 (&src, value); \ g_assert_true (g_value_transform (&src, &dest)); \ - g_assert_cmpuint (g_value_get_##getter (&dest), ==, value); \ + cmpfunc (g_value_get_##getter (&dest), ==, value); \ g_value_unset (&src); \ g_value_unset (&dest); - CHECK_UINT64_CONVERSION(G_TYPE_CHAR, schar, -124) - CHECK_UINT64_CONVERSION(G_TYPE_CHAR, schar, 124) - CHECK_UINT64_CONVERSION(G_TYPE_UCHAR, uchar, 0) - CHECK_UINT64_CONVERSION(G_TYPE_UCHAR, uchar, 255) - CHECK_UINT64_CONVERSION(G_TYPE_INT, int, -12345) - CHECK_UINT64_CONVERSION(G_TYPE_INT, int, 12345) - CHECK_UINT64_CONVERSION(G_TYPE_UINT, uint, 0) - CHECK_UINT64_CONVERSION(G_TYPE_UINT, uint, 12345) - CHECK_UINT64_CONVERSION(G_TYPE_LONG, long, -12345678) - CHECK_UINT64_CONVERSION(G_TYPE_ULONG, ulong, 12345678) - CHECK_UINT64_CONVERSION(G_TYPE_INT64, int64, -12345678) - CHECK_UINT64_CONVERSION(G_TYPE_UINT64, uint64, 12345678) - CHECK_UINT64_CONVERSION(G_TYPE_FLOAT, float, 12345678) - CHECK_UINT64_CONVERSION(G_TYPE_DOUBLE, double, 12345678) + CHECK_UINT64_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, schar, -124) + CHECK_UINT64_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, schar, 124) + CHECK_UINT64_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 0) + CHECK_UINT64_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 255) + CHECK_UINT64_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, -12345) + CHECK_UINT64_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, 12345) + CHECK_UINT64_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 0) + CHECK_UINT64_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 12345) + CHECK_UINT64_CONVERSION(G_TYPE_LONG, g_assert_cmpint, long, -12345678) + CHECK_UINT64_CONVERSION(G_TYPE_ULONG, g_assert_cmpuint, ulong, 12345678) + CHECK_UINT64_CONVERSION(G_TYPE_INT64, g_assert_cmpint, int64, -12345678) + CHECK_UINT64_CONVERSION(G_TYPE_UINT64, g_assert_cmpuint, uint64, 12345678) + CHECK_UINT64_CONVERSION(G_TYPE_FLOAT, g_assert_cmpfloat, float, 12345678) + CHECK_UINT64_CONVERSION(G_TYPE_DOUBLE, g_assert_cmpfloat, double, 12345678) -#define CHECK_FLOAT_CONVERSION(type, getter, value) \ +#define CHECK_FLOAT_CONVERSION(type, cmpfunc, getter, value) \ g_assert_true (g_value_type_transformable (G_TYPE_FLOAT, type)); \ g_value_init (&src, G_TYPE_FLOAT); \ g_value_init (&dest, type); \ g_value_set_float (&src, value); \ g_assert_true (g_value_transform (&src, &dest)); \ - g_assert_cmpfloat (g_value_get_##getter (&dest), ==, value); \ + cmpfunc (g_value_get_##getter (&dest), ==, value); \ g_value_unset (&src); \ g_value_unset (&dest); - CHECK_FLOAT_CONVERSION(G_TYPE_CHAR, schar, -124) - CHECK_FLOAT_CONVERSION(G_TYPE_CHAR, schar, 124) - CHECK_FLOAT_CONVERSION(G_TYPE_UCHAR, uchar, 0) - CHECK_FLOAT_CONVERSION(G_TYPE_UCHAR, uchar, 255) - CHECK_FLOAT_CONVERSION(G_TYPE_INT, int, -12345) - CHECK_FLOAT_CONVERSION(G_TYPE_INT, int, 12345) - CHECK_FLOAT_CONVERSION(G_TYPE_UINT, uint, 0) - CHECK_FLOAT_CONVERSION(G_TYPE_UINT, uint, 12345) - CHECK_FLOAT_CONVERSION(G_TYPE_LONG, long, -12345678) - CHECK_FLOAT_CONVERSION(G_TYPE_ULONG, ulong, 12345678) - CHECK_FLOAT_CONVERSION(G_TYPE_INT64, int64, -12345678) - CHECK_FLOAT_CONVERSION(G_TYPE_UINT64, uint64, 12345678) - CHECK_FLOAT_CONVERSION(G_TYPE_FLOAT, float, 12345678) - CHECK_FLOAT_CONVERSION(G_TYPE_DOUBLE, double, 12345678) + CHECK_FLOAT_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, schar, -124) + CHECK_FLOAT_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, schar, 124) + CHECK_FLOAT_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 0) + CHECK_FLOAT_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 255) + CHECK_FLOAT_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, -12345) + CHECK_FLOAT_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, 12345) + CHECK_FLOAT_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 0) + CHECK_FLOAT_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 12345) + CHECK_FLOAT_CONVERSION(G_TYPE_LONG, g_assert_cmpint, long, -12345678) + CHECK_FLOAT_CONVERSION(G_TYPE_ULONG, g_assert_cmpuint, ulong, 12345678) + CHECK_FLOAT_CONVERSION(G_TYPE_INT64, g_assert_cmpint, int64, -12345678) + CHECK_FLOAT_CONVERSION(G_TYPE_UINT64, g_assert_cmpuint, uint64, 12345678) + CHECK_FLOAT_CONVERSION(G_TYPE_FLOAT, g_assert_cmpfloat, float, 12345678) + CHECK_FLOAT_CONVERSION(G_TYPE_DOUBLE, g_assert_cmpfloat, double, 12345678) -#define CHECK_DOUBLE_CONVERSION(type, getter, value) \ +#define CHECK_DOUBLE_CONVERSION(type, cmpfunc, getter, value) \ g_assert_true (g_value_type_transformable (G_TYPE_DOUBLE, type)); \ g_value_init (&src, G_TYPE_DOUBLE); \ g_value_init (&dest, type); \ g_value_set_double (&src, value); \ g_assert_true (g_value_transform (&src, &dest)); \ - g_assert_cmpfloat (g_value_get_##getter (&dest), ==, value); \ + cmpfunc (g_value_get_##getter (&dest), ==, value); \ g_value_unset (&src); \ g_value_unset (&dest); - CHECK_DOUBLE_CONVERSION(G_TYPE_CHAR, schar, -124) - CHECK_DOUBLE_CONVERSION(G_TYPE_CHAR, schar, 124) - CHECK_DOUBLE_CONVERSION(G_TYPE_UCHAR, uchar, 0) - CHECK_DOUBLE_CONVERSION(G_TYPE_UCHAR, uchar, 255) - CHECK_DOUBLE_CONVERSION(G_TYPE_INT, int, -12345) - CHECK_DOUBLE_CONVERSION(G_TYPE_INT, int, 12345) - CHECK_DOUBLE_CONVERSION(G_TYPE_UINT, uint, 0) - CHECK_DOUBLE_CONVERSION(G_TYPE_UINT, uint, 12345) - CHECK_DOUBLE_CONVERSION(G_TYPE_LONG, long, -12345678) - CHECK_DOUBLE_CONVERSION(G_TYPE_ULONG, ulong, 12345678) - CHECK_DOUBLE_CONVERSION(G_TYPE_INT64, int64, -12345678) - CHECK_DOUBLE_CONVERSION(G_TYPE_UINT64, uint64, 12345678) - CHECK_DOUBLE_CONVERSION(G_TYPE_FLOAT, float, 12345678) - CHECK_DOUBLE_CONVERSION(G_TYPE_DOUBLE, double, 12345678) + CHECK_DOUBLE_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, schar, -124) + CHECK_DOUBLE_CONVERSION(G_TYPE_CHAR, g_assert_cmpint, schar, 124) + CHECK_DOUBLE_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 0) + CHECK_DOUBLE_CONVERSION(G_TYPE_UCHAR, g_assert_cmpuint, uchar, 255) + CHECK_DOUBLE_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, -12345) + CHECK_DOUBLE_CONVERSION(G_TYPE_INT, g_assert_cmpint, int, 12345) + CHECK_DOUBLE_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 0) + CHECK_DOUBLE_CONVERSION(G_TYPE_UINT, g_assert_cmpuint, uint, 12345) + CHECK_DOUBLE_CONVERSION(G_TYPE_LONG, g_assert_cmpint, long, -12345678) + CHECK_DOUBLE_CONVERSION(G_TYPE_ULONG, g_assert_cmpuint, ulong, 12345678) + CHECK_DOUBLE_CONVERSION(G_TYPE_INT64, g_assert_cmpint, int64, -12345678) + CHECK_DOUBLE_CONVERSION(G_TYPE_UINT64, g_assert_cmpuint, uint64, 12345678) + CHECK_DOUBLE_CONVERSION(G_TYPE_FLOAT, g_assert_cmpfloat, float, 12345678) + CHECK_DOUBLE_CONVERSION(G_TYPE_DOUBLE, g_assert_cmpfloat, double, 12345678) #define CHECK_BOOLEAN_CONVERSION(type, setter, value) \ g_assert_true (g_value_type_transformable (type, G_TYPE_BOOLEAN)); \