-
Shivaram Venkataraman authored
## What changes were proposed in this pull request? This change exposes a public API in SparkR to create objects, call methods on the Spark driver JVM ## How was this patch tested? (Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests) Unit tests, CRAN checks Author: Shivaram Venkataraman <shivaram@cs.berkeley.edu> Closes #14775 from shivaram/sparkr-java-api.
Shivaram Venkataraman authored## What changes were proposed in this pull request? This change exposes a public API in SparkR to create objects, call methods on the Spark driver JVM ## How was this patch tested? (Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests) Unit tests, CRAN checks Author: Shivaram Venkataraman <shivaram@cs.berkeley.edu> Closes #14775 from shivaram/sparkr-java-api.
test_jvm_api.R 1.49 KiB
#
# 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.
#
context("JVM API")
sparkSession <- sparkR.session(enableHiveSupport = FALSE)
test_that("Create and call methods on object", {
jarr <- newJObject("java.util.ArrayList")
# Add an element to the array
callJMethod(jarr, "add", 1L)
# Check if get returns the same element
expect_equal(callJMethod(jarr, "get", 0L), 1L)
})
test_that("Call static methods", {
# Convert a boolean to a string
strTrue <- callJStatic("java.lang.String", "valueOf", TRUE)
expect_equal(strTrue, "true")
})
test_that("Manually garbage collect objects", {
jarr <- newJObject("java.util.ArrayList")
cleanup.jobj(jarr)
# Using a jobj after GC should throw an error
expect_error(print(jarr), "Error in invokeJava.*")
})
sparkR.session.stop()