summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2016-07-11 19:54:18 -0400
committerJunio C Hamano <gitster@pobox.com>2016-07-15 09:05:53 -0700
commit6b9c38e14cd3abf9b95cabe8b86954f0c4e94a38 (patch)
treed358021240aacba6d5c32afbfd91a65d837359a0
parentbab748371a104c58058c0eff9f4073b710ce0355 (diff)
downloadgit-6b9c38e14cd3abf9b95cabe8b86954f0c4e94a38.tar.gz
git-6b9c38e14cd3abf9b95cabe8b86954f0c4e94a38.tar.xz
t0006: skip "far in the future" test when unsigned long is not long enough
Git's source code refers to timestamps as unsigned longs. On 32-bit platforms, as well as on Windows, unsigned long is not large enough to capture dates that are "absurdly far in the future". While we can fix this issue properly by replacing unsigned long with a larger type, we want to be a bit more conservative and just skip those tests on the maint track. Signed-off-by: Jeff King <peff@peff.net> Helped-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--help.c6
-rwxr-xr-xt/t0006-date.sh6
-rw-r--r--t/test-lib.sh9
3 files changed, 18 insertions, 3 deletions
diff --git a/help.c b/help.c
index 19328ea99..2ff3b5a77 100644
--- a/help.c
+++ b/help.c
@@ -419,6 +419,12 @@ int cmd_version(int argc, const char **argv, const char *prefix)
* with external projects that rely on the output of "git version".
*/
printf("git version %s\n", git_version_string);
+ while (*++argv) {
+ if (!strcmp(*argv, "--build-options")) {
+ printf("sizeof-long: %d\n", (int)sizeof(long));
+ /* NEEDSWORK: also save and output GIT-BUILD_OPTIONS? */
+ }
+ }
return 0;
}
diff --git a/t/t0006-date.sh b/t/t0006-date.sh
index 04ce53509..4c8cf5851 100755
--- a/t/t0006-date.sh
+++ b/t/t0006-date.sh
@@ -31,7 +31,7 @@ check_show () {
format=$1
time=$2
expect=$3
- test_expect_${4:-success} "show date ($format:$time)" '
+ test_expect_success $4 "show date ($format:$time)" '
echo "$time -> $expect" >expect &&
test-date show:$format "$time" >actual &&
test_cmp expect actual
@@ -50,8 +50,8 @@ check_show iso-local "$TIME" '2016-06-15 14:13:20 +0000'
# arbitrary time absurdly far in the future
FUTURE="5758122296 -0400"
-check_show iso "$FUTURE" "2152-06-19 18:24:56 -0400"
-check_show iso-local "$FUTURE" "2152-06-19 22:24:56 +0000"
+check_show iso "$FUTURE" "2152-06-19 18:24:56 -0400" LONG_IS_64BIT
+check_show iso-local "$FUTURE" "2152-06-19 22:24:56 +0000" LONG_IS_64BIT
check_parse() {
echo "$1 -> $2" >expect
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 51e4a88c3..4595734f9 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -1098,3 +1098,12 @@ run_with_limited_cmdline () {
}
test_lazy_prereq CMDLINE_LIMIT 'run_with_limited_cmdline true'
+
+build_option () {
+ git version --build-options |
+ sed -ne "s/^$1: //p"
+}
+
+test_lazy_prereq LONG_IS_64BIT '
+ test 8 -le "$(build_option sizeof-long)"
+'