298d0a5102
### What changes were proposed in this pull request? - Update `testthat` to >= 2.0.0 - Replace of `testthat:::run_tests` with `testthat:::test_package_dir` - Add trivial assertions for tests, without any expectations, to avoid skipping. - Update related docs. ### Why are the changes needed? `testthat` version has been frozen by [SPARK-22817](https://issues.apache.org/jira/browse/SPARK-22817) / https://github.com/apache/spark/pull/20003, but 1.0.2 is pretty old, and we shouldn't keep things in this state forever. ### Does this PR introduce any user-facing change? No. ### How was this patch tested? - Existing CI pipeline: - Windows build on AppVeyor, R 3.6.2, testthtat 2.3.1 - Linux build on Jenkins, R 3.1.x, testthat 1.0.2 - Additional builds with thesthat 2.3.1 using [sparkr-build-sandbox](https://github.com/zero323/sparkr-build-sandbox) on c7ed64af9e697b3619779857dd820832176b3be3 R 3.4.4 (image digest ec9032f8cf98) ``` docker pull zero323/sparkr-build-sandbox:3.4.4 docker run zero323/sparkr-build-sandbox:3.4.4 zero323 --branch SPARK-23435 --commit c7ed64af9e697b3619779857dd820832176b3be3 --public-key https://keybase.io/zero323/pgp_keys.asc ``` 3.5.3 (image digest 0b1759ee4d1d) ``` docker pull zero323/sparkr-build-sandbox:3.5.3 docker run zero323/sparkr-build-sandbox:3.5.3 zero323 --branch SPARK-23435 --commit c7ed64af9e697b3619779857dd820832176b3be3 --public-key https://keybase.io/zero323/pgp_keys.asc ``` and 3.6.2 (image digest 6594c8ceb72f) ``` docker pull zero323/sparkr-build-sandbox:3.6.2 docker run zero323/sparkr-build-sandbox:3.6.2 zero323 --branch SPARK-23435 --commit c7ed64af9e697b3619779857dd820832176b3be3 --public-key https://keybase.io/zero323/pgp_keys.asc ```` Corresponding [asciicast](https://asciinema.org/) are available as 10.5281/zenodo.3629431 [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3629431.svg)](https://doi.org/10.5281/zenodo.3629431) (a bit to large to burden asciinema.org, but can run locally via `asciinema play`). ---------------------------- Continued from #27328 Closes #27359 from zero323/SPARK-23435. Authored-by: zero323 <mszymkiewicz@gmail.com> Signed-off-by: HyukjinKwon <gurwls223@apache.org>
84 lines
2.8 KiB
R
84 lines
2.8 KiB
R
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
# contributor license agreements. See the NOTICE file distributed with
|
|
# this work for additional information regarding copyright ownership.
|
|
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
# (the "License"); you may not use this file except in compliance with
|
|
# the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
library(testthat)
|
|
library(SparkR)
|
|
|
|
# SPARK-25572
|
|
if (identical(Sys.getenv("NOT_CRAN"), "true")) {
|
|
# Turn all warnings into errors
|
|
options("warn" = 2)
|
|
|
|
if (.Platform$OS.type == "windows") {
|
|
Sys.setenv(TZ = "GMT")
|
|
}
|
|
|
|
# Setup global test environment
|
|
# Install Spark first to set SPARK_HOME
|
|
|
|
# NOTE(shivaram): We set overwrite to handle any old tar.gz files or directories left behind on
|
|
# CRAN machines. For Jenkins we should already have SPARK_HOME set.
|
|
install.spark(overwrite = TRUE)
|
|
|
|
sparkRDir <- file.path(Sys.getenv("SPARK_HOME"), "R")
|
|
sparkRWhitelistSQLDirs <- c("spark-warehouse", "metastore_db")
|
|
invisible(lapply(sparkRWhitelistSQLDirs,
|
|
function(x) { unlink(file.path(sparkRDir, x), recursive = TRUE, force = TRUE)}))
|
|
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")
|
|
|
|
if (identical(Sys.getenv("NOT_CRAN"), "true")) {
|
|
# set random seed for predictable results. mostly for base's sample() in tree and classification
|
|
set.seed(42)
|
|
|
|
# TODO (SPARK-30663) To be removed once testthat 1.x is removed from all builds
|
|
if (grepl("^1\\..*", packageVersion("testthat"))) {
|
|
# testthat 1.x
|
|
test_runner <- testthat:::run_tests
|
|
reporter <- "summary"
|
|
|
|
} else {
|
|
# testthat >= 2.0.0
|
|
test_runner <- testthat:::test_package_dir
|
|
reporter <- testthat::default_reporter()
|
|
}
|
|
|
|
test_runner("SparkR",
|
|
file.path(sparkRDir, "pkg", "tests", "fulltests"),
|
|
NULL,
|
|
reporter)
|
|
}
|
|
|
|
SparkR:::uninstallDownloadedSpark()
|
|
|
|
}
|