tests/testthat/test-rcmd-process.R

test_that("create and run rcmd_process", {
  opts <- rcmd_process_options(cmd = "config", cmdargs = "CC")
  x <- rcmd_process$new(opts)
  x$wait()
  expect_equal(x$get_exit_status(), 0)
  out <- x$read_output_lines()
  expect_match(out, ".")
  rm(x)
  gc()
})

test_that("cleans up temp files", {

  skip_on_cran()

  rc <- function() {
    library(callr)
    scriptfile <- tempfile(fileext = ".R")

    old <- dir(tempdir(), pattern = "^callr-")

    rp <- rcmd_bg("config", "CC")
    on.exit(tryCatch(rp$kill, error = function(e) NULL), add = TRUE)
    rp$wait(5000)
    result <- rp$get_exit_status()
    rp$kill()

    rm(rp)
    gc()
    gc()
    new <- setdiff(dir(tempdir(), "^callr-"), old)

    list(result = result, new = new)
  }

  out <- r(rc)
  expect_identical(out$result, 0L)
  expect_identical(out$new, character())
})
MangoTheCat/callr documentation built on March 26, 2024, 11:23 a.m.