Skip to content

Commit

Permalink
Merge branch 'kk/tests-with-no-perl'
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Junio C Hamano committed Sep 17, 2013
2 parents 5aebc9a + 95728f7 commit 22a6f31
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 44 deletions.
76 changes: 41 additions & 35 deletions t/t3701-add-interactive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 &&
Expand All @@ -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
Expand All @@ -63,37 +69,37 @@ 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 &&
grep "unchanged *+3/-0 file" output
'


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
Expand All @@ -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 &&
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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 &&
Expand All @@ -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 &&
Expand All @@ -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 &&
Expand All @@ -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 &&
Expand All @@ -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
Expand All @@ -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
Expand All @@ -244,15 +250,15 @@ 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 &&
git diff --cached > diff &&
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
Expand All @@ -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 &&
Expand All @@ -275,15 +281,15 @@ 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
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 &&
Expand All @@ -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
Expand All @@ -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
Expand Down
33 changes: 25 additions & 8 deletions t/t7106-reset-unborn-branch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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' '
Expand All @@ -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
'

Expand Down
2 changes: 1 addition & 1 deletion t/t7501-commit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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' '
Expand Down

0 comments on commit 22a6f31

Please sign in to comment.