Re: * tests/amhello-binpkg.test: Add missing $EXEEXT usage.

2011-09-05 Thread Stefano Lattarini
On Monday 05 September 2011, Peter Rosin wrote:
> Den 2011-09-05 11:37 skrev Stefano Lattarini:
> > Ouch!  Silly me for not thinking about that.
> 
> And the quoting was off too, should have been s/\././g to
> do what you intended... :-)
> 
Double ouch, you're right again!

  $ x=`echo a.b | sed 's/\./\\./g'`; printf '%s\n' "$x"
  a.b

I should really give up attemping to understand how the `\' escaping
works inside backticks... I've been burned so many times, sigh... :-(

And maybe it's about time to write a configure check that looks for a
POSIX shell, so that we can run our tests with it and dispense with
the clumsy workarounds for exotic bugs and limitations; most of the
framework is already in place anyway (e.g., automatic re-execing of
tests with the configure-time shell), so that shouldn't be too
difficult.  But I'm cooking another patch right now, so this will
have to wait.

> Pushed now, thanks for looking!
>

Regards,
  Stefano


Re: * tests/amhello-binpkg.test: Add missing $EXEEXT usage.

2011-09-05 Thread Peter Rosin
Den 2011-09-05 11:37 skrev Stefano Lattarini:
> On Monday 05 September 2011, Peter Rosin wrote:
>> Den 2011-09-05 10:06 skrev Stefano Lattarini:
>>> On Monday 05 September 2011, Peter Rosin wrote:
 Hi!

>>> Hi Peter, thanks for the patch.
>>>
 This fixes a fail on Cygwin (and others I suppose).

 I'm aware that the lax non-gnu-tar branch adds even more laxness
 since $EXEEXT normally contains a dot for the oddball cases when
 it's non-empty, but that's so minor that I didn't bother to code
 around it...  Ok for maint?

>>> I only have a minor nit: I'd prefer the extraction of `EXEEXT' from
>>> Makefile to be done by something like this (avoiding use of "eval"):
>>>
>>>  EXEEXT=`sed -n -e 's/^EXEEXT *= *//p'`
>>>
>>> And BTW, this could also be improved to allow escaping of literal
>>> dots, as in:
>>>
>>>  EXEEXT=`sed -n '/^EXEEXT *=/{ s/^EXEEXT *= *//; s/\./\\./g; p; }'`
>>>
>>> WDYT?
>>
>> I'm ok with your first alternative, but the second is undefined
>> according to posix (at least 'Limitations of usual tools' in
>> Autoconf states so; you can't have semicolon after a '{' verb)
>>
> Ah right; thank you for digging that up.
> 
>> and, even worse, it breaks for the gnu tar branch.
>>
> Ouch!  Silly me for not thinking about that.

And the quoting was off too, should have been s/\././g to
do what you intended... :-)

>> So, unless someone else chimes in I'm pushing with this
>>
>> EXEEXT=`sed -n -e 's/^EXEEXT *= *//p' < ../Makefile`
>>
>> sometime later today.
>>
> Fine by me.

Pushed now, thanks for looking!

Cheers,
Peter



[PATCH] {testsuite-work} installcheck: support it in our own testsuite

2011-09-05 Thread Stefano Lattarini
I will push this in a couple of days; reviews are welcome.

* tests/defs-static.in ($am_running_installcheck): New variable.
Initialize it to a default of "no", and sanity-check its value.
($am_datadir, $am_docdir, $am_m4dir, $am_bindir, $am_scriptdir,
$am_pkgvdir): New variables, initialized from AC_SUBST'ed values
which are adaptively chosen depending on whether the testsuite
is running in "simple" mode or in "installcheck" mode.
($MISSING): Remove, it's not really required by the testsuite.
($PATH): Update using `$am_bindir', not `$testbuilddir'.
* Makefile.am (installcheck-local): New target.
* lib/Automake/tests/Makefile.am (installcheck-local): New target.
(AM_TESTS_ENVIRONMENT, AM_PL_LOG_FLAGS): Adaptively choose the
`-I' flags for perl based on whether the tests are being run by
"make check" or "make installcheck".
* tests/Makefile.am (installcheck-local): New target.
(defs-static): Generate it at make time, not at configure time;
done with the help of ...
(do_subst): ... this new macro.
(EXTRA_DIST): Explicitly distribute `defs-static.in'.
(CLEANFILES): Remove `defs-static'.
* configure.ac (AC_CONFIG_FILES): Remove `tests/defs-static'.
(AC_SUBST): Substitute also `m4datadir', `scriptdir' and `amdir'
to proper values.
* m4/Makefile.am (m4datadir): Don't explicitly define anymore.
* lib/Makefile.am (scriptdir): Likewise.
* lib/am/Makefile.am (amdir): Likewise.
* tests/amhello-binpkg.test: Use new `$am_...dir' variables,
instead of hard-coding values with $testsrcdir and $testbuilddir,
to test more faithfully under "make installcheck".
* tests/amhello-cflags.test: Likewise.
* tests/amhello-cross-compile.test: Likewise.
* tests/ansi2knr-no-more.test: Likewise.
* tests/autodist-stamp-vti.test: Likewise.
* tests/auxdir.test: Likewise.
* tests/check2.test: Likewise.
* tests/copy.test: Likewise.
* tests/multlib.test: Likewise.
* tests/obsolete.test: Likewise.
* tests/parallel-tests-interrupt.test: Likewise.
* tests/repeated-options.test: Likewise.
* tests/suffix5.test: Likewise.
* tests/tap-doc2.test: Likewise.
* tests/txinfo22.test: Likewise.
* tests/vtexi3.test: Likewise.
* tests/defs: Likewise.  Also, print the values of `$using_tap'
and `$am_running_installcheck', to simplify debugging, and do
some related code movings and tweakings.
* tests/aclocal3.test: Update to avoid possible spurious failures
when running under "make installcheck".
* tests/warnings-unknown.test: Likewise.
* tests/location.test: Likewise, and improve debugging input since
we are at it.
* tests/aclocal.test: Skip a check that does not (yet) work
under "make installcheck".
* tests/acloca10.test: Skip when doing a "make installcheck".
* tests/acloca18.test: Likewise.
* tests/dirlist.test: Likewise.
* tests/dirlist2.test: Likewise.
* tests/README: Update.
---
 ChangeLog   |   62 ++
 Makefile.am |4 ++
 Makefile.in |   18 ++--
 configure   |   13 +-
 configure.ac|5 +-
 doc/Makefile.in |3 +
 lib/Automake/Makefile.in|3 +
 lib/Automake/tests/Makefile.am  |   15 ++-
 lib/Automake/tests/Makefile.in  |   29 ++
 lib/Makefile.am |1 -
 lib/Makefile.in |4 +-
 lib/am/Makefile.am  |2 -
 lib/am/Makefile.in  |4 +-
 m4/Makefile.am  |4 +-
 m4/Makefile.in  |6 ++-
 tests/Makefile.am   |   47 +++
 tests/Makefile.in   |   72 +--
 tests/README|7 +++
 tests/acloca10.test |5 ++
 tests/acloca18.test |5 ++
 tests/aclocal.test  |5 ++-
 tests/aclocal3.test |8 +++-
 tests/amhello-binpkg.test   |2 +-
 tests/amhello-cflags.test   |2 +-
 tests/amhello-cross-compile.test|4 +-
 tests/ansi2knr-no-more.test |2 +-
 tests/autodist-stamp-vti.test   |2 +-
 tests/auxdir.test   |2 +-
 tests/check2.test   |2 +-
 tests/copy.test |4 +-
 tests/defs  |   39 +++
 tests/defs-static.in|   36 +++--
 tests/depmod.tap|2 +-
 tests/dirlist.test  |5 ++
 tests/dirlist2.test |5 ++
 tests/location.test |   27 +++--
 tests/multlib.test  |3 +-
 tests/obsolete.test |2 +-
 tests/parallel-tests-interrupt.test |2 +-
 tests/repeated-options.test |2 +-
 tests/suffix5.test  |2 +-
 tests/tap-doc2.test |2 +-
 tests/txinfo22.test |2 +-
 tests/vtexi3.test   |2

Re: * tests/amhello-binpkg.test: Add missing $EXEEXT usage.

2011-09-05 Thread Stefano Lattarini
On Monday 05 September 2011, Peter Rosin wrote:
> Den 2011-09-05 10:06 skrev Stefano Lattarini:
> > On Monday 05 September 2011, Peter Rosin wrote:
> >> Hi!
> >>
> > Hi Peter, thanks for the patch.
> > 
> >> This fixes a fail on Cygwin (and others I suppose).
> >>
> >> I'm aware that the lax non-gnu-tar branch adds even more laxness
> >> since $EXEEXT normally contains a dot for the oddball cases when
> >> it's non-empty, but that's so minor that I didn't bother to code
> >> around it...  Ok for maint?
> >>
> > I only have a minor nit: I'd prefer the extraction of `EXEEXT' from
> > Makefile to be done by something like this (avoiding use of "eval"):
> > 
> >  EXEEXT=`sed -n -e 's/^EXEEXT *= *//p'`
> > 
> > And BTW, this could also be improved to allow escaping of literal
> > dots, as in:
> > 
> >  EXEEXT=`sed -n '/^EXEEXT *=/{ s/^EXEEXT *= *//; s/\./\\./g; p; }'`
> > 
> > WDYT?
> 
> I'm ok with your first alternative, but the second is undefined
> according to posix (at least 'Limitations of usual tools' in
> Autoconf states so; you can't have semicolon after a '{' verb)
>
Ah right; thank you for digging that up.

> and, even worse, it breaks for the gnu tar branch.
>
Ouch!  Silly me for not thinking about that.

> So, unless someone else chimes in I'm pushing with this
> 
> EXEEXT=`sed -n -e 's/^EXEEXT *= *//p' < ../Makefile`
> 
> sometime later today.
>
Fine by me.

Thanks,
  Stefano


Re: * tests/amhello-binpkg.test: Add missing $EXEEXT usage.

2011-09-05 Thread Peter Rosin
Den 2011-09-05 10:06 skrev Stefano Lattarini:
> On Monday 05 September 2011, Peter Rosin wrote:
>> Hi!
>>
> Hi Peter, thanks for the patch.
> 
>> This fixes a fail on Cygwin (and others I suppose).
>>
>> I'm aware that the lax non-gnu-tar branch adds even more laxness
>> since $EXEEXT normally contains a dot for the oddball cases when
>> it's non-empty, but that's so minor that I didn't bother to code
>> around it...  Ok for maint?
>>
> I only have a minor nit: I'd prefer the extraction of `EXEEXT' from
> Makefile to be done by something like this (avoiding use of "eval"):
> 
>  EXEEXT=`sed -n -e 's/^EXEEXT *= *//p'`
> 
> And BTW, this could also be improved to allow escaping of literal
> dots, as in:
> 
>  EXEEXT=`sed -n '/^EXEEXT *=/{ s/^EXEEXT *= *//; s/\./\\./g; p; }'`
> 
> WDYT?

I'm ok with your first alternative, but the second is undefined
according to posix (at least 'Limitations of usual tools' in
Autoconf states so; you can't have semicolon after a '{' verb)
and, even worse, it breaks for the gnu tar branch.

So, unless someone else chimes in I'm pushing with this

EXEEXT=`sed -n -e 's/^EXEEXT *= *//p' < ../Makefile`

sometime later today.

Cheers,
Peter



Re: * tests/amhello-binpkg.test: Add missing $EXEEXT usage.

2011-09-05 Thread Stefano Lattarini
On Monday 05 September 2011, Peter Rosin wrote:
> Hi!
>
Hi Peter, thanks for the patch.

> This fixes a fail on Cygwin (and others I suppose).
> 
> I'm aware that the lax non-gnu-tar branch adds even more laxness
> since $EXEEXT normally contains a dot for the oddball cases when
> it's non-empty, but that's so minor that I didn't bother to code
> around it...  Ok for maint?
>
I only have a minor nit: I'd prefer the extraction of `EXEEXT' from
Makefile to be done by something like this (avoiding use of "eval"):

 EXEEXT=`sed -n -e 's/^EXEEXT *= *//p'`

And BTW, this could also be improved to allow escaping of literal
dots, as in:

 EXEEXT=`sed -n '/^EXEEXT *=/{ s/^EXEEXT *= *//; s/\./\\./g; p; }'`

WDYT?

Thanks,
  Stefano