Running ‘DevEvalFileProduct.R’
  Running ‘DevEvalProduct.R’
  Running ‘capabilitiesX11.R’
  Running ‘capturePlot.R’
  Running ‘dataURI.R’
  Running ‘devAll.R’
  Running ‘devDump.R’
  Running ‘devEqualTypes.R’
  Running ‘devEval,error.R’
  Running ‘devEval.R’ [7s/22s]
  Running ‘devIsInteractive.R’
  Running ‘devIsOpen.R’
  Running ‘devList.R’
  Running ‘devListIndexOf.R’
  Running ‘devNew.R’
  Running ‘devOptions.R’
  Running ‘devSet.R’
  Running ‘devTypeName.R’
  Running ‘favicon.R’
  Running ‘toNNN.R’
  Running ‘withPar.R’
Running the tests in ‘tests/devEval.R’ failed.
Complete output:
  > message("*** devEval() ...")
  *** devEval() ...
  > 
  > library("R.devices")
  R.devices v2.16.1 (2019-10-24 06:00:03 UTC) successfully loaded. See ?R.devices for help.
  > library("R.utils")
  Loading required package: R.oo
  Loading required package: R.methodsS3
  R.methodsS3 v1.8.1 (2020-08-26 16:20:06 UTC) successfully loaded. See ?R.methodsS3 for help.
  R.oo v1.24.0 (2020-08-26 16:11:58 UTC) successfully loaded. See ?R.oo for help.
  
  Attaching package: 'R.oo'
  
  The following object is masked from 'package:R.methodsS3':
  
      throw
  
  The following objects are masked from 'package:methods':
  
      getClasses, getMethods
  
  The following objects are masked from 'package:base':
  
      attach, detach, load, save
  
  R.utils v2.10.1 (2020-08-26 22:50:31 UTC) successfully loaded. See ?R.utils for help.
  
  Attaching package: 'R.utils'
  
  The following object is masked from 'package:utils':
  
      timestamp
  
  The following objects are masked from 'package:base':
  
      cat, commandArgs, getOption, inherits, isOpen, nullfile, parse,
      warnings
  
  > graphics.off()
  > 
  > png <- grDevices::png
  > jpeg <- grDevices::jpeg
  > tiff <- grDevices::tiff
  > 
  > 
  > # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  > # Various types of single and multiple device outputs
  > # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  > message("*** devEval() - single and multiple device outputs ...")
  *** devEval() - single and multiple device outputs ...
  > 
  > types <- list(
  +   character(0L),
  +   "png",
  +   "jpg",
  +   "nulldev",
  +   c("png", "png", "jpeg"),
  +   "png,nulldev,pdf"
  + )
  > 
  > for (type in types) {
  +   cat("Device types: ", paste(sQuote(type), collapse=", "), "\n", sep="")
  +   devList0 <- devList()
  +   res <- devEval(type, name="multi", aspectRatio=2/3, {
  +     plot(1:10)
  +   })
  +   print(res)
  +   stopifnot(length(res) == length(unlist(strsplit(type, split=","))))
  +   stopifnot(all.equal(devList(), devList0))
  + }
  Device types: 
  character(0)
  Device types: 'png'
  [1] "figures/multi.png"
  Device types: 'jpg'
  [1] "figures/multi.jpg"
  Device types: 'nulldev'
  [1] "/dev/null"
  Device types: 'png', 'png', 'jpeg'
  $png
  [1] "figures/multi.png"
  
  $png
  [1] "figures/multi.png"
  
  $jpeg
  [1] "figures/multi.jpg"
  
  Device types: 'png,nulldev,pdf'
  $png
  [1] "figures/multi.png"
  
  $nulldev
  [1] "/dev/null"
  
  $pdf
  [1] "figures/multi.pdf"
  
  > 
  > # Sanity checks
  > print(devList())
  named integer(0)
  > stopifnot(length(devList()) == 0L)
  > 
  > message("*** devEval() - single and multiple device outputs ... DONE")
  *** devEval() - single and multiple device outputs ... DONE
  > 
  > 
  > # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  > # With 'initially' and 'finally' expression
  > # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  > message("*** devEval() - initially and finally ...")
  *** devEval() - initially and finally ...
  > 
  > devList0 <- devList()
  > devEval(c("png", "jpg"), name="count", {
  +   plot(1:10)
  +   count <- count + 1L
  + }, initially = {
  +   # Emulate an overhead
  +   cat("Initiate...")
  +   count <- 0L
  +   Sys.sleep(1)
  +   cat("done\n")
  + }, finally = {
  +   cat("Number of image files created: ", count, "\n", sep="")
  + })
  Initiate...done
  Number of image files created: 2
  $png
  [1] "figures/count.png"
  
  $jpeg
  [1] "figures/count.jpg"
  
  > stopifnot(all.equal(devList(), devList0))
  > 
  > # Sanity checks
  > print(devList())
  named integer(0)
  > stopifnot(length(devList()) == 0L)
  > 
  > message("*** devEval() - initially and finally ... DONE")
  *** devEval() - initially and finally ... DONE
  > 
  > 
  > # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  > # Try several devices until first successful device is found
  > # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  > message("*** devEval() - first successful device ...")
  *** devEval() - first successful device ...
  > 
  > types <- list(
  +   "png|jpg|pdf",               # PNG, JPG and then PDF
  +   "dummy|png|jpg|pdf",         # "Non-existing", PNG, JPG and then PDF
  +   "quartz|x11|windows",        # Any interactive device (depending on OS)
  +   c("png|jpg", "x11|windows"), # PNG or JPG and then x11 or windows
  +   "eps|postscript|pdf",        # EPS, Postscript or PDF
  +   "jpeg2|jpeg",                # JPEG via bitmap() or via jpeg()
  +   "png,jpg|x11|windows",       # == c("png", "jpg|x11|windows")
  +   "nulldev|jpeg"               # NULL devices, otherwise jpeg
  + )
  > 
  > if (!capabilitiesX11()) {
  +   message("Skipping test for X11")
  +   types <- lapply(types, FUN=function(x) gsub("x11|", "", x, fixed=TRUE))
  + }
  > 
  > devList0 <- devList()
  > 
  > for (type in types) {
  +   printf("Any of %s\n", paste(sQuote(type), collapse=" + "))
  + 
  +   # Use try-catch in case not supported on some test systems
  +   tryCatch({
  +     res <- devEval(type, name="any", aspectRatio=2/3, scale=1.2, {
  +       plot(100:1)
  +     })
  +     printf("Result: %s (%s)\n\n", sQuote(res), attr(res, "type"))
  + 
  +     if (length(devList()) > 0) devOff()
  +   }, error = function(ex) {
  +     printf("Failed: %s\n\n", sQuote(ex$message))
  +   })
  + } # for (type ...)
  Any of 'png|jpg|pdf'
  Any of 'dummy|png|jpg|pdf'
  Any of 'quartz|x11|windows'
  Failed: 'Failed to open graphics device: quartz'
  
  Any of 'png|jpg' + 'x11|windows'
  Any of 'eps|postscript|pdf'
  Any of 'jpeg2|jpeg'
  Any of 'png,jpg|x11|windows'
  
   *** caught segfault ***
  address f7fc6018, cause 'memory not mapped'
  
  Traceback:
   1: .External2(C_X11, d$display, d$width, d$height, d$pointsize,     d$gamma, d$colortype, d$maxcubesize, d$bg, d$canvas, d$fonts,     NA_integer_, d$xpos, d$ypos, d$title, type, antialias, d$family,     optionSymbolFont(d$symbolfamily))
   2: (function (display = "", width, height, pointsize, gamma, bg,     canvas, fonts, family, xpos, ypos, title, type, antialias,     symbolfamily, ...) {    if (display != "XImage") {        check <- Sys.getenv("_R_CHECK_SCREEN_DEVICE_", "")        msg <- "screen devices should not be used in examples etc"        if (identical(check, "stop"))             stop(msg, domain = NA)        else if (identical(check, "warn"))             warning(msg, immediate. = TRUE, noBreaks. = TRUE,                 domain = NA)    }    if (display == "" && .Platform$GUI == "AQUA" && is.na(Sys.getenv("DISPLAY",         NA)))         Sys.setenv(DISPLAY = ":0")    new <- list()    if (!missing(display))         new$display <- display    if (!missing(width))         new$width <- width    if (!missing(height))         new$height <- height    if (!missing(gamma))         new$gamma <- gamma    if (!missing(pointsize))         new$pointsize <- pointsize    if (!missing(bg))         new$bg <- bg    if (!missing(canvas))         new$canvas <- canvas    if (!missing(xpos))         new$xpos <- xpos    if (!missing(ypos))         new$ypos <- ypos    if (!missing(title))         new$title <- title    if (!checkIntFormat(new$title))         stop("invalid 'title'")    if (!missing(type)) {        new$type <- match.arg(type, c("Xlib", "cairo", "nbcairo",             "dbcairo"))        if (!capabilities("cairo") && type != "Xlib")             warning("cairo-based types are not supported on this build - using \"Xlib\"")    }    if (!missing(family))         new$family <- family    if (!missing(fonts))         new$fonts <- fonts    if (!missing(antialias) && type != "Xlib")         new$antialias <- match.arg(antialias, aa.cairo)    if (!missing(symbolfamily))         new$symbolfamily <- symbolfamily    d <- check.options(new, name.opt = ".X11.Options", envir = .X11env)    if (d$type == "Xlib" && !missing(family)) {        fns <- X11Fonts()        if (!family %in% names(fns))             stop("unknown family for X11(type = \"XLib\")")        d$fonts[1] <- fns[[family]]    }    type <- if (capabilities("cairo"))         switch(d$type, cairo = 1L, nbcairo = 2L, dbcairo = 3L,             0L)    else 0L    if (display == "XImage")         type <- 0L    antialias <- match(d$antialias, aa.cairo)    if (grepl("darwin", R.version$os))         check_for_XQuartz()    .External2(C_X11, d$display, d$width, d$height, d$pointsize,         d$gamma, d$colortype, d$maxcubesize, d$bg, d$canvas,         d$fonts, NA_integer_, d$xpos, d$ypos, d$title, type,         antialias, d$family, optionSymbolFont(d$symbolfamily))    invisible()})()
   3: do.call(typeT, args = args)
   4: devNew(type, which = fullname, ..., .allowUnknownArgs = .allowUnknownArgs)
   5: devEval(type = type, expr = expr, initially = NULL, finally = NULL,     envir = envir, name = nameOrg, tags = tags, sep = sep, ...,     ext = ext, filename = filename, path = path, field = field,     onIncomplete = onIncomplete, force = force, .exprAsIs = TRUE,     .allowUnknownArgs = TRUE)
   6: FUN(X[[i]], ...)
   7: lapply(types, FUN = function(type) {    devEval(type = type, expr = expr, initially = NULL, finally = NULL,         envir = envir, name = nameOrg, tags = tags, sep = sep,         ..., ext = ext, filename = filename, path = path, field = field,         onIncomplete = onIncomplete, force = force, .exprAsIs = TRUE,         .allowUnknownArgs = TRUE)})
   8: devEval(type, name = "any", aspectRatio = 2/3, scale = 1.2, {    plot(100:1)})
   9: doTryCatch(return(expr), name, parentenv, handler)
  10: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  11: tryCatchList(expr, classes, parentenv, handlers)
  12: tryCatch({    res <- devEval(type, name = "any", aspectRatio = 2/3, scale = 1.2,         {            plot(100:1)        })    printf("Result: %s (%s)\n\n", sQuote(res), attr(res, "type"))    if (length(devList()) > 0)         devOff()}, error = function(ex) {    printf("Failed: %s\n\n", sQuote(ex$message))})
  An irrecoverable exception occurred. R is aborting now ...