git/t/t9600-cvsimport.sh
Frank Lichtenheld 40ae8872a1 t9600-cvsimport.sh: set HOME before checking for cvsps availability
This actually sounds like a bug in cvsps, which requires an existing
home directory when asked for the usage through -h

 $ HOME=/nonexistent cvsps -h
 Cannot create the cvsps directory '.cvsps': No such file or directory

This made t9600 think that cvsps is not available if HOME did not exist,
causing the tests to be skipped

 $ HOME=/nonexistent sh t9600-cvsimport.sh
 * skipping cvsimport tests, cvsps not found
 * passed all 0 test(s)

Now t9600 sets HOME to the current working directory before checking for
the availability of the cvsps program.

This issue has been discovered by Marco Rodrigues, and fixed by Frank
Lichtenheld through
 http://bugs.debian.org/471969

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-26 16:14:52 -07:00

150 lines
2.4 KiB
Bash
Executable file

#!/bin/sh
test_description='git-cvsimport basic tests'
. ./test-lib.sh
CVSROOT=$(pwd)/cvsroot
export CVSROOT
# for clean cvsps cache
HOME=$(pwd)
export HOME
if ! type cvs >/dev/null 2>&1
then
say 'skipping cvsimport tests, cvs not found'
test_done
exit
fi
cvsps_version=`cvsps -h 2>&1 | sed -ne 's/cvsps version //p'`
case "$cvsps_version" in
2.1)
;;
'')
say 'skipping cvsimport tests, cvsps not found'
test_done
exit
;;
*)
say 'skipping cvsimport tests, cvsps too old'
test_done
exit
;;
esac
test_expect_success 'setup cvsroot' 'cvs init'
test_expect_success 'setup a cvs module' '
mkdir $CVSROOT/module &&
cvs co -d module-cvs module &&
cd module-cvs &&
cat <<EOF >o_fortuna &&
O Fortuna
velut luna
statu variabilis,
semper crescis
aut decrescis;
vita detestabilis
nunc obdurat
et tunc curat
ludo mentis aciem,
egestatem,
potestatem
dissolvit ut glaciem.
EOF
cvs add o_fortuna &&
cat <<EOF >message &&
add "O Fortuna" lyrics
These public domain lyrics make an excellent sample text.
EOF
cvs commit -F message &&
cd ..
'
test_expect_success 'import a trivial module' '
git cvsimport -a -z 0 -C module-git module &&
git diff module-cvs/o_fortuna module-git/o_fortuna
'
test_expect_success 'pack refs' 'cd module-git && git gc && cd ..'
test_expect_success 'update cvs module' '
cd module-cvs &&
cat <<EOF >o_fortuna &&
O Fortune,
like the moon
you are changeable,
ever waxing
and waning;
hateful life
first oppresses
and then soothes
as fancy takes it;
poverty
and power
it melts them like ice.
EOF
cat <<EOF >message &&
translate to English
My Latin is terrible.
EOF
cvs commit -F message &&
cd ..
'
test_expect_success 'update git module' '
cd module-git &&
git cvsimport -a -z 0 module &&
git merge origin &&
cd .. &&
git diff module-cvs/o_fortuna module-git/o_fortuna
'
test_expect_success 'update cvs module' '
cd module-cvs &&
echo 1 >tick &&
cvs add tick &&
cvs commit -m 1
cd ..
'
test_expect_success 'cvsimport.module config works' '
cd module-git &&
git config cvsimport.module module &&
git cvsimport -a -z0 &&
git merge origin &&
cd .. &&
git diff module-cvs/tick module-git/tick
'
test_expect_success 'import from a CVS working tree' '
cvs co -d import-from-wt module &&
cd import-from-wt &&
git cvsimport -a -z0 &&
echo 1 >expect &&
git log -1 --pretty=format:%s%n >actual &&
git diff actual expect &&
cd ..
'
test_done