[rkward-cvs] SF.net SVN: rkward:[3124] trunk/rkward/rkward/rbackend/rpackages/ rkwardtests/R/rkwardtests-internal.R
m-eik at users.sourceforge.net
m-eik at users.sourceforge.net
Thu Oct 14 14:54:41 UTC 2010
Revision: 3124
http://rkward.svn.sourceforge.net/rkward/?rev=3124&view=rev
Author: m-eik
Date: 2010-10-14 14:54:41 +0000 (Thu, 14 Oct 2010)
Log Message:
-----------
rkwardtests: first internal helper functions for temp dirs (working, yet unused).
Modified Paths:
--------------
trunk/rkward/rkward/rbackend/rpackages/rkwardtests/R/rkwardtests-internal.R
Modified: trunk/rkward/rkward/rbackend/rpackages/rkwardtests/R/rkwardtests-internal.R
===================================================================
--- trunk/rkward/rkward/rbackend/rpackages/rkwardtests/R/rkwardtests-internal.R 2010-10-14 12:17:43 UTC (rev 3123)
+++ trunk/rkward/rkward/rbackend/rpackages/rkwardtests/R/rkwardtests-internal.R 2010-10-14 14:54:41 UTC (rev 3124)
@@ -187,8 +187,6 @@
assign(".rk.output.html.file", x, as.environment("package:rkward"))
}
}
-## moved this into rktest.makeplugintests()
-#rktest.initializeEnvironment ()
# counterpart to rktest.initializeEnvironment. Restores the most important settings
rktest.resetEnvironment <- function () {
@@ -201,3 +199,56 @@
envir=globalenv())
rm(".rktest.tmp.dump", envir=globalenv())
}
+
+## handling of temporary directories
+# get the path to the recent temporary directory, if exists
+rktest.getTempDir <- function(){
+ if(exists(".rktest.temp.dir", where=globalenv())){
+ temp.dir <- get(".rktest.temp.dir", pos=globalenv())
+ if(file_test("-d", temp.dir)) {
+ return(temp.dir)
+ }
+ else {
+ return(FALSE)
+ }
+ }
+ else {
+ return(FALSE)
+ }
+}
+
+# create a temporary directory for the test results
+# the path to it will be stored in an object in globalenv() and returned
+rktest.createTempDir <- function(){
+ temp.dir <- rktest.getTempDir()
+ # if a temp.dir already exists, we will use it!
+ if(is.character(temp.dir)){
+ return(temp.dir)
+ } else{}
+ new.temp.dir <- tempfile("rktests.")
+ # to be sure path is treated as a directory, add a trailing slash if omitted
+ if(length(grep("/$", new.temp.dir)) == 0)
+ new.temp.dir <- paste(new.temp.dir,"/", sep="")
+
+ if(!dir.create(new.temp.dir, recursive=TRUE)) {
+ stop(simpleError("Couldn't create temporary directory!"))
+ }
+ else {
+ assign(".rktest.temp.dir", new.temp.dir, envir=globalenv())
+ return(new.temp.dir)
+ }
+}
+
+# remove the temporary directory that is defined in globalenv()
+rktest.removeTempDir <- function(){
+ temp.dir <- rktest.getTempDir()
+ if(is.character(temp.dir)){
+ unlink(temp.dir, recursive=TRUE)
+ # should the function stop here if unlink() failed?
+ rm(".rktest.temp.dir", envir=globalenv())
+ return(TRUE)
+ }
+ else {
+ return(FALSE)
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the rkward-tracker
mailing list