[R-pkg-devel] Error in CHECK caused by dev.off()

Helmut Schütz he|mut@@chuetz @end|ng |rom beb@c@@t
Thu Jul 23 22:44:41 CEST 2020


Hi Sebastian,

Sebastian Meyer wrote on 2020-07-23 16:52:
> Back to the original topic:

THX!

> Calling graphics.off() in example code will also disturb standard R CMD
> check. Before running the examples, R CMD check opens a pdf device to
> store any graphics output [1]. You will find the resulting pdf file in
> {PACKAGE}.Rcheck/{PACKAGE}-Ex.pdf after R CMD check.

Ah! For years I was wondering where the PDF comes from.

> R CMD check will eventually fail from trying to close this pdf device
> after running the examples [2], if you have already closed all graphics
> devices (including this pdf device) through code in your examples. This
> is where the
>
> Error in grDevices::dev.off() :
>    cannot shut down device 1 (the null device)
> Execution halted
>
> actually came from.

OK, now I have:
if (file.exists("myfile") & !is.null(dev.list()["png"]) {
   invisible(dev.off(dev.list()["png"]))
}
You made my day. No error in check() any more.

> Finally, […] the png device may not even be available.

Ouch!

> So it is reasonable to condition on
> capabilities("png")

Done.

>   or to put such examples in \donttest.

It was already in \donttest{} but check() ignored that.

> HTH!

It did. Additionally I've learned a new abbreviation...

Helmut

-- 
Ing. Helmut Schütz
BEBAC – Consultancy Services for
Bioequivalence and Bioavailability Studies
Neubaugasse 36/11
1070 Vienna, Austria
E helmut.schuetz using bebac.at
W https://bebac.at/
F https://forum.bebac.at/



More information about the R-package-devel mailing list