autoconf-patches
[Top][All Lists]
Advanced

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

Re: Perl code coverage


From: Eric Blake
Subject: Re: Perl code coverage
Date: Mon, 19 Oct 2009 06:13:47 -0600
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.23) Gecko/20090812 Thunderbird/2.0.0.23 Mnenhy/0.7.6.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Ralf Wildenhues on 10/18/2009 7:17 AM:
> 
> Can M4 tracing be instrumented to show coverage of expanded macros?
> (I guess this ought to be fairly easy).

Yes, that seems like it might be possible.  It seems like we could
redefine m4_define to cause each macro to add itself to the set of
expanded macros on first invocation; this would work for every macro
except m4 builtins, so some care would be needed.

> Can M4/M4sugar be instrumented to map shell coverage information back
> from some random configure script to our input macro files?  That would
> be cool, but I'd have no idea how to realize it.

You're right - that starts to get much harder.  m4 -s outputs synclines,
which look like shell comments, but right now, m4 synclines only track the
point at which a macro was expanded, not where the various expansion body
portions came from.  For AC_DEFUN, we maintain a nicer stack of expansion
locations, but figuring out how to output that in shell might still be
difficult.

> 
> You might need this additional diff for Devel::Cover to work right:
> 
> | --- a/lib/Autom4te/General.pm
> | +++ b/lib/Autom4te/General.pm
> | @@ -197,7 +197,7 @@ sub END
> |  
> |    # This is required if the code might send any output to stdout
> |    # E.g., even --version or --help.  So it's best to do it unconditionally.
> | -  if (! close STDOUT)
> | +  if (! STDOUT->flush)

Is that something we want to add unconditionally?

> WDYT?  Please note that IMHO you shouldn't delay 2.65 for any of this.

Agreed.

>     Perl coverage convenience targets.
>     
>     * Makefile.am (PERL_COVERAGE_DB, PERL_COVERAGE_FLAGS, PERL_COVER):
>     New variables.
>     (check-coverage, check-coverage-run, check-coverage-report)
>     (clean-coverage): New phony targets.
>     (clean-local): Depend on clean-coverage.

I don't see any harm in committing this; it adds a target for those
playing with coverage, without penalizing existing targets.

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrcV/sACgkQ84KuGfSFAYC4FACeL5KpEkFjGY7CAHByKEzkwzLg
C0YAn3wEl8wo8lyIGfEKfhzgT015CQrL
=siFT
-----END PGP SIGNATURE-----




reply via email to

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