test-time-util.c revision 27a33f6aaa3d02d88c020315ae613e0c4910e950
5f5870385cff47efd2f58e7892f251cf13761528Timo Sirainen/* Copyright (c) 2009-2017 Dovecot authors, see the included COPYING file */
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainenstatic void test_timeval_cmp(void)
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen { 0, 0 }, { 0, 0 },
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen { 0, 0 }, { 0, 1 },
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen { 0, 0 }, { 1, 0 },
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen static int output[] = {
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen unsigned int i;
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen test_assert(timeval_cmp(&input[i], &input[i+1]) == output[i/2]);
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen test_assert(timeval_cmp(&input[i+1], &input[i]) == -output[i/2]);
5cc9289a900f5d40d126ca663790dca2a7456416Timo Sirainenstatic void test_timeval_diff(void)
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen static int output[] = {
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen unsigned int i;
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen udiff = timeval_diff_usecs(&input[i], &input[i+1]);
9a1a4c2ca1b9a8bbadd38224b15a364c78cb9938Timo Sirainen mdiff = timeval_diff_msecs(&input[i], &input[i+1]);
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen udiff = timeval_diff_usecs(&input[i+1], &input[i]);
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen mdiff = timeval_diff_msecs(&input[i+1], &input[i]);
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen /* Try this around days when DST changes in some of the more popular
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen timezones. If that works, everything else probably works too. */
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen /* Europe winter -> summer */
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen { .tm_year = 2017-1900, .tm_mon = 2, .tm_mday = 26 },
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen { .tm_year = 2017-1900, .tm_mon = 2, .tm_mday = 26,
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen /* Europe summer -> winter */
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen { .tm_year = 2017-1900, .tm_mon = 9, .tm_mday = 29 },
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen { .tm_year = 2017-1900, .tm_mon = 9, .tm_mday = 29,
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen /* USA winter -> summer */
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen { .tm_year = 2017-1900, .tm_mon = 2, .tm_mday = 12 },
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen { .tm_year = 2017-1900, .tm_mon = 2, .tm_mday = 12,
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen /* USA summer -> winter */
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen { .tm_year = 2017-1900, .tm_mon = 10, .tm_mday = 5 },
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen { .tm_year = 2017-1900, .tm_mon = 10, .tm_mday = 5,
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen /* (some of) Australia summer -> winter */
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen { .tm_year = 2017-1900, .tm_mon = 3, .tm_mday = 2 },
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen { .tm_year = 2017-1900, .tm_mon = 3, .tm_mday = 2,
596f582a422eddef951ee445f9a0ed3d4bf14ff8Timo Sirainen /* (some of) Australia winter -> summer */
time_t t;
t = time_to_local_day_start(t);
test_end();
static void test_strftime_now(void)
test_end();
static void test_strftime_fixed(void)
test_end();
void test_time_util(void)