[Rd] Generate .Rout.save files for vignettes
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
> 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
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.
> 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  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. )
>> 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'
>> 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.
>>>  http://cran.r-project.org/doc/manuals/R-exts.html#Checking-packages
>>>  http://cran.r-project.org/doc/manuals/R-exts.html#fn-15
>>> R-devel at r-project.org mailing list
>> R-devel at r-project.org mailing list
More information about the R-devel