t/t3701-add-interactive.sh: change from skip_all=* to prereq skip
Change this test to skip test with test prerequisites, and to do setup work in tests. This improves the skipped statistics on platforms where the test isn't run. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
535d974285
commit
f04593199b
@ -4,21 +4,18 @@ test_description='add -i basic tests'
|
|||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
. "$TEST_DIRECTORY"/lib-prereq-FILEMODE.sh
|
. "$TEST_DIRECTORY"/lib-prereq-FILEMODE.sh
|
||||||
|
|
||||||
if ! test_have_prereq PERL; then
|
test_expect_success PERL 'setup (initial)' '
|
||||||
skip_all='skipping git add -i tests, perl not available'
|
|
||||||
test_done
|
|
||||||
fi
|
|
||||||
|
|
||||||
test_expect_success 'setup (initial)' '
|
|
||||||
echo content >file &&
|
echo content >file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
echo more >>file &&
|
echo more >>file &&
|
||||||
echo lines >>file
|
echo lines >>file
|
||||||
'
|
'
|
||||||
test_expect_success 'status works (initial)' '
|
test_expect_success PERL 'status works (initial)' '
|
||||||
git add -i </dev/null >output &&
|
git add -i </dev/null >output &&
|
||||||
grep "+1/-0 *+2/-0 file" output
|
grep "+1/-0 *+2/-0 file" output
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'setup expected' '
|
||||||
cat >expected <<EOF
|
cat >expected <<EOF
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..d95f3ad
|
index 0000000..d95f3ad
|
||||||
@ -27,19 +24,21 @@ index 0000000..d95f3ad
|
|||||||
@@ -0,0 +1 @@
|
@@ -0,0 +1 @@
|
||||||
+content
|
+content
|
||||||
EOF
|
EOF
|
||||||
test_expect_success 'diff works (initial)' '
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'diff works (initial)' '
|
||||||
(echo d; echo 1) | git add -i >output &&
|
(echo d; echo 1) | git add -i >output &&
|
||||||
sed -ne "/new file/,/content/p" <output >diff &&
|
sed -ne "/new file/,/content/p" <output >diff &&
|
||||||
test_cmp expected diff
|
test_cmp expected diff
|
||||||
'
|
'
|
||||||
test_expect_success 'revert works (initial)' '
|
test_expect_success PERL 'revert works (initial)' '
|
||||||
git add file &&
|
git add file &&
|
||||||
(echo r; echo 1) | git add -i &&
|
(echo r; echo 1) | git add -i &&
|
||||||
git ls-files >output &&
|
git ls-files >output &&
|
||||||
! grep . output
|
! grep . output
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'setup (commit)' '
|
test_expect_success PERL 'setup (commit)' '
|
||||||
echo baseline >file &&
|
echo baseline >file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
git commit -m commit &&
|
git commit -m commit &&
|
||||||
@ -48,10 +47,12 @@ test_expect_success 'setup (commit)' '
|
|||||||
echo more >>file &&
|
echo more >>file &&
|
||||||
echo lines >>file
|
echo lines >>file
|
||||||
'
|
'
|
||||||
test_expect_success 'status works (commit)' '
|
test_expect_success PERL 'status works (commit)' '
|
||||||
git add -i </dev/null >output &&
|
git add -i </dev/null >output &&
|
||||||
grep "+1/-0 *+2/-0 file" output
|
grep "+1/-0 *+2/-0 file" output
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'setup expected' '
|
||||||
cat >expected <<EOF
|
cat >expected <<EOF
|
||||||
index 180b47c..b6f2c08 100644
|
index 180b47c..b6f2c08 100644
|
||||||
--- a/file
|
--- a/file
|
||||||
@ -60,60 +61,79 @@ index 180b47c..b6f2c08 100644
|
|||||||
baseline
|
baseline
|
||||||
+content
|
+content
|
||||||
EOF
|
EOF
|
||||||
test_expect_success 'diff works (commit)' '
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'diff works (commit)' '
|
||||||
(echo d; echo 1) | git add -i >output &&
|
(echo d; echo 1) | git add -i >output &&
|
||||||
sed -ne "/^index/,/content/p" <output >diff &&
|
sed -ne "/^index/,/content/p" <output >diff &&
|
||||||
test_cmp expected diff
|
test_cmp expected diff
|
||||||
'
|
'
|
||||||
test_expect_success 'revert works (commit)' '
|
test_expect_success PERL 'revert works (commit)' '
|
||||||
git add file &&
|
git add file &&
|
||||||
(echo r; echo 1) | git add -i &&
|
(echo r; echo 1) | git add -i &&
|
||||||
git add -i </dev/null >output &&
|
git add -i </dev/null >output &&
|
||||||
grep "unchanged *+3/-0 file" output
|
grep "unchanged *+3/-0 file" output
|
||||||
'
|
'
|
||||||
|
|
||||||
|
|
||||||
|
test_expect_success PERL 'setup expected' '
|
||||||
cat >expected <<EOF
|
cat >expected <<EOF
|
||||||
EOF
|
EOF
|
||||||
cat >fake_editor.sh <<EOF
|
'
|
||||||
EOF
|
|
||||||
chmod a+x fake_editor.sh
|
test_expect_success PERL 'setup fake editor' '
|
||||||
test_set_editor "$(pwd)/fake_editor.sh"
|
cat >fake_editor.sh <<EOF
|
||||||
test_expect_success 'dummy edit works' '
|
EOF
|
||||||
|
chmod a+x fake_editor.sh &&
|
||||||
|
test_set_editor "$(pwd)/fake_editor.sh" &&
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'dummy edit works' '
|
||||||
(echo e; echo a) | git add -p &&
|
(echo e; echo a) | git add -p &&
|
||||||
git diff > diff &&
|
git diff > diff &&
|
||||||
test_cmp expected diff
|
test_cmp expected diff
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'setup patch' '
|
||||||
cat >patch <<EOF
|
cat >patch <<EOF
|
||||||
@@ -1,1 +1,4 @@
|
@@ -1,1 +1,4 @@
|
||||||
this
|
this
|
||||||
+patch
|
+patch
|
||||||
-doesn't
|
-does not
|
||||||
apply
|
apply
|
||||||
EOF
|
EOF
|
||||||
echo "#!$SHELL_PATH" >fake_editor.sh
|
'
|
||||||
cat >>fake_editor.sh <<\EOF
|
|
||||||
|
test_expect_success PERL 'setup fake editor' '
|
||||||
|
echo "#!$SHELL_PATH" >fake_editor.sh &&
|
||||||
|
cat >>fake_editor.sh <<\EOF &&
|
||||||
mv -f "$1" oldpatch &&
|
mv -f "$1" oldpatch &&
|
||||||
mv -f patch "$1"
|
mv -f patch "$1"
|
||||||
EOF
|
EOF
|
||||||
chmod a+x fake_editor.sh
|
chmod a+x fake_editor.sh &&
|
||||||
test_set_editor "$(pwd)/fake_editor.sh"
|
test_set_editor "$(pwd)/fake_editor.sh"
|
||||||
test_expect_success 'bad edit rejected' '
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'bad edit rejected' '
|
||||||
git reset &&
|
git reset &&
|
||||||
(echo e; echo n; echo d) | git add -p >output &&
|
(echo e; echo n; echo d) | git add -p >output &&
|
||||||
grep "hunk does not apply" output
|
grep "hunk does not apply" output
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'setup patch' '
|
||||||
cat >patch <<EOF
|
cat >patch <<EOF
|
||||||
this patch
|
this patch
|
||||||
is garbage
|
is garbage
|
||||||
EOF
|
EOF
|
||||||
test_expect_success 'garbage edit rejected' '
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'garbage edit rejected' '
|
||||||
git reset &&
|
git reset &&
|
||||||
(echo e; echo n; echo d) | git add -p >output &&
|
(echo e; echo n; echo d) | git add -p >output &&
|
||||||
grep "hunk does not apply" output
|
grep "hunk does not apply" output
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'setup patch' '
|
||||||
cat >patch <<EOF
|
cat >patch <<EOF
|
||||||
@@ -1,0 +1,0 @@
|
@@ -1,0 +1,0 @@
|
||||||
baseline
|
baseline
|
||||||
@ -121,6 +141,9 @@ cat >patch <<EOF
|
|||||||
+newcontent
|
+newcontent
|
||||||
+lines
|
+lines
|
||||||
EOF
|
EOF
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'setup expected' '
|
||||||
cat >expected <<EOF
|
cat >expected <<EOF
|
||||||
diff --git a/file b/file
|
diff --git a/file b/file
|
||||||
index b5dd6c9..f910ae9 100644
|
index b5dd6c9..f910ae9 100644
|
||||||
@ -133,13 +156,15 @@ index b5dd6c9..f910ae9 100644
|
|||||||
+more
|
+more
|
||||||
lines
|
lines
|
||||||
EOF
|
EOF
|
||||||
test_expect_success 'real edit works' '
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'real edit works' '
|
||||||
(echo e; echo n; echo d) | git add -p &&
|
(echo e; echo n; echo d) | git add -p &&
|
||||||
git diff >output &&
|
git diff >output &&
|
||||||
test_cmp expected output
|
test_cmp expected output
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'skip files similarly as commit -a' '
|
test_expect_success PERL 'skip files similarly as commit -a' '
|
||||||
git reset &&
|
git reset &&
|
||||||
echo file >.gitignore &&
|
echo file >.gitignore &&
|
||||||
echo changed >file &&
|
echo changed >file &&
|
||||||
@ -153,7 +178,7 @@ test_expect_success 'skip files similarly as commit -a' '
|
|||||||
'
|
'
|
||||||
rm -f .gitignore
|
rm -f .gitignore
|
||||||
|
|
||||||
test_expect_success FILEMODE 'patch does not affect mode' '
|
test_expect_success PERL,FILEMODE 'patch does not affect mode' '
|
||||||
git reset --hard &&
|
git reset --hard &&
|
||||||
echo content >>file &&
|
echo content >>file &&
|
||||||
chmod +x file &&
|
chmod +x file &&
|
||||||
@ -162,7 +187,7 @@ test_expect_success FILEMODE 'patch does not affect mode' '
|
|||||||
git diff file | grep "new mode"
|
git diff file | grep "new mode"
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success FILEMODE 'stage mode but not hunk' '
|
test_expect_success PERL,FILEMODE 'stage mode but not hunk' '
|
||||||
git reset --hard &&
|
git reset --hard &&
|
||||||
echo content >>file &&
|
echo content >>file &&
|
||||||
chmod +x file &&
|
chmod +x file &&
|
||||||
@ -172,7 +197,7 @@ test_expect_success FILEMODE 'stage mode but not hunk' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
|
|
||||||
test_expect_success FILEMODE 'stage mode and hunk' '
|
test_expect_success PERL,FILEMODE 'stage mode and hunk' '
|
||||||
git reset --hard &&
|
git reset --hard &&
|
||||||
echo content >>file &&
|
echo content >>file &&
|
||||||
chmod +x file &&
|
chmod +x file &&
|
||||||
@ -184,13 +209,14 @@ test_expect_success FILEMODE 'stage mode and hunk' '
|
|||||||
|
|
||||||
# end of tests disabled when filemode is not usable
|
# end of tests disabled when filemode is not usable
|
||||||
|
|
||||||
test_expect_success 'setup again' '
|
test_expect_success PERL 'setup again' '
|
||||||
git reset --hard &&
|
git reset --hard &&
|
||||||
test_chmod +x file &&
|
test_chmod +x file &&
|
||||||
echo content >>file
|
echo content >>file
|
||||||
'
|
'
|
||||||
|
|
||||||
# Write the patch file with a new line at the top and bottom
|
# Write the patch file with a new line at the top and bottom
|
||||||
|
test_expect_success PERL 'setup patch' '
|
||||||
cat >patch <<EOF
|
cat >patch <<EOF
|
||||||
index 180b47c..b6f2c08 100644
|
index 180b47c..b6f2c08 100644
|
||||||
--- a/file
|
--- a/file
|
||||||
@ -201,7 +227,10 @@ index 180b47c..b6f2c08 100644
|
|||||||
content
|
content
|
||||||
+lastline
|
+lastline
|
||||||
EOF
|
EOF
|
||||||
|
'
|
||||||
|
|
||||||
# Expected output, similar to the patch but w/ diff at the top
|
# Expected output, similar to the patch but w/ diff at the top
|
||||||
|
test_expect_success PERL 'setup expected' '
|
||||||
cat >expected <<EOF
|
cat >expected <<EOF
|
||||||
diff --git a/file b/file
|
diff --git a/file b/file
|
||||||
index b6f2c08..61b9053 100755
|
index b6f2c08..61b9053 100755
|
||||||
@ -213,8 +242,10 @@ index b6f2c08..61b9053 100755
|
|||||||
content
|
content
|
||||||
+lastline
|
+lastline
|
||||||
EOF
|
EOF
|
||||||
|
'
|
||||||
|
|
||||||
# Test splitting the first patch, then adding both
|
# Test splitting the first patch, then adding both
|
||||||
test_expect_success 'add first line works' '
|
test_expect_success PERL 'add first line works' '
|
||||||
git commit -am "clear local changes" &&
|
git commit -am "clear local changes" &&
|
||||||
git apply patch &&
|
git apply patch &&
|
||||||
(echo s; echo y; echo y) | git add -p file &&
|
(echo s; echo y; echo y) | git add -p file &&
|
||||||
@ -222,6 +253,7 @@ test_expect_success 'add first line works' '
|
|||||||
test_cmp expected diff
|
test_cmp expected diff
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'setup expected' '
|
||||||
cat >expected <<EOF
|
cat >expected <<EOF
|
||||||
diff --git a/non-empty b/non-empty
|
diff --git a/non-empty b/non-empty
|
||||||
deleted file mode 100644
|
deleted file mode 100644
|
||||||
@ -231,7 +263,9 @@ index d95f3ad..0000000
|
|||||||
@@ -1 +0,0 @@
|
@@ -1 +0,0 @@
|
||||||
-content
|
-content
|
||||||
EOF
|
EOF
|
||||||
test_expect_success 'deleting a non-empty file' '
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'deleting a non-empty file' '
|
||||||
git reset --hard &&
|
git reset --hard &&
|
||||||
echo content >non-empty &&
|
echo content >non-empty &&
|
||||||
git add non-empty &&
|
git add non-empty &&
|
||||||
@ -242,13 +276,15 @@ test_expect_success 'deleting a non-empty file' '
|
|||||||
test_cmp expected diff
|
test_cmp expected diff
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success PERL 'setup expected' '
|
||||||
cat >expected <<EOF
|
cat >expected <<EOF
|
||||||
diff --git a/empty b/empty
|
diff --git a/empty b/empty
|
||||||
deleted file mode 100644
|
deleted file mode 100644
|
||||||
index e69de29..0000000
|
index e69de29..0000000
|
||||||
EOF
|
EOF
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'deleting an empty file' '
|
test_expect_success PERL 'deleting an empty file' '
|
||||||
git reset --hard &&
|
git reset --hard &&
|
||||||
> empty &&
|
> empty &&
|
||||||
git add empty &&
|
git add empty &&
|
||||||
|
Loading…
x
Reference in New Issue
Block a user