@matheusbsbs / matheus-bagliano / commits / f9c01817bb
Fork 0

t7502: test commit.status, --status and --no-status

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>

Junio C Hamano committed Jan 13, 2010 at 00:12 UTC f9c01817bb7a0a7b61652ec8e3ac12c900526f0e
1 file changed +109
t/t7502-commit.sh
+109
@@ -267,4 +267,113 @@ test_expect_success 'A single-liner subject with a token plus colon is not a foo
267
268 '
269
270 +cat >.git/FAKE_EDITOR <<EOF
271 +#!$SHELL_PATH
272 +mv "\$1" "\$1.orig"
273 +(
274 + echo message
275 + cat "\$1.orig"
276 +) >"\$1"
277 +EOF
278 +
279 +echo '## Custom template' >template
280 +
281 +clear_config () {
282 + (
283 + git config --unset-all "$1"
284 + case $? in
285 + 0|5) exit 0 ;;
286 + *) exit 1 ;;
287 + esac
288 + )
289 +}
290 +
291 +try_commit () {
292 + git reset --hard &&
293 + echo >>negative &&
294 + GIT_EDITOR=.git/FAKE_EDITOR git commit -a $* $use_template &&
295 + case "$use_template" in
296 + '')
297 + ! grep "^## Custom template" .git/COMMIT_EDITMSG ;;
298 + *)
299 + grep "^## Custom template" .git/COMMIT_EDITMSG ;;
300 + esac
301 +}
302 +
303 +try_commit_status_combo () {
304 +
305 + test_expect_success 'commit' '
306 + clear_config commit.status &&
307 + try_commit "" &&
308 + grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
309 + '
310 +
311 + test_expect_success 'commit' '
312 + clear_config commit.status &&
313 + try_commit "" &&
314 + grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
315 + '
316 +
317 + test_expect_success 'commit --status' '
318 + clear_config commit.status &&
319 + try_commit --status &&
320 + grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
321 + '
322 +
323 + test_expect_success 'commit --no-status' '
324 + clear_config commit.status &&
325 + try_commit --no-status
326 + ! grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
327 + '
328 +
329 + test_expect_success 'commit with commit.status = yes' '
330 + clear_config commit.status &&
331 + git config commit.status yes &&
332 + try_commit "" &&
333 + grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
334 + '
335 +
336 + test_expect_success 'commit with commit.status = no' '
337 + clear_config commit.status &&
338 + git config commit.status no &&
339 + try_commit "" &&
340 + ! grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
341 + '
342 +
343 + test_expect_success 'commit --status with commit.status = yes' '
344 + clear_config commit.status &&
345 + git config commit.status yes &&
346 + try_commit --status &&
347 + grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
348 + '
349 +
350 + test_expect_success 'commit --no-status with commit.status = yes' '
351 + clear_config commit.status &&
352 + git config commit.status yes &&
353 + try_commit --no-status &&
354 + ! grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
355 + '
356 +
357 + test_expect_success 'commit --status with commit.status = no' '
358 + clear_config commit.status &&
359 + git config commit.status no &&
360 + try_commit --status &&
361 + grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
362 + '
363 +
364 + test_expect_success 'commit --no-status with commit.status = no' '
365 + clear_config commit.status &&
366 + git config commit.status no &&
367 + try_commit --no-status &&
368 + ! grep "^# Changes to be committed:" .git/COMMIT_EDITMSG
369 + '
370 +
371 +}
372 +
373 +try_commit_status_combo
374 +
375 +use_template="-t template"
376 +
377 +try_commit_status_combo
378 +
379 test_done