diff mbox

Fix and improve qint_from_int64_test

Message ID 1252403617-30464-1-git-send-email-Pierre.Riteau@irisa.fr
State Superseded
Headers show

Commit Message

Pierre Riteau Sept. 8, 2009, 9:53 a.m. UTC
Use a long long integer constant to fix a compilation error (integer
constant is too large for 'long' type).

Use a better value for testing, as -1 makes the test pass even if
qi->value is of type uint32_t, float or double. This was suggested by
Reimar Döffinger <Reimar.Doeffinger@gmx.de>.

Also, make the test fail when qi->value is of type double or float by
casting qi->value to int64_t, to avoid value being promoted to the type
of qi->value.

Signed-off-by: Pierre Riteau <Pierre.Riteau@irisa.fr>
---
 check-qint.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

Comments

Luiz Capitulino Sept. 9, 2009, 1:41 p.m. UTC | #1
On Tue,  8 Sep 2009 11:53:37 +0200
Pierre Riteau <Pierre.Riteau@irisa.fr> wrote:

> Use a long long integer constant to fix a compilation error (integer
> constant is too large for 'long' type).
> 
> Use a better value for testing, as -1 makes the test pass even if
> qi->value is of type uint32_t, float or double. This was suggested by
> Reimar Döffinger <Reimar.Doeffinger@gmx.de>.
> 
> Also, make the test fail when qi->value is of type double or float by
> casting qi->value to int64_t, to avoid value being promoted to the type
> of qi->value.
> 
> Signed-off-by: Pierre Riteau <Pierre.Riteau@irisa.fr>

 Seems good to me.

 Acked-by: Luiz Capitulino <lcapitulino@redhat.com>
diff mbox

Patch

diff --git a/check-qint.c b/check-qint.c
index ae5d22f..49887bb 100644
--- a/check-qint.c
+++ b/check-qint.c
@@ -43,10 +43,10 @@  END_TEST
 START_TEST(qint_from_int64_test)
 {
     QInt *qi;
-    const int64_t value = 0xffffffffffffffff;
+    const int64_t value = 0x1234567890abcdefLL;
 
     qi = qint_from_int(value);
-    fail_unless(qi->value == value);
+    fail_unless((int64_t) qi->value == value);
 
     QDECREF(qi);
 }