Skip to content

Commit

Permalink
updated unit tests to work in tempdir
Browse files Browse the repository at this point in the history
  • Loading branch information
mllg committed Jun 27, 2014
1 parent 03bdcf6 commit 1b0b7cc
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 55 deletions.
62 changes: 24 additions & 38 deletions tests/testthat/helpers.R
Expand Up @@ -10,53 +10,39 @@ conf$max.concurrent.jobs = Inf
setConfig(conf = conf)
rm(conf)


cleanup = function() {
dir = "unittests-files"
if (!file.exists(dir))
return(TRUE)

i = 1L
repeat {
if(unlink(dir, recursive=TRUE) == 0L)
return(TRUE)
if (i == 6L)
return(FALSE)

i = i + 1L
Sys.sleep(5)
}
getWorkDir = function() {
work.dir = "unittests-files"
# if env var is set we do the tests in the current wd,
# if not, we do everything in a subdir of tempdir()
# required for debians autopkgtest
if (isExpensiveExampleOk())
file.path(getwd(), work.dir)
else
file.path(tempdir(), work.dir)
}

tf = function() {
file.path("unittests-files", basename(tempfile("unittest")))
getTempDir = function() {
file.path(getWorkDir(), basename(tempfile("tmp")))
}

makeTestRegistry = function(packages=character(0L), ...) {
fd = tf()
rd = file.path(fd, "registry")
dir.create(fd, recursive=TRUE, showWarning=FALSE)
work.dir = getWorkDir()
file.dir = getTempDir()
dir.create(file.dir, recursive=TRUE, showWarning=FALSE)
makeRegistry(
id = "unittests",
seed = 1,
seed = 1L,
packages=packages,
file.dir=rd,
work.dir="unittests-files",
file.dir=file.dir,
work.dir=work.dir,
...
)
}

stopifnot(cleanup())

# overloaded.index.obj = list(els = 3:1)
# class(overloaded.index.obj) = "OverloadedIndex"
#
# length.OverloadedIndex = function(x) length(x$els)
#
# `[.OverloadedIndex` = function(x, ..., drop = TRUE) {
# x$els[...]
# }
#
# `[[.OverloadedIndex` = function(x, ..., drop = TRUE) {
# x$els[[...]]
# }
# cleanup stray files
cleanup = function() {
unittests.dir = getWorkDir()
if (file.exists(unittests.dir))
return(unlink(unittests.dir, recursive = TRUE) == 0L)
return(TRUE)
}
12 changes: 6 additions & 6 deletions tests/testthat/test_batchMapQuick.R
@@ -1,35 +1,35 @@
context("batchMapQuick")

test_that("batchMapQuick", {
reg = batchMapQuick(function(x) x^2, 1:3, file.dir = tf())
reg = batchMapQuick(function(x) x^2, 1:3, file.dir = getTempDir())
waitForJobs(reg)
y = sapply(getJobIds(reg), function(id) loadResult(reg, id))
expect_equal(y, (1:3)^2, check.attributes = FALSE)

reg = batchMapQuick(function(x,y,z) (x+y)*z, 1:3, 4:6, more.args = list(z = 2), file.dir = tf())
reg = batchMapQuick(function(x,y,z) (x+y)*z, 1:3, 4:6, more.args = list(z = 2), file.dir = getTempDir())
waitForJobs(reg)
y = sapply(getJobIds(reg), function(id) loadResult(reg, id))
expect_equal(y, ((1:3) + (4:6))*2, check.attributes = FALSE)

reg = batchMapQuick(identity, 1:3, packages = "MASS", chunk.size = 2, file.dir = tf())
reg = batchMapQuick(identity, 1:3, packages = "MASS", chunk.size = 2, file.dir = getTempDir())
waitForJobs(reg)
y = sapply(getJobIds(reg), function(id) loadResult(reg, id))
expect_equal(y, 1:3, check.attributes = FALSE)

reg = batchMapQuick(identity, 1:3, inds = c(1,3), file.dir = tf())
reg = batchMapQuick(identity, 1:3, inds = c(1,3), file.dir = getTempDir())
waitForJobs(reg)
expect_equal(findDone(reg), c(1,3))
y = sapply(c(1,3), function(id) loadResult(reg, id))
expect_equal(y, c(1,3), check.attributes = FALSE)

reg = batchMapQuick(identity, file.dir = tf())
reg = batchMapQuick(identity, file.dir = getTempDir())
waitForJobs(reg)
expect_equal(getJobNr(reg), 0L)
})

test_that("batchMapQuick chunks properly", {
expect_message({
reg = batchMapQuick(identity, 1:4, chunk.size = 2, file.dir = tf())
reg = batchMapQuick(identity, 1:4, chunk.size = 2, file.dir = getTempDir())
}, "Submitting 2 chunks / 4 jobs")
waitForJobs(reg)
})
6 changes: 3 additions & 3 deletions tests/testthat/test_batchMapResults.R
Expand Up @@ -6,22 +6,22 @@ test_that("batchMapResults", {
submitJobs(reg)
waitForJobs(reg)

td = tf()
td = getTempDir()
reg2 = makeRegistry(id="foo", file.dir = td)
batchMapResults(reg, reg2, fun=function(job, res, y, z) (res+y)*z, 4:6, more.args=list(z=2))
submitJobs(reg2)
waitForJobs(reg2)
expect_equal(loadResults(reg2, use.names="none", simplify=TRUE), ((1:3)^2 + (4:6))*2)

td = tf()
td = getTempDir()
reg2 = makeRegistry(id="foo", file.dir = td)
ids = getJobIds(reg)
batchMapResults(reg, reg2, function(job, res, y, z) (res+y)*z, 5:6, ids=ids[2:3], more.args=list(z=2))
submitJobs(reg2)
waitForJobs(reg2)
expect_equal(loadResults(reg2, use.names="none", simplify=TRUE), ((2:3)^2 + (5:6))*2)

td = tf()
td = getTempDir()
reg2 = makeRegistry(id="foo", file.dir = td)
batchMapResults(reg, reg2, function(job, res, ...) res, ids = integer(0L))
})
7 changes: 3 additions & 4 deletions tests/testthat/test_batchReduceResults.R
Expand Up @@ -6,7 +6,7 @@ test_that("batchReduceResults", {
submitJobs(reg)
waitForJobs(reg)

td = tf()
td = getTempDir()
reg2 = makeRegistry(id="foo", file.dir=td)
batchReduceResults(reg, reg2, block.size=3, init=c(),
fun=function(aggr, job, res) c(aggr, res))
Expand All @@ -15,7 +15,7 @@ test_that("batchReduceResults", {
expect_equal(loadResult(reg2, getJobIds(reg)[1]), (1:3)^2, check.names=FALSE)
expect_equal(loadResult(reg2, getJobIds(reg)[2]), (4:5)^2, check.names=FALSE)

td = tf()
td = getTempDir()
reg2 = makeRegistry(id="foo", file.dir=td)
ids = getJobIds(reg)
batchReduceResults(reg, reg2, ids=ids[2:4], block.size=2, init=c(),
Expand All @@ -25,8 +25,7 @@ test_that("batchReduceResults", {
expect_equal(loadResult(reg2, getJobIds(reg)[1]), (2:3)^2, check.names=FALSE)
expect_equal(loadResult(reg2, getJobIds(reg)[2]), (4)^2, check.names=FALSE)

td = tf()
td = getTempDir()
reg2 = makeRegistry(id="foo", file.dir=td)
expect_equal(batchReduceResults(reg, reg2, ids = integer(0L), block.size=2, init=c(), fun=function(aggr, job, res) c(aggr, res)), integer(0L))

})
8 changes: 4 additions & 4 deletions tests/testthat/test_sourceRegistryFiles.R
Expand Up @@ -2,10 +2,10 @@ context("source registry files")

test_that("source registry files", {
reg = makeTestRegistry()
p = tf()
p = getTempDir()
dir.create(p, recursive=TRUE)
cat("xxx = 123", file = file.path(p, "test.R"))
reg = makeTestRegistry(src.dir=file.path("..", p))
reg = makeTestRegistry(src.dir=p)

expect_true(exists("xxx", envir=.GlobalEnv))

Expand All @@ -19,10 +19,10 @@ test_that("source registry files", {
res = loadResults(reg, simplify=TRUE, use.names="none")
expect_equal(res, 123 + 1:3)

p = tf()
p = getTempDir()
dir.create(p, recursive=TRUE)
cat("xxx = 123", file = file.path(p, "test.R"))
reg = makeTestRegistry(src.files=file.path("..", p, "test.R"))
reg = makeTestRegistry(src.files=file.path(p, "test.R"))
expect_true(exists("xxx", envir=.GlobalEnv))

rm(list = "xxx", envir=.GlobalEnv)
Expand Down

0 comments on commit 1b0b7cc

Please sign in to comment.