Nothing
test_that("backport_linter produces error when R version misspecified", {
expect_error(
lint(text = "numToBits(2)", linters = backport_linter(420L)),
"`r_version` must be a R version number, returned by R_system_version(), or a string.",
fixed = TRUE
)
})
test_that("backport_linter detects backwards-incompatibility", {
# default should be current R version; all of these are included on our dependency
expect_lint(".getNamespaceInfo(dir.exists(lapply(x, toTitleCase)))", NULL, backport_linter())
expect_lint(".getNamespaceInfo(dir.exists(lapply(x, toTitleCase)))", NULL, backport_linter("release"))
expect_lint(".getNamespaceInfo(dir.exists(lapply(x, toTitleCase)))", NULL, backport_linter("devel"))
expect_lint(
"numToBits(2)",
rex::rex("numToBits (R 4.1.0) is not available for dependency R >= 4.0.0."),
backport_linter("4.0.0")
)
# symbols as well as calls
expect_lint(
"lapply(1:10, numToBits)",
rex::rex("numToBits (R 4.1.0) is not available for dependency R >= 4.0.0."),
backport_linter("4.0.0")
)
expect_lint(
"trimws(...names())",
list(
rex::rex("trimws (R 3.2.0) is not available for dependency R >= 3.0.0."),
rex::rex("...names (R 4.1.0) is not available for dependency R >= 3.0.0.")
),
backport_linter("3.0.0")
)
# oldrel specification
expect_lint(
".pretty(2)",
rex::rex(".pretty (R 4.2.0) is not available for dependency R >= 4.1.3."),
backport_linter("oldrel")
)
expect_error(backport_linter("oldrel-99"), "`r_version` must be a version number or one of")
expect_lint(
"numToBits(2)",
rex::rex("numToBits (R 4.1.0) is not available for dependency R >= 3.6.3."),
backport_linter("oldrel-3")
)
# except is honored
expect_lint(
trim_some("
numToBits(2)
R_user_dir('mypkg')
"),
NULL,
backport_linter("3.0.0", except = c("numToBits", "R_user_dir"))
)
})
test_that("backport_linter generates expected warnings", {
tmp <- withr::local_tempfile(lines = "x <- x + 1")
expect_warning(
{
l <- lint(tmp, backport_linter("2.0.0"))
},
"version older than 3.0.0",
fixed = TRUE
)
expect_identical(l, lint(tmp, backport_linter("3.0.0")))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.