Skip to content

Commit

Permalink
[SPARK-22344][SPARKR] Set java.io.tmpdir for SparkR tests
Browse files Browse the repository at this point in the history
This PR sets the java.io.tmpdir for CRAN checks and also disables the hsperfdata for the JVM when running CRAN checks. Together this prevents files from being left behind in `/tmp`

## How was this patch tested?
Tested manually on a clean EC2 machine

Author: Shivaram Venkataraman <shivaram@cs.berkeley.edu>

Closes #19589 from shivaram/sparkr-tmpdir-clean.
  • Loading branch information
shivaram committed Oct 30, 2017
1 parent 659acf1 commit 1fe2761
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 3 deletions.
6 changes: 4 additions & 2 deletions R/pkg/inst/tests/testthat/test_basic.R
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
context("basic tests for CRAN")

test_that("create DataFrame from list or data.frame", {
sparkR.session(master = sparkRTestMaster, enableHiveSupport = FALSE)
sparkR.session(master = sparkRTestMaster, enableHiveSupport = FALSE,
sparkConfig = sparkRTestConfig)

i <- 4
df <- createDataFrame(data.frame(dummy = 1:i))
Expand Down Expand Up @@ -49,7 +50,8 @@ test_that("create DataFrame from list or data.frame", {
})

test_that("spark.glm and predict", {
sparkR.session(master = sparkRTestMaster, enableHiveSupport = FALSE)
sparkR.session(master = sparkRTestMaster, enableHiveSupport = FALSE,
sparkConfig = sparkRTestConfig)

training <- suppressWarnings(createDataFrame(iris))
# gaussian family
Expand Down
9 changes: 9 additions & 0 deletions R/pkg/tests/run-all.R
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,17 @@ invisible(lapply(sparkRWhitelistSQLDirs,
sparkRFilesBefore <- list.files(path = sparkRDir, all.files = TRUE)

sparkRTestMaster <- "local[1]"
sparkRTestConfig <- list()
if (identical(Sys.getenv("NOT_CRAN"), "true")) {
sparkRTestMaster <- ""
} else {
# Disable hsperfdata on CRAN
old_java_opt <- Sys.getenv("_JAVA_OPTIONS")
Sys.setenv("_JAVA_OPTIONS" = paste("-XX:-UsePerfData", old_java_opt))
tmpDir <- tempdir()
tmpArg <- paste0("-Djava.io.tmpdir=", tmpDir)
sparkRTestConfig <- list(spark.driver.extraJavaOptions = tmpArg,
spark.executor.extraJavaOptions = tmpArg)
}

test_package("SparkR")
Expand Down
8 changes: 7 additions & 1 deletion R/pkg/vignettes/sparkr-vignettes.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ opts_hooks$set(eval = function(options) {
}
options
})
r_tmp_dir <- tempdir()
tmp_arg <- paste("-Djava.io.tmpdir=", r_tmp_dir, sep = "")
sparkSessionConfig <- list(spark.driver.extraJavaOptions = tmp_arg,
spark.executor.extraJavaOptions = tmp_arg)
old_java_opt <- Sys.getenv("_JAVA_OPTIONS")
Sys.setenv("_JAVA_OPTIONS" = paste("-XX:-UsePerfData", old_java_opt, sep = " "))
```

## Overview
Expand All @@ -57,7 +63,7 @@ We use default settings in which it runs in local mode. It auto downloads Spark

```{r, include=FALSE}
install.spark()
sparkR.session(master = "local[1]")
sparkR.session(master = "local[1]", sparkConfig = sparkSessionConfig, enableHiveSupport = FALSE)
```
```{r, eval=FALSE}
sparkR.session()
Expand Down

0 comments on commit 1fe2761

Please sign in to comment.