summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoequant <joequant@gmail.com>2013-07-14 20:29:37 +0800
committerjoequant <joequant@gmail.com>2013-07-14 20:29:37 +0800
commite8c6384f77b05514f26338fae463860b865ddf97 (patch)
tree8ab4dcd30f2293a313b58ae3584395d13baedfb0
parent93b63969f9b70895ee1d841c66f414b1be46e90d (diff)
downloadswig-e8c6384f77b05514f26338fae463860b865ddf97.tar.gz
add regression tests for SEXP return values
-rw-r--r--Examples/test-suite/r/Makefile.in3
-rw-r--r--Examples/test-suite/r/r_sexp_runme.R7
-rw-r--r--Examples/test-suite/r_sexp.i10
3 files changed, 19 insertions, 1 deletions
diff --git a/Examples/test-suite/r/Makefile.in b/Examples/test-suite/r/Makefile.in
index bece71c2f..18e2d4b25 100644
--- a/Examples/test-suite/r/Makefile.in
+++ b/Examples/test-suite/r/Makefile.in
@@ -16,7 +16,8 @@ C_TEST_CASES += \
CPP_TEST_CASES += \
r_double_delete \
- r_overload_array
+ r_overload_array \
+ r_sexp
include $(srcdir)/../common.mk
diff --git a/Examples/test-suite/r/r_sexp_runme.R b/Examples/test-suite/r/r_sexp_runme.R
new file mode 100644
index 000000000..96b36e8af
--- /dev/null
+++ b/Examples/test-suite/r/r_sexp_runme.R
@@ -0,0 +1,7 @@
+source("unittest.R")
+dyn.load(paste("r_sexp", .Platform$dynlib.ext, sep=""))
+source("r_sexp.R")
+cacheMetaData(1)
+
+obj <- return_sexp(1);
+unittest(obj, 1)
diff --git a/Examples/test-suite/r_sexp.i b/Examples/test-suite/r_sexp.i
new file mode 100644
index 000000000..9f786f428
--- /dev/null
+++ b/Examples/test-suite/r_sexp.i
@@ -0,0 +1,10 @@
+%module r_sexp
+
+extern "C" SEXP return_sexp(SEXP x);
+
+%inline %{
+SEXP return_sexp(SEXP x) {
+ return x; //Rcpp NumericVector is automatically casted to SEXP
+}
+%}
+