[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