Nothing
test_that("clusterFunctions constructor", {
check = function(cf) {
expect_is(cf, "ClusterFunctions")
expect_set_equal(names(cf), c("name", "submitJob", "killJob", "listJobsQueued", "listJobsRunning",
"store.job.collection", "store.job.files", "array.var", "scheduler.latency", "fs.latency", "hooks"))
expect_output(print(cf), "ClusterFunctions for mode")
}
reg = makeTestRegistry()
check(reg$cluster.functions)
fn = fs::path(fs::path_temp(), "dummy.tmpl")
writeLines("foo", fn)
check(makeClusterFunctionsInteractive())
check(makeClusterFunctionsSGE(template = fn))
check(makeClusterFunctionsTORQUE(template = fn))
check(makeClusterFunctionsSlurm(template = fn))
check(makeClusterFunctionsOpenLava(template = fn))
check(makeClusterFunctionsLSF(template = fn))
check(makeClusterFunctionsTORQUE("torque-lido"))
check(makeClusterFunctionsSlurm("slurm-dortmund"))
check(makeClusterFunctionsDocker("image"))
expect_error(makeClusterFunctionsLSF(), "point to a readable template file")
skip_on_os(c("windows", "solaris")) # system2 is broken on solaris
check(makeClusterFunctionsSSH(workers = list(Worker$new(nodename = "localhost", ncpus = 1L))))
})
test_that("submitJobResult", {
x = makeSubmitJobResult(0, 99)
expect_is(x, "SubmitJobResult")
expect_identical(x$status, 0L)
expect_identical(x$batch.id, 99)
expect_identical(x$msg, "OK")
x = makeSubmitJobResult(1, 99)
expect_is(x, "SubmitJobResult")
expect_identical(x$msg, "TEMPERROR")
x = makeSubmitJobResult(101, 99)
expect_is(x, "SubmitJobResult")
expect_identical(x$msg, "ERROR")
expect_output(print(x), "submission result")
x = cfHandleUnknownSubmitError(cmd = "ls", exit.code = 42L, output = "answer to life")
expect_is(x, "SubmitJobResult")
expect_true(all(stri_detect_fixed(x$msg, c("ls", "42", "answer to life"))))
})
test_that("brew", {
fn = fs::file_temp()
lines = c("####", " ", "!!!", "foo=<%= job.hash %>")
writeLines(lines, fn)
res = stri_split_fixed(cfReadBrewTemplate(fn), "\n")[[1]]
assertCharacter(res, len = 3)
expect_equal(sum(stri_detect_fixed(res, "job.hash")), 1)
res = stri_split_fixed(cfReadBrewTemplate(fn, comment.string = "###"), "\n")[[1]]
assertCharacter(res, len = 2)
expect_equal(sum(stri_detect_fixed(res, "job.hash")), 1)
reg = makeTestRegistry()
ids = batchMap(identity, 1:2, reg = reg)
jc = makeJobCollection(1, reg = reg)
text = cfReadBrewTemplate(fn, comment.string = "###")
fn = cfBrewTemplate(text = text, jc = jc, reg = reg)
brewed = readLines(fn)
expect_equal(brewed[1], "!!!")
expect_equal(brewed[2], sprintf("foo=%s", jc$job.hash))
fs::file_delete(fn)
})
test_that("Special chars in directory names", {
reg = makeTestRegistry()
base.dir = fs::file_temp(pattern = "test", tmp_dir = fs::path_dir(reg$file.dir))
fs::dir_create(base.dir)
file.dir = fs::path(base.dir, "test#some_frequently-used chars")
reg = makeTestRegistry(file.dir = file.dir)
batchMap(identity, 1:2, reg = reg)
submitAndWait(reg = reg)
Sys.sleep(0.2)
expect_equal(reduceResultsList(reg = reg), list(1L, 2L))
expect_equal(testJob(1, external = FALSE, reg = reg), 1L)
})
test_that("Export of environment variable DEBUGME", {
reg = makeTestRegistry()
if (reg$cluster.functions$name == "Socket")
skip("Environment variables not exported for CF socket")
batchMap(function(i) Sys.getenv("DEBUGME"), i = 1, reg = reg)
withr::local_envvar(c("DEBUGME" = "grepme"))
submitAndWait(reg, 1)
res = loadResult(1, reg = reg)
expect_string(res, min.chars = 1, fixed = "grepme")
})
test_that("findTemplateFile", {
d = fs::path_temp()
fn = fs::path(d, "batchtools.slurm.tmpl")
fs::file_create(fn)
withr::with_envvar(list(R_BATCHTOOLS_SEARCH_PATH = d),
expect_equal(findTemplateFile("slurm"), fs::path_abs(fn))
)
fs::file_delete(fn)
})
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.