test: dd file operation tests

Inspired by gitifyhg.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
This commit is contained in:
Felipe Contreras
2014-05-01 02:07:52 -05:00
parent 990152c0c8
commit c84feb364b

View File

@@ -53,6 +53,17 @@ check_bookmark () {
fi
}
check_files () {
git --git-dir=$1/.git ls-files > actual &&
if test $# -gt 1
then
printf "%s\n" "$2" > expected
else
> expected
fi &&
test_cmp expected actual
}
check_push () {
expected_ret=$1 ret=0 ref_ret=0
@@ -948,4 +959,69 @@ test_expect_success 'push tag different branch' '
test_cmp expected actual
'
test_expect_success 'cloning a removed file works' '
test_when_finished "rm -rf hgrepo gitrepo" &&
(
hg init hgrepo &&
cd hgrepo &&
echo test > test_file &&
hg add test_file &&
hg commit -m add &&
hg rm test_file &&
hg commit -m remove
) &&
git clone "hg::hgrepo" gitrepo &&
check_files gitrepo
'
test_expect_success 'cloning a file replaced with a directory' '
test_when_finished "rm -rf hgrepo gitrepo" &&
(
hg init hgrepo &&
cd hgrepo &&
echo test > dir_or_file &&
hg add dir_or_file &&
hg commit -m add &&
hg rm dir_or_file &&
mkdir dir_or_file &&
echo test > dir_or_file/test_file &&
hg add dir_or_file/test_file &&
hg commit -m replase
) &&
git clone "hg::hgrepo" gitrepo &&
check_files gitrepo "dir_or_file/test_file"
'
test_expect_success 'clone replace directory with a file' '
test_when_finished "rm -rf hgrepo gitrepo" &&
(
hg init hgrepo &&
cd hgrepo &&
mkdir dir_or_file &&
echo test > dir_or_file/test_file &&
hg add dir_or_file/test_file &&
hg commit -m add &&
hg rm dir_or_file/test_file &&
echo test > dir_or_file &&
hg add dir_or_file &&
hg commit -m add &&
hg rm dir_or_file
) &&
git clone "hg::hgrepo" gitrepo &&
check_files gitrepo "dir_or_file"
'
test_done