Merge branch 'kk/tests-with-no-perl'

Some tests were not skipped under NO_PERL build.

* kk/tests-with-no-perl:
  reset test: modernize style
  t/t7106-reset-unborn-branch.sh: Add PERL prerequisite
  add -i test: use skip_all instead of repeated PERL prerequisite
  Make test "using invalid commit with -C" more strict
This commit is contained in:
Junio C Hamano 2013-09-17 11:39:35 -07:00
commit 22a6f31333
3 changed files with 67 additions and 44 deletions

View File

@ -4,18 +4,24 @@ test_description='add -i basic tests'
. ./test-lib.sh
. "$TEST_DIRECTORY"/lib-prereq-FILEMODE.sh
test_expect_success PERL 'setup (initial)' '
if ! test_have_prereq PERL
then
skip_all='skipping add -i tests, perl not available'
test_done
fi
test_expect_success 'setup (initial)' '
echo content >file &&
git add file &&
echo more >>file &&
echo lines >>file
'
test_expect_success PERL 'status works (initial)' '
test_expect_success 'status works (initial)' '
git add -i </dev/null >output &&
grep "+1/-0 *+2/-0 file" output
'
test_expect_success PERL 'setup expected' '
test_expect_success 'setup expected' '
cat >expected <<EOF
new file mode 100644
index 0000000..d95f3ad
@ -26,19 +32,19 @@ index 0000000..d95f3ad
EOF
'
test_expect_success PERL 'diff works (initial)' '
test_expect_success 'diff works (initial)' '
(echo d; echo 1) | git add -i >output &&
sed -ne "/new file/,/content/p" <output >diff &&
test_cmp expected diff
'
test_expect_success PERL 'revert works (initial)' '
test_expect_success 'revert works (initial)' '
git add file &&
(echo r; echo 1) | git add -i &&
git ls-files >output &&
! grep . output
'
test_expect_success PERL 'setup (commit)' '
test_expect_success 'setup (commit)' '
echo baseline >file &&
git add file &&
git commit -m commit &&
@ -47,12 +53,12 @@ test_expect_success PERL 'setup (commit)' '
echo more >>file &&
echo lines >>file
'
test_expect_success PERL 'status works (commit)' '
test_expect_success 'status works (commit)' '
git add -i </dev/null >output &&
grep "+1/-0 *+2/-0 file" output
'
test_expect_success PERL 'setup expected' '
test_expect_success 'setup expected' '
cat >expected <<EOF
index 180b47c..b6f2c08 100644
--- a/file
@ -63,12 +69,12 @@ index 180b47c..b6f2c08 100644
EOF
'
test_expect_success PERL 'diff works (commit)' '
test_expect_success 'diff works (commit)' '
(echo d; echo 1) | git add -i >output &&
sed -ne "/^index/,/content/p" <output >diff &&
test_cmp expected diff
'
test_expect_success PERL 'revert works (commit)' '
test_expect_success 'revert works (commit)' '
git add file &&
(echo r; echo 1) | git add -i &&
git add -i </dev/null >output &&
@ -76,24 +82,24 @@ test_expect_success PERL 'revert works (commit)' '
'
test_expect_success PERL 'setup expected' '
test_expect_success 'setup expected' '
cat >expected <<EOF
EOF
'
test_expect_success PERL 'setup fake editor' '
test_expect_success 'setup fake editor' '
>fake_editor.sh &&
chmod a+x fake_editor.sh &&
test_set_editor "$(pwd)/fake_editor.sh"
'
test_expect_success PERL 'dummy edit works' '
test_expect_success 'dummy edit works' '
(echo e; echo a) | git add -p &&
git diff > diff &&
test_cmp expected diff
'
test_expect_success PERL 'setup patch' '
test_expect_success 'setup patch' '
cat >patch <<EOF
@@ -1,1 +1,4 @@
this
@ -103,7 +109,7 @@ cat >patch <<EOF
EOF
'
test_expect_success PERL 'setup fake editor' '
test_expect_success 'setup fake editor' '
echo "#!$SHELL_PATH" >fake_editor.sh &&
cat >>fake_editor.sh <<\EOF &&
mv -f "$1" oldpatch &&
@ -113,26 +119,26 @@ EOF
test_set_editor "$(pwd)/fake_editor.sh"
'
test_expect_success PERL 'bad edit rejected' '
test_expect_success 'bad edit rejected' '
git reset &&
(echo e; echo n; echo d) | git add -p >output &&
grep "hunk does not apply" output
'
test_expect_success PERL 'setup patch' '
test_expect_success 'setup patch' '
cat >patch <<EOF
this patch
is garbage
EOF
'
test_expect_success PERL 'garbage edit rejected' '
test_expect_success 'garbage edit rejected' '
git reset &&
(echo e; echo n; echo d) | git add -p >output &&
grep "hunk does not apply" output
'
test_expect_success PERL 'setup patch' '
test_expect_success 'setup patch' '
cat >patch <<EOF
@@ -1,0 +1,0 @@
baseline
@ -142,7 +148,7 @@ cat >patch <<EOF
EOF
'
test_expect_success PERL 'setup expected' '
test_expect_success 'setup expected' '
cat >expected <<EOF
diff --git a/file b/file
index b5dd6c9..f910ae9 100644
@ -157,13 +163,13 @@ index b5dd6c9..f910ae9 100644
EOF
'
test_expect_success PERL 'real edit works' '
test_expect_success 'real edit works' '
(echo e; echo n; echo d) | git add -p &&
git diff >output &&
test_cmp expected output
'
test_expect_success PERL 'skip files similarly as commit -a' '
test_expect_success 'skip files similarly as commit -a' '
git reset &&
echo file >.gitignore &&
echo changed >file &&
@ -177,7 +183,7 @@ test_expect_success PERL 'skip files similarly as commit -a' '
'
rm -f .gitignore
test_expect_success PERL,FILEMODE 'patch does not affect mode' '
test_expect_success FILEMODE 'patch does not affect mode' '
git reset --hard &&
echo content >>file &&
chmod +x file &&
@ -186,7 +192,7 @@ test_expect_success PERL,FILEMODE 'patch does not affect mode' '
git diff file | grep "new mode"
'
test_expect_success PERL,FILEMODE 'stage mode but not hunk' '
test_expect_success FILEMODE 'stage mode but not hunk' '
git reset --hard &&
echo content >>file &&
chmod +x file &&
@ -196,7 +202,7 @@ test_expect_success PERL,FILEMODE 'stage mode but not hunk' '
'
test_expect_success PERL,FILEMODE 'stage mode and hunk' '
test_expect_success FILEMODE 'stage mode and hunk' '
git reset --hard &&
echo content >>file &&
chmod +x file &&
@ -208,14 +214,14 @@ test_expect_success PERL,FILEMODE 'stage mode and hunk' '
# end of tests disabled when filemode is not usable
test_expect_success PERL 'setup again' '
test_expect_success 'setup again' '
git reset --hard &&
test_chmod +x file &&
echo content >>file
'
# Write the patch file with a new line at the top and bottom
test_expect_success PERL 'setup patch' '
test_expect_success 'setup patch' '
cat >patch <<EOF
index 180b47c..b6f2c08 100644
--- a/file
@ -229,7 +235,7 @@ EOF
'
# Expected output, similar to the patch but w/ diff at the top
test_expect_success PERL 'setup expected' '
test_expect_success 'setup expected' '
cat >expected <<EOF
diff --git a/file b/file
index b6f2c08..61b9053 100755
@ -244,7 +250,7 @@ EOF
'
# Test splitting the first patch, then adding both
test_expect_success PERL 'add first line works' '
test_expect_success 'add first line works' '
git commit -am "clear local changes" &&
git apply patch &&
(echo s; echo y; echo y) | git add -p file &&
@ -252,7 +258,7 @@ test_expect_success PERL 'add first line works' '
test_cmp expected diff
'
test_expect_success PERL 'setup expected' '
test_expect_success 'setup expected' '
cat >expected <<EOF
diff --git a/non-empty b/non-empty
deleted file mode 100644
@ -264,7 +270,7 @@ index d95f3ad..0000000
EOF
'
test_expect_success PERL 'deleting a non-empty file' '
test_expect_success 'deleting a non-empty file' '
git reset --hard &&
echo content >non-empty &&
git add non-empty &&
@ -275,7 +281,7 @@ test_expect_success PERL 'deleting a non-empty file' '
test_cmp expected diff
'
test_expect_success PERL 'setup expected' '
test_expect_success 'setup expected' '
cat >expected <<EOF
diff --git a/empty b/empty
deleted file mode 100644
@ -283,7 +289,7 @@ index e69de29..0000000
EOF
'
test_expect_success PERL 'deleting an empty file' '
test_expect_success 'deleting an empty file' '
git reset --hard &&
> empty &&
git add empty &&
@ -294,7 +300,7 @@ test_expect_success PERL 'deleting an empty file' '
test_cmp expected diff
'
test_expect_success PERL 'split hunk setup' '
test_expect_success 'split hunk setup' '
git reset --hard &&
for i in 10 20 30 40 50 60
do
@ -310,7 +316,7 @@ test_expect_success PERL 'split hunk setup' '
done >test
'
test_expect_success PERL 'split hunk "add -p (edit)"' '
test_expect_success 'split hunk "add -p (edit)"' '
# Split, say Edit and do nothing. Then:
#
# 1. Broken version results in a patch that does not apply and

View File

@ -11,7 +11,10 @@ test_expect_success 'setup' '
test_expect_success 'reset' '
git add a b &&
git reset &&
test "$(git ls-files)" = ""
>expect &&
git ls-files >actual &&
test_cmp expect actual
'
test_expect_success 'reset HEAD' '
@ -24,28 +27,42 @@ test_expect_success 'reset $file' '
rm .git/index &&
git add a b &&
git reset a &&
test "$(git ls-files)" = "b"
echo b >expect &&
git ls-files >actual &&
test_cmp expect actual
'
test_expect_success 'reset -p' '
test_expect_success PERL 'reset -p' '
rm .git/index &&
git add a &&
echo y | git reset -p &&
test "$(git ls-files)" = ""
echo y >yes &&
git reset -p <yes &&
>expect &&
git ls-files >actual &&
test_cmp expect actual
'
test_expect_success 'reset --soft is a no-op' '
rm .git/index &&
git add a &&
git reset --soft
test "$(git ls-files)" = "a"
git reset --soft &&
echo a >expect &&
git ls-files >actual &&
test_cmp expect actual
'
test_expect_success 'reset --hard' '
rm .git/index &&
git add a &&
test_when_finished "echo a >a" &&
git reset --hard &&
test "$(git ls-files)" = "" &&
>expect &&
git ls-files >actual &&
test_cmp expect actual &&
test_path_is_missing a
'

View File

@ -53,7 +53,7 @@ test_expect_success PERL 'can use paths with --interactive' '
'
test_expect_success 'using invalid commit with -C' '
test_must_fail git commit -C bogus
test_must_fail git commit --allow-empty -C bogus
'
test_expect_success 'nothing to commit' '