diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2016-01-26 20:16:47 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2016-01-26 20:16:47 +0000 |
commit | 62c34fc9d94f15046b40cc3d488972eb3fdc8e89 (patch) | |
tree | 642bdbce042357b234bab3a0429615f178ac1a15 | |
parent | 2ad0e784ab148ec6bc93df69dc59f5db56f71ad8 (diff) | |
download | swig-62c34fc9d94f15046b40cc3d488972eb3fdc8e89.tar.gz |
Add tests for enum values and static const member variables chars containing escape sequences
-rw-r--r-- | Examples/test-suite/chartest.i | 19 | ||||
-rw-r--r-- | Examples/test-suite/common.mk | 1 | ||||
-rw-r--r-- | Examples/test-suite/default_args.i | 4 | ||||
-rw-r--r-- | Examples/test-suite/enum_thorough.i | 44 | ||||
-rw-r--r-- | Examples/test-suite/python/default_args_runme.py | 18 |
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') |