t/t9001-send-email.sh: change from skip_all=* to prereq skip
[gitweb.git] / t / t9600-cvsimport.sh
index 363345faef7b1eb209c548914b94460d9475cb13..559ce417954e1ef8276efc860ca63eb0bdcce284 100755 (executable)
@@ -3,17 +3,14 @@
 test_description='git cvsimport basic tests'
 . ./lib-cvs.sh
 
-if ! test_have_prereq PERL; then
-       say 'skipping git cvsimport tests, perl not available'
-       test_done
-fi
-
-CVSROOT=$(pwd)/cvsroot
-export CVSROOT
+test_expect_success PERL 'setup cvsroot environment' '
+       CVSROOT=$(pwd)/cvsroot &&
+       export CVSROOT
+'
 
-test_expect_success 'setup cvsroot' '$CVS init'
+test_expect_success PERL 'setup cvsroot' '$CVS init'
 
-test_expect_success 'setup a cvs module' '
+test_expect_success PERL 'setup a cvs module' '
 
        mkdir "$CVSROOT/module" &&
        $CVS co -d module-cvs module &&
@@ -45,16 +42,23 @@ EOF
        cd ..
 '
 
-test_expect_success 'import a trivial module' '
+test_expect_success PERL 'import a trivial module' '
 
-       git cvsimport -a -z 0 -C module-git module &&
+       git cvsimport -a -R -z 0 -C module-git module &&
        test_cmp module-cvs/o_fortuna module-git/o_fortuna
 
 '
 
-test_expect_success 'pack refs' 'cd module-git && git gc && cd ..'
+test_expect_success PERL 'pack refs' 'cd module-git && git gc && cd ..'
+
+test_expect_success PERL 'initial import has correct .git/cvs-revisions' '
+
+       (cd module-git &&
+        git log --format="o_fortuna 1.1 %H" -1) > expected &&
+       test_cmp expected module-git/.git/cvs-revisions
+'
 
-test_expect_success 'update cvs module' '
+test_expect_success PERL 'update cvs module' '
 
        cd module-cvs &&
        cat <<EOF >o_fortuna &&
@@ -83,17 +87,25 @@ EOF
        cd ..
 '
 
-test_expect_success 'update git module' '
+test_expect_success PERL 'update git module' '
 
        cd module-git &&
-       git cvsimport -a -z 0 module &&
+       git cvsimport -a -R -z 0 module &&
        git merge origin &&
        cd .. &&
        test_cmp module-cvs/o_fortuna module-git/o_fortuna
 
 '
 
-test_expect_success 'update cvs module' '
+test_expect_success PERL 'update has correct .git/cvs-revisions' '
+
+       (cd module-git &&
+        git log --format="o_fortuna 1.1 %H" -1 HEAD^ &&
+        git log --format="o_fortuna 1.2 %H" -1 HEAD) > expected &&
+       test_cmp expected module-git/.git/cvs-revisions
+'
+
+test_expect_success PERL 'update cvs module' '
 
        cd module-cvs &&
                echo 1 >tick &&
@@ -103,18 +115,27 @@ test_expect_success 'update cvs module' '
 
 '
 
-test_expect_success 'cvsimport.module config works' '
+test_expect_success PERL 'cvsimport.module config works' '
 
        cd module-git &&
                git config cvsimport.module module &&
-               git cvsimport -a -z0 &&
+               git cvsimport -a -R -z0 &&
                git merge origin &&
        cd .. &&
        test_cmp module-cvs/tick module-git/tick
 
 '
 
-test_expect_success 'import from a CVS working tree' '
+test_expect_success PERL 'second update has correct .git/cvs-revisions' '
+
+       (cd module-git &&
+        git log --format="o_fortuna 1.1 %H" -1 HEAD^^ &&
+        git log --format="o_fortuna 1.2 %H" -1 HEAD^
+        git log --format="tick 1.1 %H" -1 HEAD) > expected &&
+       test_cmp expected module-git/.git/cvs-revisions
+'
+
+test_expect_success PERL 'import from a CVS working tree' '
 
        $CVS co -d import-from-wt module &&
        cd import-from-wt &&
@@ -126,6 +147,12 @@ test_expect_success 'import from a CVS working tree' '
 
 '
 
-test_expect_success 'test entire HEAD' 'test_cmp_branch_tree master'
+test_expect_success PERL 'no .git/cvs-revisions created by default' '
+
+       ! test -e import-from-wt/.git/cvs-revisions
+
+'
+
+test_expect_success PERL 'test entire HEAD' 'test_cmp_branch_tree master'
 
 test_done