aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2010-07-04 06:48:35 -0400
committerJunio C Hamano <gitster@pobox.com>2010-07-05 11:54:50 -0700
commit6b097788f88a29d6e171af7a9e87117cf992e833 (patch)
tree84766fade9042215098fedba4aa698b6190dee51
parent2c64034491e302fa12ac86365dd872d9a75dc855 (diff)
downloadgit-6b097788f88a29d6e171af7a9e87117cf992e833.tar.gz
git-6b097788f88a29d6e171af7a9e87117cf992e833.tar.xz
t0006: test timezone parsing
Previously, test-date simply ignored the parsed timezone and told show_date() to use UTC. Instead, let's print out what we actually parsed. While we're at it, let's make it easy for tests to work in a specific timezone. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t0006-date.sh5
-rw-r--r--test-date.c9
2 files changed, 9 insertions, 5 deletions
diff --git a/t/t0006-date.sh b/t/t0006-date.sh
index 75b02af86..3ea4f9eff 100755
--- a/t/t0006-date.sh
+++ b/t/t0006-date.sh
@@ -28,8 +28,8 @@ check_show 31449600 '12 months ago'
check_parse() {
echo "$1 -> $2" >expect
- test_expect_${3:-success} "parse date ($1)" "
- test-date parse '$1' >actual &&
+ test_expect_${4:-success} "parse date ($1${3:+ TZ=$3})" "
+ TZ=${3:-$TZ} test-date parse '$1' >actual &&
test_cmp expect actual
"
}
@@ -38,6 +38,7 @@ check_parse 2008 bad
check_parse 2008-02 bad
check_parse 2008-02-14 bad
check_parse '2008-02-14 20:30:45' '2008-02-14 20:30:45 +0000'
+check_parse '2008-02-14 20:30:45 -0500' '2008-02-14 20:30:45 -0500'
check_approxidate() {
echo "$1 -> $2 +0000" >expect
diff --git a/test-date.c b/test-date.c
index a9e705f79..ac6854a54 100644
--- a/test-date.c
+++ b/test-date.c
@@ -21,12 +21,15 @@ static void parse_dates(char **argv, struct timeval *now)
for (; *argv; argv++) {
char result[100];
time_t t;
+ int tz;
result[0] = 0;
parse_date(*argv, result, sizeof(result));
- t = strtoul(result, NULL, 0);
- printf("%s -> %s\n", *argv,
- t ? show_date(t, 0, DATE_ISO8601) : "bad");
+ if (sscanf(result, "%ld %d", &t, &tz) == 2)
+ printf("%s -> %s\n",
+ *argv, show_date(t, tz, DATE_ISO8601));
+ else
+ printf("%s -> bad\n", *argv);
}
}