[R-pkg-devel] Saving output of check()
J C Nash
profjcnash at gmail.com
Wed Apr 11 23:03:53 CEST 2018
I got several responses to my query. Henrik's does suggest "why", but I
am rather unhappy that R has this weakness. (See below for a sort of
workaround for Linux users.)
In particular, note that the check_built() function DOES return an object,
but it does NOT print().
In fact, putting alldep <- "embryogrowth" gives a result file
> Check the dependent packages
> Downloaded /home/john/temp/wrkopt/dlpkg/embryogrowth_7.4.tar.gz
> Results package: embryogrowth
>
while the bottom of the terminal file gives
> * checking data for non-ASCII characters ... OK
> * checking data for ASCII and uncompressed saves ... OK
> * checking examples ... OK
> * DONE
>
> Status: OK
>
> Results package: embryogrowth
> R CMD check results
> 0 errors | 0 warnings | 0 notes
>
>>
>> sink()
>>
Now the object cpkg.chk is still present, so I continued the exercise (terminal
copy here)
>
>> ls()
> [1] "alldep" "cpkg" "cpkg.chk" "dd" "dlname" "ii" "nall"
>> sink("sinktest2.txt", split=TRUE)
>> cpkg.chk
> R CMD check results
> 0 errors | 0 warnings | 0 notes
>
>> print(cpkg.chk)
> R CMD check results
> 0 errors | 0 warnings | 0 notes
>
>> cat("note the above use just the object name as well as print()\n")
> note the above use just the object name as well as print()
>> sink()
>>
but the file sinktest2.txt is just
>
> note the above use just the object name as well as print()
Perhaps this isn't a bug, but it rather smells like one, especially the
failure to show the cpkg.chk.
Workaround for Linux: Run things via
R |& tee -a myteeoutput.txt
This will keep all the output (sink not needed). But it isn't quite as nice
for keeping the data.
I've also not managed to find a way to get the information out of the cpkg.chk
object. If someone knows how to do that, it would help.
Best, JN
On 2018-04-11 03:24 PM, Henrik Bengtsson wrote:
> R CMD check, which is used internally runs checks in standalone
> background R processes. Output from these is not capturable/sinkable
> by the master R process. The gist of what's happening is:
>
>> sink("output.log")
>> system("echo hello") ## not sinked/captured
> hello
>> sink()
>> readLines("output.log")
> character(0)
>
> /Henrik
>
> On Wed, Apr 11, 2018 at 11:05 AM, J C Nash <profjcnash at gmail.com> wrote:
>> Hi,
>>
>> In trying to test that an upgrade to my optimx package does not break other
>> packages, I wanted to loop over a list of all such packages in alldep, with
>> nall the length of this list.
>>
>> cat("Check the dependent packages\n")
>> for (ii in 1:nall){
>> cpkg <- alldep[ii]
>> dd <- "/home/john/temp/wrkopt/dlpkg"
>> dlname <- download.packages(cpkg, destdir=dd )[[2]]
>> cat("Downloaded ", dlname,"\n")
>> cpkg.chk <- devtools::check_built(dlname)
>> cat("Results package:",cpkg,"\n")
>> print(cpkg.chk)
>> }
>>
>> Before running this, I did
>>
>> sink("dpkgcheck.txt", split=TRUE)
>>
>> and afterwards, I did sink().
>>
>> But ... none of the check output, nor the result of the final print, show
>> up in the output file dpkgcheck.txt.
>>
>> Have I totally misunderstood sink(), or is there a nasty bug?
>>
>> I've tried running in Rstudio and in the terminal. I'm running Linux Mint
>> 18.3 Sylvia.
>>
>> Linux john-j6-18 4.10.0-38-generic #42~16.04.1-Ubuntu SMP Tue Oct 10 16:32:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
>> john at john-j6-18 ~ $ R
>>
>> R version 3.4.4 (2018-03-15) -- "Someone to Lean On"
>>
>>
>> J C Nash
>>
>> ______________________________________________
>> R-package-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
More information about the R-package-devel
mailing list