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:
commit
22a6f31333
@ -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
|
||||
|
@ -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
|
||||
'
|
||||
|
||||
|
@ -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' '
|
||||
|
Loading…
Reference in New Issue
Block a user