tests: use Git's test framework

This allows tests to run in parallel as well as letting us use "prove"
or another TAP harness to run the tests.

Git's test framework requires Git to be fully built before letting any
tests run, so add a new target to the top-level Makefile which builds
all of Git instead of just libgit.a and make the "test" target depend on
that.

Signed-off-by: John Keeping <john@keeping.me.uk>
This commit is contained in:
John Keeping
2013-04-01 15:09:05 +01:00
کامیت شده توسط Jason A. Donenfeld
والد 8a92df033e
کامیت c95cc5ec56
13فایلهای تغییر یافته به همراه239 افزوده شده و 291 حذف شده

مشاهده پرونده

@ -1,36 +1,36 @@
#!/bin/sh
test_description='Check Git version is correct'
CGIT_TEST_NO_CREATE_REPOS=YesPlease
. ./setup.sh
prepare_tests 'Check Git version is correct'
run_test 'extract Git version from Makefile' '
test_expect_success 'extract Git version from Makefile' '
sed -n -e "/^GIT_VER[ ]*=/ {
s/^GIT_VER[ ]*=[ ]*//
p
}" ../Makefile >trash/makefile_version
}" ../../Makefile >makefile_version
'
run_test 'test Git version matches Makefile' '
( cat ../git/GIT-VERSION-FILE || echo "No GIT-VERSION-FILE" ) |
sed -e "s/GIT_VERSION[ ]*=[ ]*//" >trash/git_version &&
diff -u trash/git_version trash/makefile_version
test_expect_success 'test Git version matches Makefile' '
( cat ../../git/GIT-VERSION-FILE || echo "No GIT-VERSION-FILE" ) |
sed -e "s/GIT_VERSION[ ]*=[ ]*//" >git_version &&
test_cmp git_version makefile_version
'
run_test 'test submodule version matches Makefile' '
if ! test -e ../git/.git
test_expect_success 'test submodule version matches Makefile' '
if ! test -e ../../git/.git
then
echo "git/ is not a Git repository" >&2
else
(
cd .. &&
cd ../.. &&
sm_sha1=$(git ls-files --stage -- git |
sed -e "s/^[0-9]* \\([0-9a-f]*\\) [0-9] .*$/\\1/") &&
cd git &&
git describe --match "v[0-9]*" $sm_sha1
) | sed -e "s/^v//" >trash/sm_version &&
diff -u trash/sm_version trash/makefile_version
) | sed -e "s/^v//" >sm_version &&
test_cmp sm_version makefile_version
fi
'
tests_done
test_done