summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2012-05-01 08:43:08 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-05-01 16:41:13 (GMT)
commite304aeba20d6f26cb95c022704440a36ef309075 (patch)
tree85cca06e42826b28bffcb22817c5d7156087fd59
parent391b1f2003c425773c01799969368a517375b1a4 (diff)
downloadgit-e304aeba20d6f26cb95c022704440a36ef309075.zip
git-e304aeba20d6f26cb95c022704440a36ef309075.tar.gz
git-e304aeba20d6f26cb95c022704440a36ef309075.tar.bz2
t5541: test more combinations of --progress
Previously, we tested only that "push --quiet --no-progress" was silent. However, there are many other combinations that were not tested: 1. no options at all (but stderr as a tty) 2. --no-progress by itself 3. --quiet by itself 4. --progress (when stderr not a tty) These are tested elsewhere for general "push", but it is important to test them separately for http. It follows a very different code path than git://, and options must be relayed across a remote helper to a separate send-pack process (and in fact cases (1), (2), and (4) have all been broken just for http at some point in the past). We can drop the "--quiet --no-progress" test, as it is not really interesting (it is already handled by testing them separately in (2) and (3) above). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t5541-http-push.sh27
1 files changed, 25 insertions, 2 deletions
diff --git a/t/t5541-http-push.sh b/t/t5541-http-push.sh
index d66ed24..363beaf 100755
--- a/t/t5541-http-push.sh
+++ b/t/t5541-http-push.sh
@@ -215,12 +215,35 @@ test_expect_success 'push --mirror to repo with alternates' '
git push --mirror "$HTTPD_URL"/smart/alternates-mirror.git
'
-test_expect_success TTY 'quiet push' '
+test_expect_success TTY 'push shows progress when stderr is a tty' '
+ cd "$ROOT_PATH"/test_repo_clone &&
+ test_commit noisy &&
+ test_terminal git push >output 2>&1 &&
+ grep "^Writing objects" output
+'
+
+test_expect_success TTY 'push --quiet silences status and progress' '
cd "$ROOT_PATH"/test_repo_clone &&
test_commit quiet &&
- test_terminal git push --quiet --no-progress 2>&1 | tee output &&
+ test_terminal git push --quiet >output 2>&1 &&
test_cmp /dev/null output
'
+test_expect_success TTY 'push --no-progress silences progress but not status' '
+ cd "$ROOT_PATH"/test_repo_clone &&
+ test_commit no-progress &&
+ test_terminal git push --no-progress >output 2>&1 &&
+ grep "^To http" output &&
+ ! grep "^Writing objects"
+'
+
+test_expect_success 'push --progress shows progress to non-tty' '
+ cd "$ROOT_PATH"/test_repo_clone &&
+ test_commit progress &&
+ git push --progress >output 2>&1 &&
+ grep "^To http" output &&
+ grep "^Writing objects" output
+'
+
stop_httpd
test_done