[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[LDM #QMJ-238932]: pqact dates still wrong
- Subject: [LDM #QMJ-238932]: pqact dates still wrong
- Date: Wed, 02 May 2007 15:59:15 -0600
Harry,
I think I've fixed the function that does the data
substitution in the "pqact" utility. It allows
dates one day in the future to one month minus
one day in the past.
I've attached a test-suite. Can you think of any
other test cases?
Regards,
Steve Emmerson
Ticket Details
===================
Ticket ID: QMJ-238932
Department: Support LDM
Priority: Normal
Status: On Hold
int
main()
{
char buf[128];
time_t time = 0;
struct tm tm;
time_t feb28;
time_t feb28leap;
time_t feb29leap;
time_t mar01;
time_t dec31;
time_t jan01;
(void)openulog("date_sub", (LOG_CONS|LOG_PID), LOG_LDM, "-");
date_sub("(01:yyyy)-(01:mm)-(01:dd)", buf, 0);
assert(strcmp(buf, "1970-01-01") == 0);
tm = *gmtime(&time);
tm.tm_mon = 1;
tm.tm_mday = 28;
tm.tm_sec -= timezone;
feb28 = mktime(&tm);
date_sub("(01:yyyy)-(01:mm)-(01:dd)", buf, feb28);
assert(strcmp(buf, "1970-03-01") == 0);
date_sub("(02:yyyy)-(02:mm)-(02:dd)", buf, feb28);
assert(strcmp(buf, "1970-02-02") == 0);
tm = *gmtime(&time);
tm.tm_year = 72;
tm.tm_mon = 1;
tm.tm_mday = 29;
tm.tm_sec -= timezone;
feb29leap = mktime(&tm);
date_sub("(01:yyyy)-(01:mm)-(01:dd)", buf, feb29leap);
assert(strcmp(buf, "1972-03-01") == 0);
date_sub("(02:yyyy)-(02:mm)-(02:dd)", buf, feb29leap);
assert(strcmp(buf, "1972-02-02") == 0);
date_sub("(28:yyyy)-(28:mm)-(28:dd)", buf, feb29leap);
assert(strcmp(buf, "1972-02-28") == 0);
tm = *gmtime(&time);
tm.tm_year = 72;
tm.tm_mon = 1;
tm.tm_mday = 28;
tm.tm_sec -= timezone;
feb28leap = mktime(&tm);
date_sub("(01:yyyy)-(01:mm)-(01:dd)", buf, feb28leap);
assert(strcmp(buf, "1972-02-01") == 0);
date_sub("(29:yyyy)-(29:mm)-(29:dd)", buf, feb28leap);
assert(strcmp(buf, "1972-02-29") == 0);
tm = *gmtime(&time);
tm.tm_mon = 2;
tm.tm_mday = 01;
tm.tm_sec -= timezone;
mar01 = mktime(&tm);
date_sub("(28:yyyy)-(28:mm)-(28:dd)", buf, mar01);
assert(strcmp(buf, "1970-02-28") == 0);
date_sub("(27:yyyy)-(27:mm)-(27:dd)", buf, mar01);
assert(strcmp(buf, "1970-02-27") == 0);
tm = *gmtime(&time);
tm.tm_mon = 11;
tm.tm_mday = 31;
tm.tm_sec -= timezone;
dec31 = mktime(&tm);
date_sub("(01:yyyy)-(01:mm)-(01:dd)", buf, dec31);
assert(strcmp(buf, "1971-01-01") == 0);
date_sub("(02:yyyy)-(02:mm)-(02:dd)", buf, dec31);
assert(strcmp(buf, "1970-12-02") == 0);
tm = *gmtime(&time);
tm.tm_year = 71;
tm.tm_mon = 0;
tm.tm_mday = 1;
tm.tm_sec -= timezone;
jan01 = mktime(&tm);
date_sub("(01:yyyy)-(01:mm)-(01:dd)", buf, jan01);
assert(strcmp(buf, "1971-01-01") == 0);
date_sub("(31:yyyy)-(31:mm)-(31:dd)", buf, jan01);
assert(strcmp(buf, "1970-12-31") == 0);
}