[grohtml]: Fix Savannah #63824 (1/2).

[grohtml]: Revise tests to check for requisite programs at test time and
skip if not found, rather than configuring them away at build time,
which can cause a distribution archive to be incorrectly structured.

* m4/groff.m4: Annotate requisite program list since we're violating the
  DRY principle.

* src/roff/groff/groff.am (groff_TESTS): Populate unconditionally.

* src/roff/groff/tests/html_works_with_grn_and_eqn.sh:
* src/roff/groff/tests/smoke-test_html_device.sh: Check for requisite
  programs and skip test if any are not found.

Fixes <https://savannah.gnu.org/bugs/?63824> (1/2).
This commit is contained in:
G. Branden Robinson 2023-02-21 16:43:10 -06:00
parent a9767ace3d
commit 5486b5bc09
5 changed files with 43 additions and 4 deletions

View File

@ -1,3 +1,21 @@
2023-02-21 G. Branden Robinson <g.branden.robinson@gmail.com>
[grohtml]: Revise tests to check for requisite programs at test
time and skip if not found, rather than configuring them away at
build time, which can cause a distribution archive to be
incorrectly structured.
* m4/groff.m4: Annotate requisite program list since we're
violating the DRY principle.
* src/roff/groff/groff.am (groff_TESTS): Populate
unconditionally.
* src/roff/groff/tests/html_works_with_grn_and_eqn.sh:
* src/roff/groff/tests/smoke-test_html_device.sh: Check for
requisite programs and skip test if any are not found.
Fixes <https://savannah.gnu.org/bugs/?63824> (1/2).
2023-02-21 G. Branden Robinson <g.branden.robinson@gmail.com>
[man pages]: Define page-local `MR` fallback.

View File

@ -182,6 +182,7 @@ AC_DEFUN([GROFF_CHECK_GROHTML_PROGRAMS], [
make_htmldoc=no
missing=
m4_foreach([groff_prog],
dnl Keep this list of programs in sync with grohtml test scripts.
[[pnmcrop], [pnmcut], [pnmtopng], [pnmtops], [psselect]], [
AC_CHECK_PROG(groff_prog, groff_prog, [found], [missing])
if test $[]groff_prog = missing

View File

@ -47,6 +47,7 @@ groff_TESTS = \
src/roff/groff/tests/evc_produces_no_output_if_invalid.sh \
src/roff/groff/tests/fp_should_not_traverse_directories.sh \
src/roff/groff/tests/handle_special_input_code_points.sh \
src/roff/groff/tests/html_works_with_grn_and_eqn.sh \
src/roff/groff/tests/initialization_is_quiet.sh \
src/roff/groff/tests/localization_works.sh \
src/roff/groff/tests/msoquiet_works.sh \
@ -58,6 +59,7 @@ groff_TESTS = \
src/roff/groff/tests/regression_savannah_58162.sh \
src/roff/groff/tests/regression_savannah_58337.sh \
src/roff/groff/tests/regression_savannah_59202.sh \
src/roff/groff/tests/smoke-test_html_device.sh \
src/roff/groff/tests/some_escapes_accept_newline_delimiters.sh \
src/roff/groff/tests/soquiet_works.sh \
src/roff/groff/tests/string_case_xform_errors.sh \
@ -65,10 +67,6 @@ groff_TESTS = \
src/roff/groff/tests/string_case_xform_unicode_escape.sh \
src/roff/groff/tests/substring_works.sh \
src/roff/groff/tests/use_point_size_escape_with_single_digit_arg.sh
if USE_GROHTML
groff_TESTS += src/roff/groff/tests/html_works_with_grn_and_eqn.sh \
src/roff/groff/tests/smoke-test_html_device.sh
endif
TESTS += $(groff_TESTS)
EXTRA_DIST += $(groff_TESTS)

View File

@ -20,6 +20,17 @@
groff="${abs_top_builddir:-.}/test-groff"
# Keep this list of programs in sync with GROFF_CHECK_GROHTML_PROGRAMS
# in m4/groff.m4.
for cmd in pnmcrop pnmcut pnmtopng pnmtops psselect
do
if ! command -v $cmd >/dev/null
then
echo "cannot locate '$cmd' command; skipping test" >&2
exit 77 # skip
fi
done
# Commit c71b4ef4aa provoked an infinite loop in post-grohtml with these
# preprocessors.

View File

@ -20,6 +20,17 @@
groff="${abs_top_builddir:-.}/test-groff"
# Keep this list of programs in sync with GROFF_CHECK_GROHTML_PROGRAMS
# in m4/groff.m4.
for cmd in pnmcrop pnmcut pnmtopng pnmtops psselect
do
if ! command -v $cmd >/dev/null
then
echo "cannot locate '$cmd' command; skipping test" >&2
exit 77 # skip
fi
done
fail=
wail () {