Subject: bug#14517: t/tags-pr12372.sh assumes that etags generates tags for all files

From: Stefano Lattarini <[email-masked]>
Date: Fri, 31 May 2013 11:36:38 +0200

severity 14517 minor
stop

Hi Peter, thanks for the report.

On 05/31/2013 11:15 AM, Peter Rosin wrote:
> Hi!
> 
> I recently installed etags on Cygwin.
> 
> $ etags --version
> Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
>   Compiled: Dec 11 2009, 11:42:40
>   Addresses: <[email-masked]>, http://ctags.sourceforge.net
>   Optional compiled features: +wildcards, +regex, +internal-sort
> 
> This caused t/tags-pr12372.sh (v1.13.2-63-gb4bfacb, i.e. not the very
> latest, but close enough) to go from SKIP to FAIL.
> 
> The reason for the FAIL is that this etags program will not by default
> generate any tags for file extensions it does not recognize.
> 
> Quoting from the manual:
> 
> 
> SOURCE FILES
>        Unless  the  --language-force option is specified, the language of each
>        source file is automatically selected based  upon  a  mapping  of  file
>        names  to  languages.  The  mappings in effect for each language may be
>        display using the --list-maps option  and  may  be  changed  using  the
>        --langmap option.  On platforms which support it, if the name of a file
>        is not mapped to a language and the file is executable, the first  line
>        of the file is checked to see if the file is a "#!" script for a recog‐
>        nized language.
> 
> 
> With that info (and with the help of the docs for the --langmap option), I
> can make the test PASS *for this etags* with the below patch.
> 
> I also question if it's wise to 'cat TAGS' in the test, as I have
> non-printable characters the tags files.
>
Log files generated by the automake testsuite harness should be able to contain
binary output without confusing any of the other automake-generated recipes.
That is considered a feature, and is also tested in the Automake testsuite
somewhere.  Are you having concrete problem with this?  If yes, that's a bug
we might want to address.

> Cheers,
> Peter
> 
> 
> diff --git a/t/tags-pr12372.sh b/t/tags-pr12372.sh
> index 4eeb9be..14b500e 100644
> --- a/t/tags-pr12372.sh
> +++ b/t/tags-pr12372.sh
> @@ -63,7 +63,7 @@ $AUTOMAKE
> 
>  ./configure
> 
> -$MAKE
> +$MAKE ETAGSFLAGS="--langmap=c:+.pc"
>
This will break with my etags, though.

  $ etags --version
  etags (GNU Emacs 23.4)
  Copyright (C) 2012 Free Software Foundation, Inc.
  This program is distributed under the terms in ETAGS.README

Maybe you should make your change condition to whether etags is
"Exuberant Ctags"?

>  cat TAGS
>  cat sub/TAGS
>  $FGREP foo-main.pc TAGS

Thanks,
  Stefano