summaryrefslogtreecommitdiff
path: root/ACE/tests/Date_Time_Test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/tests/Date_Time_Test.cpp')
-rw-r--r--ACE/tests/Date_Time_Test.cpp132
1 files changed, 132 insertions, 0 deletions
diff --git a/ACE/tests/Date_Time_Test.cpp b/ACE/tests/Date_Time_Test.cpp
new file mode 100644
index 00000000000..1dc66b46303
--- /dev/null
+++ b/ACE/tests/Date_Time_Test.cpp
@@ -0,0 +1,132 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// tests
+//
+// = DESCRIPTION
+// This program verifies the ACE_Date_Time class.
+//
+// = AUTHOR
+// Steve Huston <shuston@riverace.com>
+//
+// ============================================================================
+
+#include "ace/Date_Time.h"
+#include "test_config.h"
+
+
+
+static ACE_Date_Time static_dt; // Making sure it doesn't crash.
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Date_Time_Test"));
+
+ int error = 0;
+
+ ACE_Date_Time dt;
+
+ long month = dt.month ();
+ long day = dt.day ();
+ long year = dt.year ();
+ long hour = dt.hour ();
+ long minute = dt.minute ();
+ long seconds = dt.second ();
+ long usec = dt.microsec ();
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ACE_Date_Time (m/d/y, h:m:s.u): %d/%d/%d, %d:%d:%d.%d\n"),
+ month, day, year, hour, minute, seconds, usec));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_Log thinks it is: %D\n")));
+
+ if (month < 1 || month > 12)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Month (%d) out of range (1-12)\n"),
+ month));
+ error = 1;
+ }
+ if (day < 1 || day > 31)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Day (%d) out of range (1-31)\n"),
+ day));
+ error = 1;
+ }
+ if (year < 1900 || year > 2100)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Year (%d) out of range (1900-2100)\n"),
+ year));
+ error = 1;
+ }
+ if (hour < 0 || hour > 23)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Hour (%d) out of range (0-23)\n"),
+ hour));
+ error = 1;
+ }
+ if (minute < 0 || minute > 59)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Minute (%d) out of range (0-59)\n"),
+ minute));
+ error = 1;
+ }
+ if (seconds < 0 || seconds > 59)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Seconds (%d) out of range (0-59)\n"),
+ seconds));
+ error = 1;
+ }
+ if (usec < 0 || usec > 999999)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Microseconds (%d) out of range (0-999999)\n"),
+ usec));
+ error = 1;
+ }
+
+ // The static ACE_Date_Time object is primarily to be sure it doesn't
+ // crash; However, let's do some sanity checks on it to be sure it's
+ // legit as well.
+ if (static_dt.month () != month)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Static month (%d) doesn't match %d\n"),
+ static_dt.month (), month));
+ error = 1;
+ }
+ if (static_dt.day () != day)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Static day (%d) doesn't match %d\n"),
+ static_dt.day (), day));
+ error = 1;
+ }
+ if (static_dt.year () != year)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Static year (%d) doesn't match %d\n"),
+ static_dt.year (), year));
+ error = 1;
+ }
+ if (static_dt.hour () != hour)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Static hour (%d) doesn't match %d\n"),
+ static_dt.hour (), hour));
+ error = 1;
+ }
+
+ // There's a rare instance where the starting seconds is 59 and the
+ // minute roles over during the test run.
+ if (!(static_dt.minute () == minute ||
+ (static_dt.minute () + 1 == minute && static_dt.second () > seconds)))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Static minute (%d) doesn't match %d\n"),
+ static_dt.minute (), minute));
+ error = 1;
+ }
+ ACE_END_TEST;
+ return error;
+}