From 5525abfea839905a940576455e77a76a70cc1fd0 Mon Sep 17 00:00:00 2001 From: Joseph C Wang Date: Sat, 25 Nov 2017 01:37:14 +0800 Subject: [PATCH] add support files and regression tests for #1124 --- Examples/test-suite/r/r_use_isnull_runme.R | 11 +++++++ Examples/test-suite/r_use_isnull.i | 34 ++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 Examples/test-suite/r/r_use_isnull_runme.R create mode 100644 Examples/test-suite/r_use_isnull.i diff --git a/Examples/test-suite/r/r_use_isnull_runme.R b/Examples/test-suite/r/r_use_isnull_runme.R new file mode 100644 index 000000000..0dbf8762f --- /dev/null +++ b/Examples/test-suite/r/r_use_isnull_runme.R @@ -0,0 +1,11 @@ +clargs <- commandArgs(trailing=TRUE) +source(file.path(clargs[1], "unittest.R")) + +dyn.load(paste("r_use_isnull", .Platform$dynlib.ext, sep="")) +source("r_use_isnull.R") +cacheMetaData(1) + +tp <- pointerTest() +circ1 <- tp$getCircle(1) +circ1 +unittest(is.null(circ1), TRUE) diff --git a/Examples/test-suite/r_use_isnull.i b/Examples/test-suite/r_use_isnull.i new file mode 100644 index 000000000..03b4c15a7 --- /dev/null +++ b/Examples/test-suite/r_use_isnull.i @@ -0,0 +1,34 @@ +%module r_use_isnull + +%inline %{ +// C++ code +class circle { +public: +circle(double radius) +{ +m_radius = radius; +} +double getArea() const +{ +return (3.14 * m_radius * m_radius); +} + +private: +double m_radius; +}; + +class pointerTest { +public: +pointerTest() : m_circle(2) {} +const circle * getCircle(int index) const { +if (index == 0) +return & m_circle; +else +return 0; +} + +private: + circle m_circle; + +}; + %}