Linus Torvalds | 8996702 | 2005-04-30 13:19:56 -0700 | [diff] [blame] | 1 | #include "cache.h" |
| 2 | |
Jeff King | 4f6552e | 2009-08-30 22:26:46 -0400 | [diff] [blame] | 3 | static const char *usage_msg = "\n" |
| 4 | " test-date show [time_t]...\n" |
| 5 | " test-date parse [date]...\n" |
| 6 | " test-date approxidate [date]...\n"; |
Linus Torvalds | 8996702 | 2005-04-30 13:19:56 -0700 | [diff] [blame] | 7 | |
Jeff King | 4f6552e | 2009-08-30 22:26:46 -0400 | [diff] [blame] | 8 | static void show_dates(char **argv, struct timeval *now) |
| 9 | { |
| 10 | char buf[128]; |
| 11 | |
| 12 | for (; *argv; argv++) { |
| 13 | time_t t = atoi(*argv); |
| 14 | show_date_relative(t, 0, now, buf, sizeof(buf)); |
| 15 | printf("%s -> %s\n", *argv, buf); |
| 16 | } |
| 17 | } |
| 18 | |
| 19 | static void parse_dates(char **argv, struct timeval *now) |
| 20 | { |
| 21 | for (; *argv; argv++) { |
Linus Torvalds | 8996702 | 2005-04-30 13:19:56 -0700 | [diff] [blame] | 22 | char result[100]; |
| 23 | time_t t; |
| 24 | |
Jeff King | 4f6552e | 2009-08-30 22:26:46 -0400 | [diff] [blame] | 25 | result[0] = 0; |
| 26 | parse_date(*argv, result, sizeof(result)); |
Linus Torvalds | 8996702 | 2005-04-30 13:19:56 -0700 | [diff] [blame] | 27 | t = strtoul(result, NULL, 0); |
Jeff King | 4f6552e | 2009-08-30 22:26:46 -0400 | [diff] [blame] | 28 | printf("%s -> %s\n", *argv, |
| 29 | t ? show_date(t, 0, DATE_ISO8601) : "bad"); |
Linus Torvalds | 8996702 | 2005-04-30 13:19:56 -0700 | [diff] [blame] | 30 | } |
Jeff King | 4f6552e | 2009-08-30 22:26:46 -0400 | [diff] [blame] | 31 | } |
| 32 | |
| 33 | static void parse_approxidate(char **argv, struct timeval *now) |
| 34 | { |
| 35 | for (; *argv; argv++) { |
| 36 | time_t t; |
| 37 | t = approxidate_relative(*argv, now); |
| 38 | printf("%s -> %s\n", *argv, show_date(t, 0, DATE_ISO8601)); |
| 39 | } |
| 40 | } |
| 41 | |
| 42 | int main(int argc, char **argv) |
| 43 | { |
| 44 | struct timeval now; |
| 45 | const char *x; |
| 46 | |
| 47 | x = getenv("TEST_DATE_NOW"); |
| 48 | if (x) { |
| 49 | now.tv_sec = atoi(x); |
| 50 | now.tv_usec = 0; |
| 51 | } |
| 52 | else |
| 53 | gettimeofday(&now, NULL); |
| 54 | |
| 55 | argv++; |
| 56 | if (!*argv) |
| 57 | usage(usage_msg); |
| 58 | if (!strcmp(*argv, "show")) |
| 59 | show_dates(argv+1, &now); |
| 60 | else if (!strcmp(*argv, "parse")) |
| 61 | parse_dates(argv+1, &now); |
| 62 | else if (!strcmp(*argv, "approxidate")) |
| 63 | parse_approxidate(argv+1, &now); |
| 64 | else |
| 65 | usage(usage_msg); |
Linus Torvalds | 8996702 | 2005-04-30 13:19:56 -0700 | [diff] [blame] | 66 | return 0; |
| 67 | } |