Browse Source
We still have too few of them, but we have to start from somewhere. The general rule is to make tests easy to debug when run with -v (notice use of seemingly useless echo everywhere in the new tests). Signed-off-by: Junio C Hamano <junkio@cox.net>maint

2 changed files with 136 additions and 0 deletions
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
#!/bin/sh |
||||
# |
||||
# Copyright (c) 2006 Junio C Hamano |
||||
# |
||||
|
||||
test_description='git-read-tree --prefix test. |
||||
' |
||||
|
||||
. ./test-lib.sh |
||||
|
||||
test_expect_success setup ' |
||||
echo hello >one && |
||||
git-update-index --add one && |
||||
tree=`git-write-tree` && |
||||
echo tree is $tree |
||||
' |
||||
|
||||
echo 'one |
||||
two/one' >expect |
||||
|
||||
test_expect_success 'read-tree --prefix' ' |
||||
git-read-tree --prefix=two/ $tree && |
||||
git-ls-files >actual && |
||||
cmp expect actual |
||||
' |
||||
|
||||
test_done |
@ -0,0 +1,109 @@
@@ -0,0 +1,109 @@
|
||||
#!/bin/sh |
||||
# |
||||
# Copyright (c) 2006 Junio C Hamano |
||||
# |
||||
|
||||
test_description='Try various core-level commands in subdirectory. |
||||
' |
||||
|
||||
. ./test-lib.sh |
||||
|
||||
test_expect_success setup ' |
||||
long="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" && |
||||
for c in $long; do echo $c; done >one && |
||||
mkdir dir && |
||||
for c in x y z $long a b c; do echo $c; done >dir/two && |
||||
cp one original.one && |
||||
cp dir/two original.two |
||||
' |
||||
HERE=`pwd` |
||||
LF=' |
||||
' |
||||
|
||||
test_expect_success 'update-index and ls-files' ' |
||||
cd $HERE && |
||||
git-update-index --add one && |
||||
case "`git-ls-files`" in |
||||
one) echo ok one ;; |
||||
*) echo bad one; exit 1 ;; |
||||
esac && |
||||
cd dir && |
||||
git-update-index --add two && |
||||
case "`git-ls-files`" in |
||||
two) echo ok two ;; |
||||
*) echo bad two; exit 1 ;; |
||||
esac && |
||||
cd .. && |
||||
case "`git-ls-files`" in |
||||
dir/two"$LF"one) echo ok both ;; |
||||
*) echo bad; exit 1 ;; |
||||
esac |
||||
' |
||||
|
||||
test_expect_success 'cat-file' ' |
||||
cd $HERE && |
||||
two=`git-ls-files -s dir/two` && |
||||
two=`expr "$two" : "[0-7]* \\([0-9a-f]*\\)"` && |
||||
echo "$two" && |
||||
git-cat-file -p "$two" >actual && |
||||
cmp dir/two actual && |
||||
cd dir && |
||||
git-cat-file -p "$two" >actual && |
||||
cmp two actual |
||||
' |
||||
rm -f actual dir/actual |
||||
|
||||
test_expect_success 'diff-files' ' |
||||
cd $HERE && |
||||
echo a >>one && |
||||
echo d >>dir/two && |
||||
case "`git-diff-files --name-only`" in |
||||
dir/two"$LF"one) echo ok top ;; |
||||
*) echo bad top; exit 1 ;; |
||||
esac && |
||||
# diff should not omit leading paths |
||||
cd dir && |
||||
case "`git-diff-files --name-only`" in |
||||
dir/two"$LF"one) echo ok subdir ;; |
||||
*) echo bad subdir; exit 1 ;; |
||||
esac && |
||||
case "`git-diff-files --name-only .`" in |
||||
dir/two) echo ok subdir limited ;; |
||||
*) echo bad subdir limited; exit 1 ;; |
||||
esac |
||||
' |
||||
|
||||
test_expect_success 'write-tree' ' |
||||
cd $HERE && |
||||
top=`git-write-tree` && |
||||
echo $top && |
||||
cd dir && |
||||
sub=`git-write-tree` && |
||||
echo $sub && |
||||
test "z$top" = "z$sub" |
||||
' |
||||
|
||||
test_expect_success 'checkout-index' ' |
||||
cd $HERE && |
||||
git-checkout-index -f -u one && |
||||
cmp one original.one && |
||||
cd dir && |
||||
git-checkout-index -f -u two && |
||||
cmp two ../original.two |
||||
' |
||||
|
||||
test_expect_success 'read-tree' ' |
||||
cd $HERE && |
||||
rm -f one dir/two && |
||||
tree=`git-write-tree` && |
||||
git-read-tree --reset -u "$tree" && |
||||
cmp one original.one && |
||||
cmp dir/two original.two && |
||||
cd dir && |
||||
rm -f two && |
||||
git-read-tree --reset -u "$tree" && |
||||
cmp two ../original.two && |
||||
cmp ../one ../original.one |
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue