status: add new tests for status during rebase -i

Expand test coverage with one or more than two commands done and with zero, one or more than two commands remaining. Signed-off-by: Guillaume Pagès <guillaume.pages@ensimag.grenoble-inp.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Guillaume Pagès committed Jul 6, 2015 at 22:56 UTC 592e412d0f02313fcab7c7264b4237c298539971
1 file changed +87
t/t7512-status-help.sh
+87
@@ -856,4 +856,91 @@ EOF
856 test_i18ncmp expected actual
857 '
858
859 +test_expect_success 'prepare for different number of commits rebased' '
860 + git reset --hard master &&
861 + git checkout -b several_commits &&
862 + test_commit one_commit main.txt one &&
863 + test_commit two_commit main.txt two &&
864 + test_commit three_commit main.txt three &&
865 + test_commit four_commit main.txt four
866 +'
867 +
868 +test_expect_success 'status: one command done nothing remaining' '
869 + FAKE_LINES="exec_exit_15" &&
870 + export FAKE_LINES &&
871 + test_when_finished "git rebase --abort" &&
872 + ONTO=$(git rev-parse --short HEAD~3) &&
873 + test_must_fail git rebase -i HEAD~3 &&
874 + cat >expected <<EOF &&
875 +interactive rebase in progress; onto $ONTO
876 +Last command done (1 command done):
877 + exec exit 15
878 +No commands remaining.
879 +You are currently editing a commit while rebasing branch '\''several_commits'\'' on '\''$ONTO'\''.
880 + (use "git commit --amend" to amend the current commit)
881 + (use "git rebase --continue" once you are satisfied with your changes)
882 +
883 +nothing to commit (use -u to show untracked files)
884 +EOF
885 + git status --untracked-files=no >actual &&
886 + test_i18ncmp expected actual
887 +'
888 +
889 +test_expect_success 'status: two commands done with some white lines in done file' '
890 + FAKE_LINES="1 > exec_exit_15 2 3" &&
891 + export FAKE_LINES &&
892 + test_when_finished "git rebase --abort" &&
893 + ONTO=$(git rev-parse --short HEAD~3) &&
894 + COMMIT4=$(git rev-parse --short HEAD) &&
895 + COMMIT3=$(git rev-parse --short HEAD^) &&
896 + COMMIT2=$(git rev-parse --short HEAD^^) &&
897 + test_must_fail git rebase -i HEAD~3 &&
898 + cat >expected <<EOF &&
899 +interactive rebase in progress; onto $ONTO
900 +Last commands done (2 commands done):
901 + pick $COMMIT2 two_commit
902 + exec exit 15
903 +Next commands to do (2 remaining commands):
904 + pick $COMMIT3 three_commit
905 + pick $COMMIT4 four_commit
906 + (use "git rebase --edit-todo" to view and edit)
907 +You are currently editing a commit while rebasing branch '\''several_commits'\'' on '\''$ONTO'\''.
908 + (use "git commit --amend" to amend the current commit)
909 + (use "git rebase --continue" once you are satisfied with your changes)
910 +
911 +nothing to commit (use -u to show untracked files)
912 +EOF
913 + git status --untracked-files=no >actual &&
914 + test_i18ncmp expected actual
915 +'
916 +
917 +test_expect_success 'status: two remaining commands with some white lines in todo file' '
918 + FAKE_LINES="1 2 exec_exit_15 3 > 4" &&
919 + export FAKE_LINES &&
920 + test_when_finished "git rebase --abort" &&
921 + ONTO=$(git rev-parse --short HEAD~4) &&
922 + COMMIT4=$(git rev-parse --short HEAD) &&
923 + COMMIT3=$(git rev-parse --short HEAD^) &&
924 + COMMIT2=$(git rev-parse --short HEAD^^) &&
925 + test_must_fail git rebase -i HEAD~4 &&
926 + cat >expected <<EOF &&
927 +interactive rebase in progress; onto $ONTO
928 +Last commands done (3 commands done):
929 + pick $COMMIT2 two_commit
930 + exec exit 15
931 + (see more in file .git/rebase-merge/done)
932 +Next commands to do (2 remaining commands):
933 + pick $COMMIT3 three_commit
934 + pick $COMMIT4 four_commit
935 + (use "git rebase --edit-todo" to view and edit)
936 +You are currently editing a commit while rebasing branch '\''several_commits'\'' on '\''$ONTO'\''.
937 + (use "git commit --amend" to amend the current commit)
938 + (use "git rebase --continue" once you are satisfied with your changes)
939 +
940 +nothing to commit (use -u to show untracked files)
941 +EOF
942 + git status --untracked-files=no >actual &&
943 + test_i18ncmp expected actual
944 +'
945 +
946 test_done