diff options
author | Stephen P. Smith <ischis2@cox.net> | 2019-01-29 06:50:15 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-01-29 20:40:08 +0300 |
commit | b841d4ff438576fe0c3f69b7d48ba46a442f162b (patch) | |
tree | e1d89251ba3fe94708dbdc94fbaf5d0f3ec3795d /date.c | |
parent | 038a87881067a629c79e70db41ef9a427ecbe223 (diff) |
Add `human` format to test-tool
Add the human format support to the test tool so that
GIT_TEST_DATE_NOW can be used to specify the current time.
The get_time() helper function was created and and checks the
GIT_TEST_DATE_NOW environment variable. If GIT_TEST_DATE_NOW is set,
then that date is used instead of the date returned by by
gettimeofday().
All calls to gettimeofday() were replaced by calls to get_time().
Renamed occurances of TEST_DATE_NOW to GIT_TEST_DATE_NOW since the
variable is now used in the get binary and not just in the test-tool.
Signed-off-by: Stephen P. Smith <ischis2@cox.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'date.c')
-rw-r--r-- | date.c | 21 |
1 files changed, 17 insertions, 4 deletions
@@ -115,6 +115,19 @@ static int local_tzoffset(timestamp_t time) return local_time_tzoffset((time_t)time, &tm); } +static void get_time(struct timeval *now) +{ + const char *x; + + x = getenv("GIT_TEST_DATE_NOW"); + if (x) { + now->tv_sec = atoi(x); + now->tv_usec = 0; + } + else + gettimeofday(now, NULL); +} + void show_date_relative(timestamp_t time, int tz, const struct timeval *now, struct strbuf *timebuf) @@ -228,7 +241,7 @@ static void show_date_normal(struct strbuf *buf, timestamp_t time, struct tm *tm /* Show "today" times as just relative times */ if (hide.wday) { struct timeval now; - gettimeofday(&now, NULL); + get_time(&now); show_date_relative(time, tz, &now, buf); return; } @@ -284,7 +297,7 @@ const char *show_date(timestamp_t time, int tz, const struct date_mode *mode) if (mode->type == DATE_HUMAN) { struct timeval now; - gettimeofday(&now, NULL); + get_time(&now); /* Fill in the data for "current time" in human_tz and human_tm */ human_tz = local_time_tzoffset(now.tv_sec, &human_tm); @@ -303,7 +316,7 @@ const char *show_date(timestamp_t time, int tz, const struct date_mode *mode) struct timeval now; strbuf_reset(&timebuf); - gettimeofday(&now, NULL); + get_time(&now); show_date_relative(time, tz, &now, &timebuf); return timebuf.buf; } @@ -1290,7 +1303,7 @@ timestamp_t approxidate_careful(const char *date, int *error_ret) return timestamp; } - gettimeofday(&tv, NULL); + get_time(&tv); return approxidate_str(date, &tv, error_ret); } |