summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2016-01-26 20:16:47 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2016-01-26 20:16:47 +0000
commit62c34fc9d94f15046b40cc3d488972eb3fdc8e89 (patch)
tree642bdbce042357b234bab3a0429615f178ac1a15
parent2ad0e784ab148ec6bc93df69dc59f5db56f71ad8 (diff)
downloadswig-62c34fc9d94f15046b40cc3d488972eb3fdc8e89.tar.gz
Add tests for enum values and static const member variables chars containing escape sequences
-rw-r--r--Examples/test-suite/chartest.i19
-rw-r--r--Examples/test-suite/common.mk1
-rw-r--r--Examples/test-suite/default_args.i4
-rw-r--r--Examples/test-suite/enum_thorough.i44
-rw-r--r--Examples/test-suite/python/default_args_runme.py18
5 files changed, 85 insertions, 1 deletions
diff --git a/Examples/test-suite/chartest.i b/Examples/test-suite/chartest.i
index e81cf54a4..cc30b51bc 100644
--- a/Examples/test-suite/chartest.i
+++ b/Examples/test-suite/chartest.i
@@ -12,4 +12,23 @@ char GetUnprintableChar() {
return 0x7F;
}
+static const char globchar0 = '\0';
+static const char globchar1 = '\1';
+static const char globchar2 = '\n';
+static const char globcharA = 'A';
+static const char globcharB = '\102'; // B
+static const char globcharC = '\x43'; // C
+static const char globcharD = 0x44; // D
+static const char globcharE = 69; // E
+
+struct CharTestClass {
+ static const char memberchar0 = '\0';
+ static const char memberchar1 = '\1';
+ static const char memberchar2 = '\n';
+ static const char membercharA = 'A';
+ static const char membercharB = '\102'; // B
+ static const char membercharC = '\x43'; // C
+ static const char membercharD = 0x44; // D
+ static const char membercharE = 69; // E
+};
%}
diff --git a/Examples/test-suite/common.mk b/Examples/test-suite/common.mk
index 02bde2caa..206840759 100644
--- a/Examples/test-suite/common.mk
+++ b/Examples/test-suite/common.mk
@@ -379,6 +379,7 @@ CPP_TEST_CASES += \
static_array_member \
static_const_member \
static_const_member_2 \
+ string_constants \
struct_initialization_cpp \
struct_value \
symbol_clash \
diff --git a/Examples/test-suite/default_args.i b/Examples/test-suite/default_args.i
index d3014d386..02d860765 100644
--- a/Examples/test-suite/default_args.i
+++ b/Examples/test-suite/default_args.i
@@ -77,6 +77,10 @@
// char
char chartest1(char c = 'x') { return c; }
char chartest2(char c = '\0') { return c; }
+ char chartest3(char c = '\1') { return c; }
+ char chartest4(char c = '\n') { return c; }
+ char chartest5(char c = '\102') { return c; } // 'B'
+ char chartest6(char c = '\x43') { return c; } // 'C'
// namespaces
namespace AType {
diff --git a/Examples/test-suite/enum_thorough.i b/Examples/test-suite/enum_thorough.i
index 3ece5471b..70f02ac64 100644
--- a/Examples/test-suite/enum_thorough.i
+++ b/Examples/test-suite/enum_thorough.i
@@ -585,7 +585,50 @@ enum {
};
int globalDifferentTypesTest(int n) { return n; }
}
+%}
+#if defined(SWIGJAVA)
+%javaconst(0) enumcharC;
+%javaconst(0) globalenumcharC;
+#elif defined(SWIGCSHARP)
+%csconstvalue("1") globalenumchar1;
+%csconstvalue("'B'") globalenumcharB;
+%csconstvalue("1") enumchar1;
+%csconstvalue("'B'") enumcharB;
+#endif
+%inline %{
+enum {
+ globalenumchar0 = '\0',
+ globalenumchar1 = '\1',
+ globalenumchar2 = '\n',
+ globalenumcharA = 'A',
+ globalenumcharB = '\102', // B
+ globalenumcharC = '\x43', // C
+ globalenumcharD = 0x44, // D
+ globalenumcharE = 69 // E
+};
+enum EnumChar {
+ enumchar0 = '\0',
+ enumchar1 = '\1',
+ enumchar2 = '\n',
+ enumcharA = 'A',
+ enumcharB = '\102', // B
+ enumcharC = '\x43', // C
+ enumcharD = 0x44, // D
+ enumcharE = 69 // E
+};
+struct EnumCharStruct {
+ enum EnumChar {
+ enumchar0 = '\0',
+ enumchar1 = '\1',
+ enumchar2 = '\n',
+ enumcharA = 'A',
+ enumcharB = '\102', // B
+ enumcharC = '\x43', // C
+ enumcharD = 0x44, // D
+ enumcharE = 69 // E
+ };
+};
%}
#if defined(SWIGJAVA)
@@ -614,5 +657,4 @@ enum {
global_typedefaultint_noconst
};
}
-
%}
diff --git a/Examples/test-suite/python/default_args_runme.py b/Examples/test-suite/python/default_args_runme.py
index 6610a4ec4..9d275e4a1 100644
--- a/Examples/test-suite/python/default_args_runme.py
+++ b/Examples/test-suite/python/default_args_runme.py
@@ -136,5 +136,23 @@ def run(module_name):
if default_args.CDA().cdefaultargs_test2() != 1:
raise RuntimeError
+ if default_args.chartest1() != 'x':
+ raise RuntimeError
+
+ if default_args.chartest2() != '\0':
+ raise RuntimeError
+
+ if default_args.chartest3() != '\1':
+ raise RuntimeError
+
+ if default_args.chartest4() != '\n':
+ raise RuntimeError
+
+ if default_args.chartest5() != 'B':
+ raise RuntimeError
+
+ if default_args.chartest6() != 'C':
+ raise RuntimeError
+
if __name__ == "__main__":
run('default_args')