]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t3701-add-interactive.sh
The seventh batch
[thirdparty/git.git] / t / t3701-add-interactive.sh
index 0b5339ac6ca8248582ce723e3d552a8d4513e294..28a95a775d3d9a5c2274cc666c5b4c5f04c26893 100755 (executable)
@@ -4,9 +4,12 @@ test_description='add -i basic tests'
 GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
 export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
 
+TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 . "$TEST_DIRECTORY"/lib-terminal.sh
 
+SP=" "
+
 diff_cmp () {
        for x
        do
@@ -44,17 +47,30 @@ test_expect_success 'warn about add.interactive.useBuiltin' '
        cat >expect <<-\EOF &&
        warning: the add.interactive.useBuiltin setting has been removed!
        See its entry in '\''git help config'\'' for details.
-       No changes.
        EOF
+       echo "No changes." >expect.out &&
 
        for v in = =true =false
        do
                git -c "add.interactive.useBuiltin$v" add -p >out 2>actual &&
-               test_must_be_empty out &&
+               test_cmp expect.out out &&
                test_cmp expect actual || return 1
        done
 '
 
+test_expect_success 'unknown command' '
+       test_when_finished "git reset --hard; rm -f command" &&
+       echo W >command &&
+       git add -N command &&
+       git diff command >expect &&
+       cat >>expect <<-EOF &&
+       (1/1) Stage addition [y,n,q,a,d,e,p,?]? Unknown command ${SQ}W${SQ} (use ${SQ}?${SQ} for help)
+       (1/1) Stage addition [y,n,q,a,d,e,p,?]?$SP
+       EOF
+       git add -p -- command <command >actual 2>&1 &&
+       test_cmp expect actual
+'
+
 test_expect_success 'setup (initial)' '
        echo content >file &&
        git add file &&
@@ -231,7 +247,6 @@ test_expect_success 'setup file' '
 '
 
 test_expect_success 'setup patch' '
-       SP=" " &&
        NULL="" &&
        cat >patch <<-EOF
        @@ -1,4 +1,4 @@
@@ -325,22 +340,22 @@ test_expect_success 'different prompts for mode change/deleted' '
        git -c core.filemode=true add -p >actual &&
        sed -n "s/^\(([0-9/]*) Stage .*?\).*/\1/p" actual >actual.filtered &&
        cat >expect <<-\EOF &&
-       (1/1) Stage deletion [y,n,q,a,d,?]?
-       (1/2) Stage mode change [y,n,q,a,d,j,J,g,/,?]?
-       (2/2) Stage this hunk [y,n,q,a,d,K,g,/,e,?]?
+       (1/1) Stage deletion [y,n,q,a,d,p,?]?
+       (1/2) Stage mode change [y,n,q,a,d,j,J,g,/,p,?]?
+       (2/2) Stage this hunk [y,n,q,a,d,K,g,/,e,p,?]?
        EOF
        test_cmp expect actual.filtered
 '
 
 test_expect_success 'correct message when there is nothing to do' '
        git reset --hard &&
-       git add -p 2>err &&
-       test_grep "No changes" err &&
+       git add -p >out &&
+       test_grep "No changes" out &&
        printf "\\0123" >binary &&
        git add binary &&
        printf "\\0abc" >binary &&
-       git add -p 2>err &&
-       test_grep "Only binary files changed" err
+       git add -p >out &&
+       test_grep "Only binary files changed" out
 '
 
 test_expect_success 'setup again' '
@@ -514,13 +529,13 @@ test_expect_success 'split hunk setup' '
 test_expect_success 'goto hunk' '
        test_when_finished "git reset" &&
        tr _ " " >expect <<-EOF &&
-       (2/2) Stage this hunk [y,n,q,a,d,K,g,/,e,?]? + 1:  -1,2 +1,3          +15
+       (2/2) Stage this hunk [y,n,q,a,d,K,g,/,e,p,?]? + 1:  -1,2 +1,3          +15
        _ 2:  -2,4 +3,8          +21
        go to which hunk? @@ -1,2 +1,3 @@
        _10
        +15
        _20
-       (1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]?_
+       (1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,p,?]?_
        EOF
        test_write_lines s y g 1 | git add -p >actual &&
        tail -n 7 <actual >actual.trimmed &&
@@ -530,11 +545,11 @@ test_expect_success 'goto hunk' '
 test_expect_success 'navigate to hunk via regex' '
        test_when_finished "git reset" &&
        tr _ " " >expect <<-EOF &&
-       (2/2) Stage this hunk [y,n,q,a,d,K,g,/,e,?]? @@ -1,2 +1,3 @@
+       (2/2) Stage this hunk [y,n,q,a,d,K,g,/,e,p,?]? @@ -1,2 +1,3 @@
        _10
        +15
        _20
-       (1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]?_
+       (1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,p,?]?_
        EOF
        test_write_lines s y /1,2 | git add -p >actual &&
        tail -n 5 <actual >actual.trimmed &&
@@ -715,21 +730,21 @@ test_expect_success 'colors can be overridden' '
        <BLUE>+<RESET><BLUE>new<RESET>
        <CYAN> more-context<RESET>
        <BLUE>+<RESET><BLUE>another-one<RESET>
-       <YELLOW>(1/1) Stage this hunk [y,n,q,a,d,s,e,?]? <RESET><BOLD>Split into 2 hunks.<RESET>
+       <YELLOW>(1/1) Stage this hunk [y,n,q,a,d,s,e,p,?]? <RESET><BOLD>Split into 2 hunks.<RESET>
        <MAGENTA>@@ -1,3 +1,3 @@<RESET>
        <CYAN> context<RESET>
        <BOLD>-old<RESET>
        <BLUE>+<RESET><BLUE>new<RESET>
        <CYAN> more-context<RESET>
-       <YELLOW>(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? <RESET><MAGENTA>@@ -3 +3,2 @@<RESET>
+       <YELLOW>(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,p,?]? <RESET><MAGENTA>@@ -3 +3,2 @@<RESET>
        <CYAN> more-context<RESET>
        <BLUE>+<RESET><BLUE>another-one<RESET>
-       <YELLOW>(2/2) Stage this hunk [y,n,q,a,d,K,g,/,e,?]? <RESET><MAGENTA>@@ -1,3 +1,3 @@<RESET>
+       <YELLOW>(2/2) Stage this hunk [y,n,q,a,d,K,g,/,e,p,?]? <RESET><MAGENTA>@@ -1,3 +1,3 @@<RESET>
        <CYAN> context<RESET>
        <BOLD>-old<RESET>
        <BLUE>+new<RESET>
        <CYAN> more-context<RESET>
-       <YELLOW>(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? <RESET>
+       <YELLOW>(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,p,?]? <RESET>
        EOF
        test_cmp expect actual
 '