aboutsummaryrefslogtreecommitdiff
path: root/Examples/test-suite/preproc_predefined.i
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/preproc_predefined.i')
-rw-r--r--Examples/test-suite/preproc_predefined.i77
1 files changed, 77 insertions, 0 deletions
diff --git a/Examples/test-suite/preproc_predefined.i b/Examples/test-suite/preproc_predefined.i
new file mode 100644
index 000000000..75ca75cdc
--- /dev/null
+++ b/Examples/test-suite/preproc_predefined.i
@@ -0,0 +1,77 @@
+%module preproc_predefined
+
+/* Test that SWIG_VERSION is defined at SWIG-time and in the wrapper. */
+#ifndef SWIG_VERSION
+# error SWIG_VERSION not defined at SWIG-time
+#endif
+%{
+#ifndef SWIG_VERSION
+# error SWIG_VERSION not defined in the generated wrapper
+#endif
+%}
+
+/* Test that SWIG_VERSION has a plausible value - in particular catch if
+ * it isn't defined to a numeric value (which will get replaced by 0).
+ */
+#if SWIG_VERSION < 0x040100
+# error SWIG_VERSION value not plausible at SWIG-time
+#endif
+%{
+#if SWIG_VERSION < 0x040100
+# error SWIG_VERSION value not plausible in the generated wrapper
+#endif
+%}
+
+%define %generate_swig_version_from_preprocessor()%#define SWIG_VERSION_FROM_SWIG_PREPROCESSOR SWIG_VERSION %enddef
+%insert("header") {
+%generate_swig_version_from_preprocessor()
+}
+%insert("header") %{
+#if SWIG_VERSION != SWIG_VERSION_FROM_SWIG_PREPROCESSOR
+# error SWIG_VERSION in SWIG preprocessor does not match SWIG_VERSION from C preprocessor
+#endif
+%}
+
+/* Test that SWIGVERSION is NOT defined at SWIG-time or in the wrapper.
+ * It used to be defined in the wrapper as a side-effect of how SWIG_VERSION
+ * was defined in the wrapper but was never documented and is redundant.
+ */
+#ifdef SWIGVERSION
+# error SWIGVERSION should not be defined at SWIG-time
+#endif
+%{
+#ifdef SWIGVERSION
+# error SWIGVERSION should not be defined in the generated wrapper
+#endif
+%}
+
+/* Test that SWIG is defined at SWIG-time but not in the wrapper. */
+#ifndef SWIG
+# error SWIG not defined at SWIG-time
+#endif
+%{
+#ifdef SWIG
+# error SWIG should not be defined in the generated wrapper
+#endif
+%}
+
+/* Test that __STDC__ is defined by SWIG with value 1 (in SWIG < 4.2.0
+ * it was defined but with an empty value.
+ */
+#ifndef __STDC__
+# error __STDC__ not defined at SWIG-time
+#endif
+#if __STDC__-0 != 1
+# error __STDC__ value not 1 at SWIG-time
+#endif
+
+/* Test that __cplusplus isn't defined (this testcase is processed as C). */
+#ifdef __cplusplus
+# error __cplusplus defined in C mode
+#endif
+
+/* Test that SWIGxxx is defined at SWIG-time and in the wrapper. */
+%include "preproc_predefined.h"
+%{
+#include "preproc_predefined.h"
+%}