summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Eric Sunshine <sunshine@sunshineco.com>2016-05-18 16:15:42 -0400
committerLibravatar Junio C Hamano <gitster@pobox.com>2016-05-18 14:14:04 -0700
commit12f7526c66547ced1b670f5c0faeec5120fc9c7a (patch)
treeb3f8c36a9610bba3884a7822e8706a67e719945d
parentt1500: be considerate to future potential tests (diff)
downloadtgif-12f7526c66547ced1b670f5c0faeec5120fc9c7a.tar.xz
t1500: test_rev_parse: facilitate future test enhancements
Tests run by test_rev_parse() are nearly identical; each invokes git-rev-parse with a single option and compares the result against an expected value. Such duplication makes it onerous to extend the tests since any change needs to be repeated in each test. Avoid the duplication by parameterizing the test and driving it via a for-loop. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t1500-rev-parse.sh44
1 files changed, 17 insertions, 27 deletions
diff --git a/t/t1500-rev-parse.sh b/t/t1500-rev-parse.sh
index 0194f54012..ecc575ba1d 100755
--- a/t/t1500-rev-parse.sh
+++ b/t/t1500-rev-parse.sh
@@ -3,38 +3,28 @@
test_description='test git rev-parse'
. ./test-lib.sh
-test_rev_parse() {
+# usage: label is-bare is-inside-git is-inside-work prefix git-dir
+test_rev_parse () {
name=$1
shift
- test_expect_success "$name: is-bare-repository" \
- "test '$1' = \"\$(git rev-parse --is-bare-repository)\""
- shift
- [ $# -eq 0 ] && return
-
- test_expect_success "$name: is-inside-git-dir" \
- "test '$1' = \"\$(git rev-parse --is-inside-git-dir)\""
- shift
- [ $# -eq 0 ] && return
-
- test_expect_success "$name: is-inside-work-tree" \
- "test '$1' = \"\$(git rev-parse --is-inside-work-tree)\""
- shift
- [ $# -eq 0 ] && return
-
- test_expect_success "$name: prefix" \
- "test '$1' = \"\$(git rev-parse --show-prefix)\""
- shift
- [ $# -eq 0 ] && return
-
- test_expect_success "$name: git-dir" \
- "test '$1' = \"\$(git rev-parse --git-dir)\""
- shift
- [ $# -eq 0 ] && return
+ for o in --is-bare-repository \
+ --is-inside-git-dir \
+ --is-inside-work-tree \
+ --show-prefix \
+ --git-dir
+ do
+ test $# -eq 0 && break
+ expect="$1"
+ test_expect_success "$name: $o" '
+ echo "$expect" >expect &&
+ git rev-parse $o >actual &&
+ test_cmp expect actual
+ '
+ shift
+ done
}
-# label is-bare is-inside-git is-inside-work prefix git-dir
-
ROOT=$(pwd)
test_expect_success 'setup' '