diff options
Diffstat (limited to 'third_party/git/t/helper/test-date.c')
-rw-r--r-- | third_party/git/t/helper/test-date.c | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/third_party/git/t/helper/test-date.c b/third_party/git/t/helper/test-date.c index 099eff4f0fc8..585347ea487a 100644 --- a/third_party/git/t/helper/test-date.c +++ b/third_party/git/t/helper/test-date.c @@ -12,13 +12,13 @@ static const char *usage_msg = "\n" " test-tool date is64bit\n" " test-tool date time_t-is64bit\n"; -static void show_relative_dates(const char **argv) +static void show_relative_dates(const char **argv, struct timeval *now) { struct strbuf buf = STRBUF_INIT; for (; *argv; argv++) { time_t t = atoi(*argv); - show_date_relative(t, &buf); + show_date_relative(t, now, &buf); printf("%s -> %s\n", *argv, buf.buf); } strbuf_release(&buf); @@ -74,20 +74,20 @@ static void parse_dates(const char **argv) strbuf_release(&result); } -static void parse_approxidate(const char **argv) +static void parse_approxidate(const char **argv, struct timeval *now) { for (; *argv; argv++) { timestamp_t t; - t = approxidate_relative(*argv); + t = approxidate_relative(*argv, now); printf("%s -> %s\n", *argv, show_date(t, 0, DATE_MODE(ISO8601))); } } -static void parse_approx_timestamp(const char **argv) +static void parse_approx_timestamp(const char **argv, struct timeval *now) { for (; *argv; argv++) { timestamp_t t; - t = approxidate_relative(*argv); + t = approxidate_relative(*argv, now); printf("%s -> %"PRItime"\n", *argv, t); } } @@ -103,13 +103,22 @@ static void getnanos(const char **argv) int cmd__date(int argc, const char **argv) { + 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); + argv++; if (!*argv) usage(usage_msg); if (!strcmp(*argv, "relative")) - show_relative_dates(argv+1); + show_relative_dates(argv+1, &now); else if (!strcmp(*argv, "human")) show_human_dates(argv+1); else if (skip_prefix(*argv, "show:", &x)) @@ -117,9 +126,9 @@ int cmd__date(int argc, const char **argv) else if (!strcmp(*argv, "parse")) parse_dates(argv+1); else if (!strcmp(*argv, "approxidate")) - parse_approxidate(argv+1); + parse_approxidate(argv+1, &now); else if (!strcmp(*argv, "timestamp")) - parse_approx_timestamp(argv+1); + parse_approx_timestamp(argv+1, &now); else if (!strcmp(*argv, "getnanos")) getnanos(argv+1); else if (!strcmp(*argv, "is64bit")) |