Skip to content

Commit 1cb93b5

Browse files
committed
add tests to check that void functions return invisibly
1 parent dfa585d commit 1cb93b5

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

inst/tinytest/test_module.R

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,25 @@ if( ! Rcpp:::capabilities()[["Rcpp modules"]] ) exit_file("Skipping as no Module
2222

2323
Rcpp::sourceCpp("cpp/Module.cpp")
2424

25+
# checks the presence of "invisible", added when the function returns void
26+
is_void <- function(call) {
27+
if (length(grep("invisible", deparse(call))) == 0)
28+
return(FALSE)
29+
return(TRUE)
30+
}
31+
2532
# test.Module <- function(){
2633
expect_equal( bar( 2L ), 4L )
2734
expect_equal( foo( 2L, 10.0 ), 20.0 )
2835
expect_equal( hello(), "hello" )
2936

37+
expect_false(is_void(bar@.Data))
38+
expect_false(is_void(foo@.Data))
39+
expect_false(is_void(hello@.Data))
40+
expect_true(is_void(bla@.Data))
41+
expect_true(is_void(bla1@.Data))
42+
expect_true(is_void(bla2@.Data))
43+
3044
w <- new( ModuleWorld )
3145
expect_equal( w$greet(), "hello" )
3246
w$set( "hello world" )
@@ -38,13 +52,24 @@ expect_equal( w$greet(), "hello world const ref" )
3852
w$clear( )
3953
expect_equal( w$greet(), "" )
4054

55+
expect_false(is_void(w$greet))
56+
expect_true(is_void(w$set))
57+
expect_true(is_void(w$set_ref))
58+
expect_true(is_void(w$set_const_ref))
59+
expect_true(is_void(w$clear))
60+
4161
# test.Module.exposed.class <- function(){
4262
test <- new( ModuleTest, 3.0 )
4363
expect_equal( Test_get_x_const_ref(test), 3.0 )
4464
expect_equal( Test_get_x_const_pointer(test), 3.0 )
4565
expect_equal( Test_get_x_ref(test), 3.0 )
4666
expect_equal( Test_get_x_pointer(test), 3.0 )
4767

68+
expect_false(is_void(Test_get_x_const_ref@.Data))
69+
expect_false(is_void(Test_get_x_const_pointer@.Data))
70+
expect_false(is_void(Test_get_x_ref@.Data))
71+
expect_false(is_void(Test_get_x_pointer@.Data))
72+
4873
expect_equal( attr_Test_get_x_const_ref(test), 3.0 )
4974
expect_equal( attr_Test_get_x_const_pointer(test), 3.0 )
5075
expect_equal( attr_Test_get_x_ref(test), 3.0 )

0 commit comments

Comments
 (0)