[Rd] Generate .Rout.save files for vignettes

Duncan Murdoch murdoch.duncan at gmail.com
Tue Dec 11 18:27:42 CET 2012

On 12-12-11 9:41 AM, Prof Brian Ripley wrote:
> But note that this was added at the request of one package author.  We
> don't generally recommended it, not least as people do not take
> sufficient care about platform differences and keeping such output up to
> date.  So people (including authors) tend to simply ignore a mass of
> differences.
> It is better to craft tests with controlled output (and chosen number of
> significant digits) if you want to check package printed output.

This seems like a useful test for a package developer, but maybe not for 
package users (or for CRAN, if the developer wants to work in a 
non-standard locale).

I wonder if there's a way to make it easy to use locally, without 
inconveniencing everyone else?  Perhaps it should simply default to not 
being done, with an environment variable flag set to enable it.

Duncan Murdoch

> On 11/12/2012 13:52, Duncan Murdoch wrote:
>> On 12-12-10 11:45 AM, Benjamin Hofner wrote:
>>> I am looking for a way to generate .Rout.save files for vignettes.
>>> The manual "Writing R Extensions" states here [1] in item number 20:
>>> "If there is a target output file .Rout.save in the vignette source
>>> directory, the output from running the code in that vignette is compared
>>> with the target output file."
>>> Yet, there is no pointer on how to get the correct .Rout.save files for
>>> vignettes. (For the files in directory "test" there is a footnote on how
>>> to get the .Rout.save files. [2])
>> I agree, this should be documented.  But it is rather easy:
>> Just create an empty file and call it vignette.Rout.save.  Run the
>> checks, and you'll get lots of errors because it won't compare to the
>> real output.
>> When you get a compare failure, the file vignette.Rnw.log will be left
>> in the *.Rcheck directory.  You can just copy that into the
>> vignette.Rout.save file.
> You need to watch out for locale differences: make sure you do this in
> an English locale for portability (everyone has one of those, the 'C'
> locale).
>> Duncan Murdoch
>>> As a temporary solution, we currently use a script that calls
>>> tools:::.run_one_vignette() on each vignette and dumps the output:
>>> echo 'tools:::.run_one_vignette("vignette.Rnw", docDir = ".");' | R
>>> --vanilla > vignette.Rout.save
>>> However, this doesn't result in the same code as produced by R CMD
>>> check. E.g., we get the R startup header and furthermore get the output
>>> in German where localization is available (thus having differences when
>>> running R CMD check).
>>> Does anyone have any hints on how to automatically get the correct
>>> results (i.e., without the header)? And is it possible to include these
>>> hints in the "Writing R extensions" manual for other users?
>>> Any help is highly appreciated.
>>> Best,
>>>       Benjamin
>>> --------------------
>>> [1] http://cran.r-project.org/doc/manuals/R-exts.html#Checking-packages
>>> [2] http://cran.r-project.org/doc/manuals/R-exts.html#fn-15
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel

More information about the R-devel mailing list