bug-groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #63824] revert recent change to skip tests at configuration time


From: G. Branden Robinson
Subject: [bug #63824] revert recent change to skip tests at configuration time
Date: Tue, 21 Feb 2023 03:05:24 -0500 (EST)

URL:
  <https://savannah.gnu.org/bugs/?63824>

                 Summary: revert recent change to skip tests at configuration
time
                   Group: GNU roff
               Submitter: gbranden
               Submitted: Tue 21 Feb 2023 08:05:22 AM UTC
                Category: General
                Severity: 5 - Blocker
              Item Group: Test
                  Status: In Progress
                 Privacy: Public
             Assigned to: gbranden
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: None


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Tue 21 Feb 2023 08:05:22 AM UTC By: G. Branden Robinson <gbranden>
A couple of recent changes were ill-conceived.


commit 668a1b183b748473e2fec17bdde4db286129f659
Author:     G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Thu Feb 16 12:14:58 2023 -0600
Commit:     G. Branden Robinson <g.branden.robinson@gmail.com>
CommitDate: Fri Feb 17 06:12:11 2023 -0600

    [tests]: Don't test grohtml if unsupported.
    
    * src/roff/groff/groff.am (groff_TESTS) [!USE_GROHTML]: Don't test the
      'grohtml' driver if we know it won't work.

commit e3954e5b15ae956c2ee7f98c8f323bfa9172e5a3
Author:     G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Sat Feb 18 02:04:00 2023 -0600
Commit:     G. Branden Robinson <g.branden.robinson@gmail.com>
CommitDate: Sat Feb 18 02:05:00 2023 -0600

    [gropdf]: Don't test if hobbled.
    
    [gropdf]: Don't run automated tests if 'gropdf' will be operating with
    reduced function.  If neither Ghostscript nor the URW fonts are
    available at configuration time, there is no point testing for
    successful build-time population of the font descriptions for the
    default and URW foundries.
    
    * font/devpdf/devpdf.am (font_devpdf_TESTS) [USE_GROPDF]: Run
      "check-default-foundry" only if gropdf is fully functional.
    
      (font_devpdf_TESTS) [USE_GROPDF && HAVE_URW_FONTS]: Run
      "check-urw-foundry" only if the URW fonts were found.
    
    Continues <https://savannah.gnu.org/bugs/?63808>.  Thanks to Deri James
    for the continued discussion.


The problem with these is some other lines in the *.am files:


EXTRA_DIST += $(font_devpdf_TESTS)

EXTRA_DIST += $(groff_TESTS)


These mean that the distribution archive's contents will depend on the
configuration of the system from which "make dist" was run.

That is *bad, bad, bad*.

These `USE_GROHTML` and `USE_GROPDF` bracketings should be undone.

However, the tests are being skipped for a good reason.  Instead of not
executing them, it would probably be better to just have internal logic to
exit 77 ("SKIP" to GNU Automake-driven tests).

It's a bit duplicative (and will therefore warrant comments trying to keep
things in sync), but the grohtml tests can just test for the same commands
that our Autoconf test does in m4/groff.m4, with command -v >/dev/null, and
skip the test if any aren't present.

The gropdf situation is harder.  The thing that can scotch its tests is not
missing commands but missing fonts.  There's no _easy_ way to tell from within
a test script whether gropdf is going to find Type 1 fonts it can embed in the
documents it generates.  (Locating them is a _complex_ process.)  And Deri are
still wrangling with testing issues anyway (see bug #63808).

In the long run (groff 1.23.1?), maybe what we want to do is something Deri
wanted to do a long time ago, which is bust out part of BuildFoundries.pl as a
script that is runnable at configuration time (we depend on Perl anyway). 
That script can be the snout that sniffs out the presence of embeddable Type 1
fonts on the system.  Not only can we set shell variables that will inform the
user whether gropdf's functionality will be attenuated (as we already do), but
we can create artifacts in the build directory (at build time) that the gropdf
scripts can look for.  (We already have an Automake variable,
`HAVE_URW_FONTS`, that is produced by `AM_CONDITIONAL` in "configure.ac". 
Perhaps what we want is more like `HAVE_EMBEDDABLE_DEFAULT_FOUNDRY` and
`HAVE_EMBEDDABLE_URW_FOUNDRY`.)

The gropdf test scripts could then simply look for these artifacts in the
build tree, and continue or skip themselves as appropriate.

But for groff 1.23.0, it might make more sense to just run the tests every
time and let them fail as we warned in ./configure output if the host
environment isn't ship-shape in the embeddable fonts department.

None of this would prevent a build from being deployed elsewhere, or
Ghostscript and/or URW packages from being removed after a groff build, so
gropdf will still need to re-verify the availability of fonts to be embedded
every time it runs anyway.  And it does.  (Another thing Deri and I have
wrangled over is the wording of the diagnostics that happen in this scenario. 
:) )

Maybe it doesn't even make too much sense to worry about users being alarmed
by test failures here.  Everybody's heard of "./configure && make && make
install".  Few seem to bother with having "make check" in there... :-/







    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?63824>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]