test-lib functions: add --printf option to test_commit
Add a --printf option to test_commit to allow writing to the file with
"printf" instead of "echo".
This is useful for writing "\n", "\0" etc., in particular in
combination with the --append option added in 3373518cc8
(test-lib
functions: add an --append option to test_commit, 2021-01-12).
I'm converting a few tests to use the new option rather than a manual
printf/add/commit combination to demonstrate its usefulness. While I'm
at it use "test_create_repo" where appropriate, and give the
first/second commit a meaningful/more conventional log message in
cases where no test cared about that message.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
parent
8cfe386b78
commit
47c88d16ba
|
@ -65,9 +65,7 @@ test_expect_success 'parse errors in blobs are properly attributed' '
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'can parse blob ending with CR' '
|
test_expect_success 'can parse blob ending with CR' '
|
||||||
printf "[some]key = value\\r" >config &&
|
test_commit --printf CR config "[some]key = value\\r" &&
|
||||||
git add config &&
|
|
||||||
git commit -m CR &&
|
|
||||||
echo value >expect &&
|
echo value >expect &&
|
||||||
git config --blob=HEAD:config some.key >actual &&
|
git config --blob=HEAD:config some.key >actual &&
|
||||||
test_cmp expect actual
|
test_cmp expect actual
|
||||||
|
|
|
@ -179,8 +179,7 @@ test_expect_success 'rerere and rerere forget (subdirectory)' '
|
||||||
|
|
||||||
test_expect_success 'rerere forget (binary)' '
|
test_expect_success 'rerere forget (binary)' '
|
||||||
git checkout -f side &&
|
git checkout -f side &&
|
||||||
printf "a\0c" >binary &&
|
test_commit --printf binary binary "a\0c" &&
|
||||||
git commit -a -m binary &&
|
|
||||||
test_must_fail git merge second &&
|
test_must_fail git merge second &&
|
||||||
git rerere forget binary
|
git rerere forget binary
|
||||||
'
|
'
|
||||||
|
|
|
@ -26,10 +26,8 @@ test_expect_success 'chmod' '
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'prepare binary file' '
|
test_expect_success 'prepare binary file' '
|
||||||
git commit -m rezrov &&
|
git commit -m one &&
|
||||||
printf "\00\01\02\03\04\05\06" >binbin &&
|
test_commit --printf two binbin "\00\01\02\03\04\05\06"
|
||||||
git add binbin &&
|
|
||||||
git commit -m binbin
|
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success '--stat output after text chmod' '
|
test_expect_success '--stat output after text chmod' '
|
||||||
|
|
|
@ -26,12 +26,8 @@ EOF
|
||||||
chmod +x hexdump
|
chmod +x hexdump
|
||||||
|
|
||||||
test_expect_success 'setup binary file with history' '
|
test_expect_success 'setup binary file with history' '
|
||||||
printf "\\0\\n" >file &&
|
test_commit --printf one file "\\0\\n" &&
|
||||||
git add file &&
|
test_commit --printf --append two file "\\01\\n"
|
||||||
git commit -m one &&
|
|
||||||
printf "\\01\\n" >>file &&
|
|
||||||
git add file &&
|
|
||||||
git commit -m two
|
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'file is considered binary by porcelain' '
|
test_expect_success 'file is considered binary by porcelain' '
|
||||||
|
|
|
@ -746,14 +746,8 @@ test_expect_success 'pull --rebase fails on corrupt HEAD' '
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'setup for detecting upstreamed changes' '
|
test_expect_success 'setup for detecting upstreamed changes' '
|
||||||
mkdir src &&
|
test_create_repo src &&
|
||||||
(
|
test_commit -C src --printf one stuff "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" &&
|
||||||
cd src &&
|
|
||||||
git init &&
|
|
||||||
printf "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" > stuff &&
|
|
||||||
git add stuff &&
|
|
||||||
git commit -m "Initial revision"
|
|
||||||
) &&
|
|
||||||
git clone src dst &&
|
git clone src dst &&
|
||||||
(
|
(
|
||||||
cd src &&
|
cd src &&
|
||||||
|
|
|
@ -173,6 +173,12 @@ debug () {
|
||||||
# Do not call test_tick before making a commit
|
# Do not call test_tick before making a commit
|
||||||
# --append
|
# --append
|
||||||
# Use ">>" instead of ">" when writing "<contents>" to "<file>"
|
# Use ">>" instead of ">" when writing "<contents>" to "<file>"
|
||||||
|
# --printf
|
||||||
|
# Use "printf" instead of "echo" when writing "<contents>" to
|
||||||
|
# "<file>", use this to write escape sequences such as "\0", a
|
||||||
|
# trailing "\n" won't be added automatically. This option
|
||||||
|
# supports nothing but the FORMAT of printf(1), i.e. no custom
|
||||||
|
# ARGUMENT(s).
|
||||||
# --signoff
|
# --signoff
|
||||||
# Invoke "git commit" with --signoff
|
# Invoke "git commit" with --signoff
|
||||||
# --author <author>
|
# --author <author>
|
||||||
|
@ -191,6 +197,7 @@ debug () {
|
||||||
|
|
||||||
test_commit () {
|
test_commit () {
|
||||||
notick= &&
|
notick= &&
|
||||||
|
echo=echo &&
|
||||||
append= &&
|
append= &&
|
||||||
author= &&
|
author= &&
|
||||||
signoff= &&
|
signoff= &&
|
||||||
|
@ -202,6 +209,9 @@ test_commit () {
|
||||||
--notick)
|
--notick)
|
||||||
notick=yes
|
notick=yes
|
||||||
;;
|
;;
|
||||||
|
--printf)
|
||||||
|
echo=printf
|
||||||
|
;;
|
||||||
--append)
|
--append)
|
||||||
append=yes
|
append=yes
|
||||||
;;
|
;;
|
||||||
|
@ -238,9 +248,9 @@ test_commit () {
|
||||||
file=${2:-"$1.t"} &&
|
file=${2:-"$1.t"} &&
|
||||||
if test -n "$append"
|
if test -n "$append"
|
||||||
then
|
then
|
||||||
echo "${3-$1}" >>"$indir$file"
|
$echo "${3-$1}" >>"$indir$file"
|
||||||
else
|
else
|
||||||
echo "${3-$1}" >"$indir$file"
|
$echo "${3-$1}" >"$indir$file"
|
||||||
fi &&
|
fi &&
|
||||||
git ${indir:+ -C "$indir"} add "$file" &&
|
git ${indir:+ -C "$indir"} add "$file" &&
|
||||||
if test -z "$notick"
|
if test -z "$notick"
|
||||||
|
|
Loading…
Reference in New Issue