context("coverage of parallel code")
test_that("mcparallel without the fix", {
skip_on_os("windows")
cov <- withr::with_options(list(covr.fix_parallel_mcexit = FALSE),
package_coverage("TestParallel", type = "test"))
# only the non parallel code is covered
expect_equal(floor(percent_coverage(cov)), 33)
})
test_that("mcparallel with the fix", {
skip_on_os("windows")
# using auto detection
cov <- package_coverage("TestParallel", type = "test")
# only the non parallel code is covered
expect_equal(percent_coverage(cov), 100)
})
test_that("uses_parallel", {
pkg <- covr:::as_package("TestParallel")
expect_true(covr:::uses_parallel(pkg))
pkg <- covr:::as_package("TestSummary")
expect_false(covr:::uses_parallel(pkg))
})
test_that("should_enable_parallel_mcexit_fix", {
skip_on_os("windows")
on.exit({
Sys.unsetenv('COVR_FIX_PARALLEL_MCEXIT')
options(covr.fix_parallel_mcexit = NULL)
}, add = TRUE
)
grid <- expand.grid(
var = c(NA, TRUE, FALSE),
option = c(NA, TRUE, FALSE),
pkg = c("TestParallel", "TestSummary"), stringsAsFactors = FALSE)
grid$res <- with(grid, ifelse(!is.na(var),
var,
ifelse(!is.na(option), option, pkg == "TestParallel")
))
.test_config <- function(var, option, pkgname) {
if (is.na(var))
Sys.unsetenv('COVR_FIX_PARALLEL_MCEXIT')
else
Sys.setenv(COVR_FIX_PARALLEL_MCEXIT = var)
if (is.na(option))
options(covr.fix_parallel_mcexit = NULL)
else
options(covr.fix_parallel_mcexit = option)
pkg <- covr:::as_package(pkgname)
covr:::should_enable_parallel_mcexit_fix(pkg)
}
res <- with(grid, vapply(1:nrow(grid),
function(i) .test_config(var[i], option[i], pkg[i]), TRUE))
expect_identical(res, grid$res)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.