git/t/t9700-perl-git.sh
Ævar Arnfjörð Bjarmason d998bd4ab6 test-lib: Make the test_external_* functions TAP-aware
Before TAP we just ran the Perl test and assumed that it failed if
nothing was printed on STDERR. Continue doing that, but introduce a
`test_external_has_tap' variable which tests can set to indicate that
they're outputting TAP.

If it's set we won't output a test plan, but trust the external test
to do so. That way we can make external tests work with a TAP harness,
but still maintain compatibility with test-lib's own way of tracking
tests through the test-results directory.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-06-25 10:06:30 -07:00

56 lines
1.4 KiB
Bash
Executable file

#!/bin/sh
#
# Copyright (c) 2008 Lea Wiemann
#
test_description='perl interface (Git.pm)'
. ./test-lib.sh
if ! test_have_prereq PERL; then
say 'skipping perl interface tests, perl not available'
test_done
fi
"$PERL_PATH" -MTest::More -e 0 2>/dev/null || {
say "Perl Test::More unavailable, skipping test"
test_done
}
# set up test repository
test_expect_success \
'set up test repository' \
'echo "test file 1" > file1 &&
echo "test file 2" > file2 &&
mkdir directory1 &&
echo "in directory1" >> directory1/file &&
mkdir directory2 &&
echo "in directory2" >> directory2/file &&
git add . &&
git commit -m "first commit" &&
echo "new file in subdir 2" > directory2/file2 &&
git add . &&
git commit -m "commit in directory2" &&
echo "changed file 1" > file1 &&
git commit -a -m "second commit" &&
git config --add color.test.slot1 green &&
git config --add test.string value &&
git config --add test.dupstring value1 &&
git config --add test.dupstring value2 &&
git config --add test.booltrue true &&
git config --add test.boolfalse no &&
git config --add test.boolother other &&
git config --add test.int 2k
'
# The external test will outputs its own plan
test_external_has_tap=1
test_external_without_stderr \
'Perl API' \
"$PERL_PATH" "$TEST_DIRECTORY"/t9700/test.pl
test_done