64 lines
2.1 KiB
Diff
64 lines
2.1 KiB
Diff
From a88dbd2f8c7fd8c1e2f63483da03bd6928e8791f Mon Sep 17 00:00:00 2001
|
|
From: Jeff King <peff@peff.net>
|
|
Date: Sun, 19 Apr 2020 01:36:02 -0400
|
|
Subject: [PATCH] t0300: make "quit" helper more realistic
|
|
|
|
We test a toy credential helper that writes "quit=1" and confirms that
|
|
we stop running other helpers. However, that helper is unrealistic in
|
|
that it does not bother to read its stdin at all.
|
|
|
|
For now we don't send any input to it, because we feed git-credential a
|
|
blank credential. But that will change in the next patch, which will
|
|
cause this test to racily fail, as git-credential will get SIGPIPE
|
|
writing to the helper rather than exiting because it was asked to.
|
|
|
|
Let's make this one-off helper more like our other sample helpers, and
|
|
have it source the "dump" script. That will read stdin, fixing the
|
|
SIGPIPE problem. But it will also write what it sees to stderr. We can
|
|
make the test more robust by checking that output, which confirms that
|
|
we do run the quit helper, don't run any other helpers, and exit for the
|
|
reason we expected.
|
|
|
|
Signed-off-by: Jeff King <peff@peff.net>
|
|
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
|
|
---
|
|
t/t0300-credentials.sh | 16 +++++++++++++---
|
|
1 file changed, 13 insertions(+), 3 deletions(-)
|
|
|
|
--- a/t/t0300-credentials.sh
|
|
+++ b/t/t0300-credentials.sh
|
|
@@ -22,6 +22,11 @@ test_expect_success 'setup helper script
|
|
exit 0
|
|
EOF
|
|
|
|
+ write_script git-credential-quit <<-\EOF &&
|
|
+ . ./dump
|
|
+ echo quit=1
|
|
+ EOF
|
|
+
|
|
write_script git-credential-verbatim <<-\EOF &&
|
|
user=$1; shift
|
|
pass=$1; shift
|
|
@@ -291,10 +296,15 @@ test_expect_success 'http paths can be p
|
|
|
|
test_expect_success 'helpers can abort the process' '
|
|
test_must_fail git \
|
|
- -c credential.helper="!f() { echo quit=1; }; f" \
|
|
+ -c credential.helper=quit \
|
|
-c credential.helper="verbatim foo bar" \
|
|
- credential fill >stdout &&
|
|
- test_must_be_empty stdout
|
|
+ credential fill >stdout 2>stderr &&
|
|
+ test_must_be_empty stdout &&
|
|
+ cat >expect <<-\EOF &&
|
|
+ quit: get
|
|
+ fatal: credential helper '\''quit'\'' told us to quit
|
|
+ EOF
|
|
+ test_i18ncmp expect stderr
|
|
'
|
|
|
|
test_expect_success 'empty helper spec resets helper list' '
|
|
--
|
|
1.8.3.1
|
|
|