summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorjorton <jorton@13f79535-47bb-0310-9956-ffa450edef68>2004-03-25 22:29:35 +0000
committerjorton <jorton@13f79535-47bb-0310-9956-ffa450edef68>2004-03-25 22:29:35 +0000
commitb2ba28b696440ba44afe6be55c09536a464dcab6 (patch)
treeecd8b9770b3478af876091776541455b48e0031c /test
parente89ec1011c65a91dc8e3f545cd9b352cf46900d7 (diff)
downloadlibapr-b2ba28b696440ba44afe6be55c09536a464dcab6.tar.gz
* time/unix/time.c (apr_time_exp_get): Remove year check that failed for
2038, use apr_time_t to avoid overflow. * time/win32/time.c (apr_time_exp_get): ditto * test/testtime.c (test_2038): Add regression test. Submitted by: Philip Martin <philip@codematters.co.uk> git-svn-id: http://svn.apache.org/repos/asf/apr/apr/branches/APR_0_9_BRANCH@65025 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'test')
-rw-r--r--test/testtime.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/testtime.c b/test/testtime.c
index ab14cdfe3..a84da164c 100644
--- a/test/testtime.c
+++ b/test/testtime.c
@@ -265,6 +265,24 @@ static void test_strftimeoffset(CuTest *tc)
CuAssertTrue(tc, rv == APR_SUCCESS);
}
+/* 0.9.4 and earlier rejected valid dates in 2038 */
+static void test_2038(CuTest *tc)
+{
+ apr_time_exp_t xt;
+ apr_time_t t;
+
+ /* 2038-01-19T03:14:07.000000Z */
+ xt.tm_year = 138;
+ xt.tm_mon = 0;
+ xt.tm_mday = 19;
+ xt.tm_hour = 3;
+ xt.tm_min = 14;
+ xt.tm_sec = 7;
+
+ apr_assert_success(tc, "explode January 19th, 2038",
+ apr_time_exp_get(&t, &xt));
+}
+
CuSuite *testtime(void)
{
CuSuite *suite = CuSuiteNew("Time");
@@ -281,6 +299,7 @@ CuSuite *testtime(void)
SUITE_ADD_TEST(suite, test_strftimesmall);
SUITE_ADD_TEST(suite, test_exp_tz);
SUITE_ADD_TEST(suite, test_strftimeoffset);
+ SUITE_ADD_TEST(suite, test_2038);
return suite;
}