]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t6006: simplify, fix, and optimize empty message test
authorElijah Newren <newren@gmail.com>
Wed, 4 Sep 2019 22:32:37 +0000 (15:32 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 5 Sep 2019 20:01:48 +0000 (13:01 -0700)
Test t6006.71 ("oneline with empty message") was creating two commits
with simple commit messages, and then running filter-branch to rewrite
the commit messages to be "empty".  This test was introduced in commit
1fb5fdd25f0 ("rev-list: fix --pretty=oneline with empty message",
2010-03-21) and written this way because the --allow-empty-message
option to git commit did not exist at the time.

However, the filter-branch invocation used differed slightly from
--allow-empty-message in that it would have a commit message consisting
solely of a single newline, and as such was not testing what the
original commit intended to test.  Since both a truly empty commit
message and a commit message with a single linefeed could trigger the
original bug, modify the test slightly to include an example of each.

Despite only being one piece of the 71st test and there being 73 tests
overall, this small change to just this one test speeds up the overall
execution time of t6006 (as measured by the best of 3 runs of `time
./t6006-rev-list-format.sh`) by about 11% on Linux, 13% on Mac, and
about 15% on Windows.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t6006-rev-list-format.sh

index da113d975b160f3c34a4acda3d82a26d65f5268e..cfb74d0e03541e136c46e7c84a7e537e19dc1509 100755 (executable)
@@ -501,9 +501,8 @@ test_expect_success 'reflog identity' '
 '
 
 test_expect_success 'oneline with empty message' '
-       git commit -m "dummy" --allow-empty &&
-       git commit -m "dummy" --allow-empty &&
-       git filter-branch --msg-filter "sed -e s/dummy//" HEAD^^.. &&
+       git commit --allow-empty --cleanup=verbatim -m "$LF" &&
+       git commit --allow-empty --allow-empty-message &&
        git rev-list --oneline HEAD >test.txt &&
        test_line_count = 5 test.txt &&
        git rev-list --oneline --graph HEAD >testg.txt &&