1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# 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.
if (!identical(tolower(Sys.getenv("TEST_R_WITHOUT_LIBARROW")), "true")) {
testthat::test_that("Arrow C++ is available", {
skip_on_cran()
expect_true(arrow_available())
})
}
test_that("Can't $new() an object with anything other than a pointer", {
expect_error(
Array$new(1:5),
"Array$new() requires a pointer as input: did you mean $create() instead?",
fixed = TRUE
)
})
r_only({
test_that("assert_is", {
x <- 42
expect_true(assert_is(x, "numeric"))
expect_true(assert_is(x, c("numeric", "character")))
expect_error(assert_is(x, "factor"), 'x must be a "factor"')
expect_error(
assert_is(x, c("factor", "list")),
'x must be a "factor" or "list"'
)
expect_error(
assert_is(x, c("factor", "character", "list")),
'x must be a "factor", "character", or "list"'
)
})
})
test_that("arrow gracefully fails to load objects from other sessions (ARROW-10071)", {
a <- Array$create(1:10)
tf <- tempfile()
on.exit(unlink(tf))
saveRDS(a, tf)
b <- readRDS(tf)
expect_error(b$length(), "Invalid <Array>")
})
test_that("check for an ArrowObject in functions use std::shared_ptr", {
expect_error(Array__length(1), "Invalid R object")
})
test_that("MemoryPool calls gc() to free memory when allocation fails (ARROW-10080)", {
# There is a valgrind error on this test because there cannot be memory allocated
# which is exactly what this test is checking, but we quiet this
skip_on_valgrind()
env <- new.env()
suppressMessages(trace(gc, print = FALSE, tracer = function() {
env$gc_was_called <- TRUE
}))
on.exit(suppressMessages(untrace(gc)))
# We expect this should fail because we don't have this much memory,
# but it should gc() and retry (and fail again)
expect_error(BufferOutputStream$create(2**60))
expect_true(env$gc_was_called)
})
|