From ripley at stats.ox.ac.uk  Tue Dec 11 15:41:18 2012
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Tue, 11 Dec 2012 14:41:18 +0000
Subject: [Rd] Generate .Rout.save files for vignettes
In-Reply-To: <50C73AB5.8050103@gmail.com>
References: <50C611C0.9040700@fau.de> <50C73AB5.8050103@gmail.com>
Message-ID: <50C7460E.3020104@stats.ox.ac.uk>

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.


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


-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] Generate .Rout.save files for vignettes
Prof Brian Ripley