Dear all,
I'm working on a package that includes a unit test that calls
sourceCpp() to test a particular use-case. As in [1], test(".") works
swimmingly, but check() and vanilla "R CMD check" fail with the
ominous error "cannot open file 'startup.Rs': No such file or
directory". If I understand correctly, Dirk and Hadley agree [1] that
this is R's fault, apparently through the nested "R CMD" calls [1,
2]. Indeed, sourceCpp() includes calls to both "R CMD" and setwd(),
while cppFunction() and evalCpp() both call sourceCpp().
I realize that calling sourceCpp() in a package isn't exactly
standard. The tested use-case is allowing a package user to easily
write custom C++ functions via sourceCpp("userfile.cpp"). These
functions are then passed to a class method and used internally by
dereferencing and evaluating the XPtr. I've provided a working example
of "userfile.cpp" that a user can copy and extend. Consequently, I
would like some way to test the full process of
write-compile-pass-call.
My question is whether there's a sane workaround, or if I should give
up on these tests. Alternately, is there a cleaner way for a user to
supply hand-written C++ functions? Using sourceCpp() allows the user
to locally manage custom functions without building a package, and
ensures that user edits aren't overwritten by a package upgrade.
I'm happy to poke, but I'm not sure where to go from here.
Thanks again,
Christian
Refs:
[1] https://github.com/hadley/testthat/issues/144
[2] https://github.com/hadley/devtools/blob/master/R/R.r
_______________________________________________
Rcpp-devel mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel