]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: fix test-event-filter for systems with 32-bit long
authorPaul Howarth <paul@city-fan.org>
Thu, 26 Jun 2025 09:39:40 +0000 (10:39 +0100)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 22 May 2026 10:23:03 +0000 (13:23 +0300)
On systems such as i686 with 32-bit long integers, expressions such as

60L * 60 * 1000 * 1000 (3600000000)

overflow the maximum value of 2147483647, causing the test to fail.
This can be fixed by using a "long long" (which is used for intmax_t)
instead, e.g.

60LL * 60 * 1000 * 1000

src/lib/test-event-filter.c

index d6eebb923685f0e3451336fbeffbe4a105b18414..1158795ec5935282307a995b2993e18536e70261 100644 (file)
@@ -1003,32 +1003,32 @@ static void test_event_filter_interval_values(void)
                { "field > 1mins", 60 * 1000 * 1000, FALSE },
                { "field < 1mins", 60 * 1000 * 1000, FALSE },
 
-               { "field = 1hours", 60L * 60 * 1000 * 1000, TRUE },
-               { "field = 1h", 60L * 60 * 1000 * 1000, TRUE },
-               { "field = 3600000000", 60L * 60 * 1000 * 1000, TRUE },
-               { "field >= 1hours", 60L * 60 * 1000 * 1000, TRUE },
-               { "field <= 1hours", 60L * 60 * 1000 * 1000, TRUE },
-               { "field > 1mins", 60L * 60 * 1000 * 1000, TRUE },
-               { "field > 1hours", 60L * 60 * 1000 * 1000, FALSE },
-               { "field < 1hours", 60L * 60 * 1000 * 1000, FALSE },
-
-               { "field = 1days", 24L * 60 * 60 * 1000 * 1000, TRUE },
-               { "field = 1d", 24L * 60 * 60 * 1000 * 1000, TRUE },
-               { "field = 86400000000", 24L * 60 * 60 * 1000 * 1000, TRUE },
-               { "field >= 1days", 24L * 60 * 60 * 1000 * 1000, TRUE },
-               { "field <= 1days", 24L * 60 * 60 * 1000 * 1000, TRUE },
-               { "field > 1hours", 24L * 60 * 60 * 1000 * 1000, TRUE },
-               { "field > 1days", 24L * 60 * 60 * 1000 * 1000, FALSE },
-               { "field < 1days", 24L * 60 * 60 * 1000 * 1000, FALSE },
-
-               { "field = 1weeks", 7L * 24 * 60 * 60 * 1000 * 1000, TRUE },
-               { "field = 1w", 7L * 24 * 60 * 60 * 1000 * 1000, TRUE },
-               { "field = 604800000000", 7L * 24 * 60 * 60 * 1000 * 1000, TRUE },
-               { "field >= 1weeks", 7L * 24 * 60 * 60 * 1000 * 1000, TRUE },
-               { "field <= 1weeks", 7L * 24 * 60 * 60 * 1000 * 1000, TRUE },
-               { "field > 1days", 7L * 24 * 60 * 60 * 1000 * 1000, TRUE },
-               { "field > 1weeks", 7L * 24 * 60 * 60 * 1000 * 1000, FALSE },
-               { "field < 1weeks", 7L * 24 * 60 * 60 * 1000 * 1000, FALSE },
+               { "field = 1hours", 60LL * 60 * 1000 * 1000, TRUE },
+               { "field = 1h", 60LL * 60 * 1000 * 1000, TRUE },
+               { "field = 3600000000", 60LL * 60 * 1000 * 1000, TRUE },
+               { "field >= 1hours", 60LL * 60 * 1000 * 1000, TRUE },
+               { "field <= 1hours", 60LL * 60 * 1000 * 1000, TRUE },
+               { "field > 1mins", 60LL * 60 * 1000 * 1000, TRUE },
+               { "field > 1hours", 60LL * 60 * 1000 * 1000, FALSE },
+               { "field < 1hours", 60LL * 60 * 1000 * 1000, FALSE },
+
+               { "field = 1days", 24LL * 60 * 60 * 1000 * 1000, TRUE },
+               { "field = 1d", 24LL * 60 * 60 * 1000 * 1000, TRUE },
+               { "field = 86400000000", 24LL * 60 * 60 * 1000 * 1000, TRUE },
+               { "field >= 1days", 24LL * 60 * 60 * 1000 * 1000, TRUE },
+               { "field <= 1days", 24LL * 60 * 60 * 1000 * 1000, TRUE },
+               { "field > 1hours", 24LL * 60 * 60 * 1000 * 1000, TRUE },
+               { "field > 1days", 24LL * 60 * 60 * 1000 * 1000, FALSE },
+               { "field < 1days", 24LL * 60 * 60 * 1000 * 1000, FALSE },
+
+               { "field = 1weeks", 7LL * 24 * 60 * 60 * 1000 * 1000, TRUE },
+               { "field = 1w", 7LL * 24 * 60 * 60 * 1000 * 1000, TRUE },
+               { "field = 604800000000", 7LL * 24 * 60 * 60 * 1000 * 1000, TRUE },
+               { "field >= 1weeks", 7LL * 24 * 60 * 60 * 1000 * 1000, TRUE },
+               { "field <= 1weeks", 7LL * 24 * 60 * 60 * 1000 * 1000, TRUE },
+               { "field > 1days", 7LL * 24 * 60 * 60 * 1000 * 1000, TRUE },
+               { "field > 1weeks", 7LL * 24 * 60 * 60 * 1000 * 1000, FALSE },
+               { "field < 1weeks", 7LL * 24 * 60 * 60 * 1000 * 1000, FALSE },
        };
 
        struct event_filter *filter;