On Wed, Aug 23, 2006 at 08:08:27PM +0900, Mauricio Fernandez wrote:
> On Wed, Aug 23, 2006 at 08:32:09AM +0900, Tomasz Wegrzanowski wrote:
> > I have a program compiler.rb, that compiles something.
> > The test driver is a separate program, that runs compiler.rb, then feeds
> > the results to a virtual machine, and checks if it gets expected results.
> > 
> > Now I'd like to verify that every single line of compiler.rb is
> > covered by tests.
> > How can I make rcov merge information from multiple runs of compiler.rb ?
> 
> You can use the --aggregate option, which was added in 0.7.0.
[...]

Sorry, I misread the first paragraph and answered somewhat aside of the
question.

In the case you describe, you could create a small wrapper that would look
more or less like this:

 #!/usr/bin/env ruby

 system("rcov", "--aggregate", "coverage.data", "--no-html", "-t", 
        "compiler.rb", "--", *ARGV) 
 exit $?.exitstatus

Then you could select which script (the wrapper or the actual compiler.rb) is
to be executed with a symlink.
Alternatively, you could change the driver to select the script or execute
rcov with the appropriate arguments directly, but at that point you'd have to
implement some way to specify whether rcov is to be used or not, if you want
to allow both.

Hope this helps.

-- 
Mauricio Fernandez  -   http://eigenclass.org   -  singular Ruby