a0c3244796
Change "builtin/credential-cache--daemon.c" to use "<socket-path>" not
"<socket_path>" in a placeholder label, almost all of our
documentation uses this form.
This is now consistent with the "If a placeholder has multiple words,
they are separated by dashes" guideline added in
9c9b4f2f8b
(standardize usage info string format, 2015-01-13), let's
add a now-passing test to assert that that's the case.
To do this we need to introduce a very sed-powered parser to extract
the SYNOPSIS from the *.txt, and handle not all commands with "-h"
having a corresponding *.txt (e.g. "bisect--helper"). We'll still want
to handle syntax edge cases in the *.txt in subsequent commits for
other checks, but let's do that then.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
91 lines
1.6 KiB
Bash
Executable File
91 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='assert (unbuilt) Documentation/*.txt and -h output'
|
|
|
|
TEST_PASSES_SANITIZE_LEAK=true
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'setup: list of builtins' '
|
|
git --list-cmds=builtins >builtins
|
|
'
|
|
|
|
help_to_synopsis () {
|
|
builtin="$1" &&
|
|
out_dir="out/$builtin" &&
|
|
out="$out_dir/help.synopsis" &&
|
|
if test -f "$out"
|
|
then
|
|
echo "$out" &&
|
|
return 0
|
|
fi &&
|
|
mkdir -p "$out_dir" &&
|
|
test_expect_code 129 git $builtin -h >"$out.raw" 2>&1 &&
|
|
sed -n \
|
|
-e '1,/^$/ {
|
|
/^$/d;
|
|
s/^usage: //;
|
|
s/^ *or: //;
|
|
p;
|
|
}' <"$out.raw" >"$out" &&
|
|
echo "$out"
|
|
}
|
|
|
|
builtin_to_txt () {
|
|
echo "$GIT_BUILD_DIR/Documentation/git-$1.txt"
|
|
}
|
|
|
|
txt_to_synopsis () {
|
|
builtin="$1" &&
|
|
out_dir="out/$builtin" &&
|
|
out="$out_dir/txt.synopsis" &&
|
|
if test -f "$out"
|
|
then
|
|
echo "$out" &&
|
|
return 0
|
|
fi &&
|
|
b2t="$(builtin_to_txt "$builtin")" &&
|
|
sed -n \
|
|
-e '/^\[verse\]$/,/^$/ {
|
|
/^$/d;
|
|
/^\[verse\]$/d;
|
|
|
|
p;
|
|
}' \
|
|
<"$b2t" >"$out" &&
|
|
echo "$out"
|
|
}
|
|
|
|
check_dashed_labels () {
|
|
! grep -E "<[^>_-]+_" "$1"
|
|
}
|
|
|
|
HT=" "
|
|
|
|
while read builtin
|
|
do
|
|
# -h output assertions
|
|
test_expect_success "$builtin -h output has no \t" '
|
|
h2s="$(help_to_synopsis "$builtin")" &&
|
|
! grep "$HT" "$h2s"
|
|
'
|
|
|
|
test_expect_success "$builtin -h output has dashed labels" '
|
|
check_dashed_labels "$(help_to_synopsis "$builtin")"
|
|
'
|
|
|
|
txt="$(builtin_to_txt "$builtin")" &&
|
|
preq="$(echo BUILTIN_TXT_$builtin | tr '[:lower:]-' '[:upper:]_')" &&
|
|
|
|
if test -f "$txt"
|
|
then
|
|
test_set_prereq "$preq"
|
|
fi &&
|
|
|
|
# *.txt output assertions
|
|
test_expect_success "$preq" "$builtin *.txt SYNOPSIS has dashed labels" '
|
|
check_dashed_labels "$(txt_to_synopsis "$builtin")"
|
|
'
|
|
done <builtins
|
|
|
|
test_done
|