Browse Source

t9200: Be careful when checking CVS/Entries

CVS/Entries file can contain a line with single D to say "this
directory does not have any subdirectories".  Do not get
confused with such an entry.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Junio C Hamano 18 years ago
parent
commit
c4eaed49c2
  1. 64
      t/t9200-git-cvsexportcommit.sh

64
t/t9200-git-cvsexportcommit.sh

@ -28,6 +28,18 @@ git add empty &&
git commit -q -a -m "Initial" 2>/dev/null || git commit -q -a -m "Initial" 2>/dev/null ||
exit 1 exit 1


check_entries () {
# $1 == directory, $2 == expected
grep '^/' "$1/CVS/Entries" | sort | cut -d/ -f2,3,5 >actual
if test -z "$2"
then
>expected
else
printf '%s\n' "$2" | tr '|' '\012' >expected
fi
diff -u expected actual
}

test_expect_success \ test_expect_success \
'New file' \ 'New file' \
'mkdir A B C D E F && 'mkdir A B C D E F &&
@ -43,10 +55,10 @@ test_expect_success \
id=$(git rev-list --max-count=1 HEAD) && id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" && (cd "$CVSWORK" &&
git cvsexportcommit -c $id && git cvsexportcommit -c $id &&
test "$(echo $(sort A/CVS/Entries|cut -d/ -f2,3,5))" = "newfile1.txt/1.1/" && check_entries A "newfile1.txt/1.1/" &&
test "$(echo $(sort B/CVS/Entries|cut -d/ -f2,3,5))" = "newfile2.txt/1.1/" && check_entries B "newfile2.txt/1.1/" &&
test "$(echo $(sort C/CVS/Entries|cut -d/ -f2,3,5))" = "newfile3.png/1.1/-kb" && check_entries C "newfile3.png/1.1/-kb" &&
test "$(echo $(sort D/CVS/Entries|cut -d/ -f2,3,5))" = "newfile4.png/1.1/-kb" && check_entries D "newfile4.png/1.1/-kb" &&
diff A/newfile1.txt ../A/newfile1.txt && diff A/newfile1.txt ../A/newfile1.txt &&
diff B/newfile2.txt ../B/newfile2.txt && diff B/newfile2.txt ../B/newfile2.txt &&
diff C/newfile3.png ../C/newfile3.png && diff C/newfile3.png ../C/newfile3.png &&
@ -67,12 +79,12 @@ test_expect_success \
id=$(git rev-list --max-count=1 HEAD) && id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" && (cd "$CVSWORK" &&
git cvsexportcommit -c $id && git cvsexportcommit -c $id &&
test "$(echo $(sort A/CVS/Entries|cut -d/ -f2,3,5))" = "newfile1.txt/1.2/" && check_entries A "newfile1.txt/1.2/" &&
test "$(echo $(sort B/CVS/Entries|cut -d/ -f2,3,5))" = "" && check_entries B "" &&
test "$(echo $(sort C/CVS/Entries|cut -d/ -f2,3,5))" = "" && check_entries C "" &&
test "$(echo $(sort D/CVS/Entries|cut -d/ -f2,3,5))" = "newfile4.png/1.2/-kb" && check_entries D "newfile4.png/1.2/-kb" &&
test "$(echo $(sort E/CVS/Entries|cut -d/ -f2,3,5))" = "newfile5.txt/1.1/" && check_entries E "newfile5.txt/1.1/" &&
test "$(echo $(sort F/CVS/Entries|cut -d/ -f2,3,5))" = "newfile6.png/1.1/-kb" && check_entries F "newfile6.png/1.1/-kb" &&
diff A/newfile1.txt ../A/newfile1.txt && diff A/newfile1.txt ../A/newfile1.txt &&
diff D/newfile4.png ../D/newfile4.png && diff D/newfile4.png ../D/newfile4.png &&
diff E/newfile5.txt ../E/newfile5.txt && diff E/newfile5.txt ../E/newfile5.txt &&
@ -115,12 +127,12 @@ test_expect_success \
id=$(git rev-list --max-count=1 HEAD) && id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" && (cd "$CVSWORK" &&
git cvsexportcommit -c $id && git cvsexportcommit -c $id &&
test "$(echo $(sort A/CVS/Entries|cut -d/ -f2,3,5))" = "newfile1.txt/1.2/" && check_entries A "newfile1.txt/1.2/" &&
test "$(echo $(sort B/CVS/Entries|cut -d/ -f2,3,5))" = "" && check_entries B "" &&
test "$(echo $(sort C/CVS/Entries|cut -d/ -f2,3,5))" = "" && check_entries C "" &&
test "$(echo $(sort D/CVS/Entries|cut -d/ -f2,3,5))" = "" && check_entries D "" &&
test "$(echo $(sort E/CVS/Entries|cut -d/ -f2,3,5))" = "newfile5.txt/1.1/" && check_entries E "newfile5.txt/1.1/" &&
test "$(echo $(sort F/CVS/Entries|cut -d/ -f2,3,5))" = "newfile6.png/1.1/-kb" && check_entries F "newfile6.png/1.1/-kb" &&
diff A/newfile1.txt ../A/newfile1.txt && diff A/newfile1.txt ../A/newfile1.txt &&
diff E/newfile5.txt ../E/newfile5.txt && diff E/newfile5.txt ../E/newfile5.txt &&
diff F/newfile6.png ../F/newfile6.png diff F/newfile6.png ../F/newfile6.png
@ -133,12 +145,12 @@ test_expect_success \
id=$(git rev-list --max-count=1 HEAD) && id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" && (cd "$CVSWORK" &&
git cvsexportcommit -c $id && git cvsexportcommit -c $id &&
test "$(echo $(sort A/CVS/Entries|cut -d/ -f2,3,5))" = "" && check_entries A "" &&
test "$(echo $(sort B/CVS/Entries|cut -d/ -f2,3,5))" = "" && check_entries B "" &&
test "$(echo $(sort C/CVS/Entries|cut -d/ -f2,3,5))" = "" && check_entries C "" &&
test "$(echo $(sort D/CVS/Entries|cut -d/ -f2,3,5))" = "" && check_entries D "" &&
test "$(echo $(sort E/CVS/Entries|cut -d/ -f2,3,5))" = "newfile5.txt/1.1/" && check_entries E "newfile5.txt/1.1/" &&
test "$(echo $(sort F/CVS/Entries|cut -d/ -f2,3,5))" = "newfile6.png/1.1/-kb" && check_entries F "newfile6.png/1.1/-kb" &&
diff E/newfile5.txt ../E/newfile5.txt && diff E/newfile5.txt ../E/newfile5.txt &&
diff F/newfile6.png ../F/newfile6.png diff F/newfile6.png ../F/newfile6.png
)' )'
@ -154,7 +166,7 @@ test_expect_success \
id=$(git rev-list --max-count=1 HEAD) && id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" && (cd "$CVSWORK" &&
git-cvsexportcommit -c $id && git-cvsexportcommit -c $id &&
test "$(echo $(sort "G g/CVS/Entries"|cut -d/ -f2,3,5))" = "with spaces.png/1.1/-kb with spaces.txt/1.1/" check_entries "G g" "with spaces.png/1.1/-kb|with spaces.txt/1.1/"
)' )'


test_expect_success \ test_expect_success \
@ -166,7 +178,7 @@ test_expect_success \
id=$(git rev-list --max-count=1 HEAD) && id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" && (cd "$CVSWORK" &&
git-cvsexportcommit -c $id git-cvsexportcommit -c $id
test "$(echo $(sort "G g/CVS/Entries"|cut -d/ -f2,3,5))" = "with spaces.png/1.2/-kb with spaces.txt/1.2/" check_entries "G g" "with spaces.png/1.2/-kb|with spaces.txt/1.2/"
)' )'


# Some filesystems mangle pathnames with UTF-8 characters -- # Some filesystems mangle pathnames with UTF-8 characters --
@ -191,7 +203,9 @@ test_expect_success \
id=$(git rev-list --max-count=1 HEAD) && id=$(git rev-list --max-count=1 HEAD) &&
(cd "$CVSWORK" && (cd "$CVSWORK" &&
git-cvsexportcommit -v -c $id && git-cvsexportcommit -v -c $id &&
test "$(echo $(sort Å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö/CVS/Entries|cut -d/ -f2,3,5))" = "gårdetsågårdet.png/1.1/-kb gårdetsågårdet.txt/1.1/" check_entries \
"Å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö" \
"gårdetsågårdet.png/1.1/-kb|gårdetsågårdet.txt/1.1/"
)' )'


fi fi

Loading…
Cancel
Save