mirror of
https://github.com/git/git
synced 2024-10-30 14:03:28 +00:00
c74c72034f
A #! line in these files is misleading, since these scriptlets are meant to be sourced with '.' (using whatever shell sources them) instead of run directly using the interpreter named on the #! line. Removing the #! line shouldn't hurt syntax highlighting since these files have filenames ending with '.sh'. For documentation, add a brief description of how the files are meant to be used in place of the shebang line. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
78 lines
1.7 KiB
Bash
78 lines
1.7 KiB
Bash
# Shell library sourced instead of ./test-lib.sh by cvsimport tests.
|
|
|
|
. ./test-lib.sh
|
|
|
|
unset CVS_SERVER
|
|
|
|
if ! type cvs >/dev/null 2>&1
|
|
then
|
|
skip_all='skipping cvsimport tests, cvs not found'
|
|
test_done
|
|
fi
|
|
|
|
CVS="cvs -f"
|
|
export CVS
|
|
|
|
cvsps_version=`cvsps -h 2>&1 | sed -ne 's/cvsps version //p'`
|
|
case "$cvsps_version" in
|
|
2.1 | 2.2*)
|
|
;;
|
|
'')
|
|
skip_all='skipping cvsimport tests, cvsps not found'
|
|
test_done
|
|
;;
|
|
*)
|
|
skip_all='skipping cvsimport tests, unsupported cvsps version'
|
|
test_done
|
|
;;
|
|
esac
|
|
|
|
setup_cvs_test_repository () {
|
|
CVSROOT="$(pwd)/.cvsroot" &&
|
|
cp -r "$TEST_DIRECTORY/$1/cvsroot" "$CVSROOT" &&
|
|
export CVSROOT
|
|
}
|
|
|
|
test_cvs_co () {
|
|
# Usage: test_cvs_co BRANCH_NAME
|
|
rm -rf module-cvs-"$1"
|
|
if [ "$1" = "master" ]
|
|
then
|
|
$CVS co -P -d module-cvs-"$1" -A module
|
|
else
|
|
$CVS co -P -d module-cvs-"$1" -r "$1" module
|
|
fi
|
|
}
|
|
|
|
test_git_co () {
|
|
# Usage: test_git_co BRANCH_NAME
|
|
(cd module-git && git checkout "$1")
|
|
}
|
|
|
|
test_cmp_branch_file () {
|
|
# Usage: test_cmp_branch_file BRANCH_NAME PATH
|
|
# The branch must already be checked out of CVS and git.
|
|
test_cmp module-cvs-"$1"/"$2" module-git/"$2"
|
|
}
|
|
|
|
test_cmp_branch_tree () {
|
|
# Usage: test_cmp_branch_tree BRANCH_NAME
|
|
# Check BRANCH_NAME out of CVS and git and make sure that all
|
|
# of the files and directories are identical.
|
|
|
|
test_cvs_co "$1" &&
|
|
test_git_co "$1" &&
|
|
(
|
|
cd module-cvs-"$1"
|
|
find . -type d -name CVS -prune -o -type f -print
|
|
) | sort >module-cvs-"$1".list &&
|
|
(
|
|
cd module-git
|
|
find . -type d -name .git -prune -o -type f -print
|
|
) | sort >module-git-"$1".list &&
|
|
test_cmp module-cvs-"$1".list module-git-"$1".list &&
|
|
cat module-cvs-"$1".list | while read f
|
|
do
|
|
test_cmp_branch_file "$1" "$f" || return 1
|
|
done
|
|
}
|