Subject: Re: Interested in helping open source friends on HP-UX?

From: Jeff King <[email-masked]>
Date: Thu, 19 Feb 2015 20:48:01 -0500

On Thu, Feb 19, 2015 at 02:21:11PM +0100, Michael J Gruber wrote:

> > It passes NO_ICONV through to the test suite, sets up a prerequisite,
> > disables some test scripts which are purely about i18n (e.g.,
> > t3900-i18n-commit), and marks some of the scripts with one-off tests
> > using the ICONV prereq.
> 
> Hmm. I know we pass other stuff down, but is this really a good idea? It
> relies on the fact that the git that we test was built with the options
> from there. This assumptions breaks (with) GIT_TEST_INSTALLED, if not more.
> 
> Basically, it may break as soon as we run the tests by other means than
> "make", which is quite customary if you run single tests.
> 
> (And we do pass config.mak down, me thinks, but NO_ICONV may come from
> the command line.)

It's not quite so bad as you make out. We write the value to the
GIT-BUILD-OPTIONS file during "make", no matter where it comes from, and
load that in test-lib.sh. So:

  make NO_ICONV=Nope
  cd t
  ./t3901-i18n-patch.sh

works just fine (for this and for any of the other options we mark
there).

It won't work for GIT_TEST_INSTALLED, but that is not a new problem.
Fundamentally you cannot expect to test a version built without option X
without telling git _somehow_ that it was built that way.

I suspect GIT_TEST_INSTALLED is not all that widely used, or somebody
would have complained before. But if we really want to support it, I
think the right thing is to bake GIT-BUILD-OPTIONS into the binary, so
that "git --build-options" dumps it. It might also have value for
debugging and forensics in general.

> Jeff, you got it wrong. You should do the hard part and leave the easy
> part to us!

Oops. :)

-Peff