Browse Source

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>
maint
Eric Sunshine 9 years ago committed by Junio C Hamano
parent
commit
12f7526c66
  1. 44
      t/t1500-rev-parse.sh

44
t/t1500-rev-parse.sh

@ -3,38 +3,28 @@ @@ -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' '

Loading…
Cancel
Save