Skip to content

Commit

Permalink
t7502: test commit.status, --status and --no-status
Browse files Browse the repository at this point in the history
Make sure that the status information:

 - is shown as before without configuration nor command line option;

 - is shown if commit.status is set to true and no command line option
   is given, or --status is explicitly given;

 - is not shown if commit.status is set to false and no command line
   option is given, or --no-status is explicitly given.

Also make sure that the way lines taken from the custom --template appear
in the log message editor is not changed at all.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
gitster committed Jan 13, 2010
1 parent bed575e commit f9c0181
Showing 1 changed file with 109 additions and 0 deletions.
109 changes: 109 additions & 0 deletions t/t7502-commit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -267,4 +267,113 @@ test_expect_success 'A single-liner subject with a token plus colon is not a foo
'

cat >.git/FAKE_EDITOR <<EOF
#!$SHELL_PATH
mv "\$1" "\$1.orig"
(
echo message
cat "\$1.orig"
) >"\$1"
EOF

echo '## Custom template' >template

clear_config () {
(
git config --unset-all "$1"
case $? in
0|5) exit 0 ;;
*) exit 1 ;;
esac
)
}

try_commit () {
git reset --hard &&
echo >>negative &&
GIT_EDITOR=.git/FAKE_EDITOR git commit -a $* $use_template &&
case "$use_template" in
'')
! grep "^## Custom template" .git/COMMIT_EDITMSG ;;
*)
grep "^## Custom template" .git/COMMIT_EDITMSG ;;
esac
}

try_commit_status_combo () {

test_expect_success 'commit' '
clear_config commit.status &&
try_commit "" &&
grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
'

test_expect_success 'commit' '
clear_config commit.status &&
try_commit "" &&
grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
'

test_expect_success 'commit --status' '
clear_config commit.status &&
try_commit --status &&
grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
'

test_expect_success 'commit --no-status' '
clear_config commit.status &&
try_commit --no-status
! grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
'

test_expect_success 'commit with commit.status = yes' '
clear_config commit.status &&
git config commit.status yes &&
try_commit "" &&
grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
'

test_expect_success 'commit with commit.status = no' '
clear_config commit.status &&
git config commit.status no &&
try_commit "" &&
! grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
'

test_expect_success 'commit --status with commit.status = yes' '
clear_config commit.status &&
git config commit.status yes &&
try_commit --status &&
grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
'

test_expect_success 'commit --no-status with commit.status = yes' '
clear_config commit.status &&
git config commit.status yes &&
try_commit --no-status &&
! grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
'

test_expect_success 'commit --status with commit.status = no' '
clear_config commit.status &&
git config commit.status no &&
try_commit --status &&
grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
'

test_expect_success 'commit --no-status with commit.status = no' '
clear_config commit.status &&
git config commit.status no &&
try_commit --no-status &&
! grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
'

}

try_commit_status_combo

use_template="-t template"

try_commit_status_combo

test_done

0 comments on commit f9c0181

Please sign in to comment.