tests: Fix integer overflows on 32-bit systems
authorAlexandros Frantzis <alexandros.frantzis@collabora.com>
Fri, 1 Dec 2017 17:28:52 +0000 (19:28 +0200)
committerDaniel Stone <daniels@collabora.com>
Mon, 4 Dec 2017 19:06:02 +0000 (19:06 +0000)
Ensure that the integer type used in expressions involving
multiplication with NSEC_PER_SEC is large enough to avoid overflows on
32-bit systems. In the expressions fixed by this patch a 64-bit type
(long long) is required.

Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
tests/timespec-test.c

index f127bce..31a6f14 100644 (file)
@@ -160,7 +160,7 @@ ZUC_TEST(timespec_test, timespec_sub_to_nsec)
        a.tv_nsec = 1;
        b.tv_sec = 1;
        b.tv_nsec = 2;
-       ZUC_ASSERT_EQ((999L * NSEC_PER_SEC) - 1, timespec_sub_to_nsec(&a, &b));
+       ZUC_ASSERT_EQ((999LL * NSEC_PER_SEC) - 1, timespec_sub_to_nsec(&a, &b));
 }
 
 ZUC_TEST(timespec_test, timespec_sub_to_msec)
@@ -190,7 +190,7 @@ ZUC_TEST(timespec_test, timespec_from_nsec)
        ZUC_ASSERT_EQ(1, a.tv_sec);
        ZUC_ASSERT_EQ(0, a.tv_nsec);
 
-       timespec_from_nsec(&a, (5L * NSEC_PER_SEC) + 1);
+       timespec_from_nsec(&a, (5LL * NSEC_PER_SEC) + 1);
        ZUC_ASSERT_EQ(5, a.tv_sec);
        ZUC_ASSERT_EQ(1, a.tv_nsec);
 }