diff options
author | Kartic Krishnamurthy <drunkensufi@lindenlab.com> | 2007-07-20 23:11:04 +0000 |
---|---|---|
committer | Kartic Krishnamurthy <drunkensufi@lindenlab.com> | 2007-07-20 23:11:04 +0000 |
commit | 45281046c5cf2d71b53c9f6c3d8d9ba74d29b33d (patch) | |
tree | b709aec899afbfc5f77d3beebcf2eedfb4a560ac /indra/test | |
parent | dd6a0467ed9c151a819626cf811553e4a8880e84 (diff) |
Fixed cache invalidation in simulator.cpp, llsd.php, added RFC 1123 compliant date format, and unit test for the new date function
Diffstat (limited to 'indra/test')
-rw-r--r-- | indra/test/llhttpdate_tut.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/indra/test/llhttpdate_tut.cpp b/indra/test/llhttpdate_tut.cpp new file mode 100644 index 0000000000..2a82155cd1 --- /dev/null +++ b/indra/test/llhttpdate_tut.cpp @@ -0,0 +1,72 @@ +/** + * @file llhttpdate_tut.cpp + * @author Kartic Krishnamurthy + * @date Wednesday, 18 Jul 2007 17:00:00 GMT :) + * + * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#include "linden_common.h" +#include "lltut.h" + +#include "lldate.h" +#include "llframetimer.h" + +#include <string> +#include <time.h> + +namespace tut +{ + struct httpdate_data + { + LLDate some_date; + }; + typedef test_group<httpdate_data> httpdate_test; + typedef httpdate_test::object httpdate_object; + tut::httpdate_test httpdate("httpdate"); + + template<> template<> + void httpdate_object::test<1>() + { + static std::string epoch_expected = "Thursday, 01 Jan 1970 00:00:00 GMT" ; + ensure("Check Epoch in RFC 1123", ( epoch_expected == some_date.asRFC1123())); + } + + template<> template<> + void httpdate_object::test<2>() + { + static std::string expected = "Wednesday, 18 Jul 2007 22:17:24 GMT" ; + some_date = LLDate(1184797044.037586); + ensure("Check some timestamp in RFC 1123", ( expected == some_date.asRFC1123())); + } + + // This test of course most generic.. runs off current time + template<> template<> + void httpdate_object::test<3>() + { + //F64 sometime = LLFrameTimer::getTotalSeconds(); + time_t sometime; + time(&sometime); + some_date = LLDate((F64) sometime); + struct tm result; + char expected[255], *actual; + + gmtime_r((time_t *)&sometime, &result); + /* + std::cout << " seconds: "<< result.tm_sec + << ", minutes: " << result.tm_min + << ", hours: " << result.tm_hour + << ", day of the month: " << result.tm_mday + << ", month: " << result.tm_mon + << ", year: " << result.tm_year + << ", day of the week: " << result.tm_wday + << ", day in the year: " << result.tm_yday + << ", DST: " << result.tm_isdst << std::endl; + */ + strftime(expected, 255, "%A, %d %h %Y %H:%M:%S GMT", &result); + actual = (char *) some_date.asRFC1123().c_str(); + // probably not a good idea to use strcmp but this is just a unit test + ensure("Current time in RFC 1123", (strcmp(expected, actual) == 0)); + } +} |