test-suite fixes for compilers that don't support vararg macros
Split TESTCASE_THROW into multiple macros taking different number of arguments. Fixes Visual Studio compiler errors.
This commit is contained in:
parent
1c46662c39
commit
196a965067
19 changed files with 127 additions and 117 deletions
|
|
@ -5,9 +5,11 @@
|
|||
%module(threads="1") threads_exception
|
||||
|
||||
// throw is invalid in C++17 and later, only SWIG to use it
|
||||
#define TESTCASE_THROW(TYPES...) throw(TYPES)
|
||||
#define TESTCASE_THROW1(T1) throw(T1)
|
||||
#define TESTCASE_THROW3(T1, T2, T3) throw(T1, T2, T3)
|
||||
%{
|
||||
#define TESTCASE_THROW(TYPES...)
|
||||
#define TESTCASE_THROW1(T1)
|
||||
#define TESTCASE_THROW3(T1, T2, T3)
|
||||
%}
|
||||
|
||||
%{
|
||||
|
|
@ -30,24 +32,24 @@ public:
|
|||
|
||||
class Test {
|
||||
public:
|
||||
int simple() TESTCASE_THROW(int) {
|
||||
int simple() TESTCASE_THROW1(int) {
|
||||
throw(37);
|
||||
return 1;
|
||||
}
|
||||
int message() TESTCASE_THROW(const char *) {
|
||||
int message() TESTCASE_THROW1(const char *) {
|
||||
throw("I died.");
|
||||
return 1;
|
||||
}
|
||||
int hosed() TESTCASE_THROW(Exc) {
|
||||
int hosed() TESTCASE_THROW1(Exc) {
|
||||
throw(Exc(42,"Hosed"));
|
||||
return 1;
|
||||
}
|
||||
int unknown() TESTCASE_THROW(A*) {
|
||||
int unknown() TESTCASE_THROW1(A*) {
|
||||
static A a;
|
||||
throw &a;
|
||||
return 1;
|
||||
}
|
||||
int multi(int x) TESTCASE_THROW(int, const char *, Exc) {
|
||||
int multi(int x) TESTCASE_THROW3(int, const char *, Exc) {
|
||||
if (x == 1) throw(37);
|
||||
if (x == 2) throw("Bleah!");
|
||||
if (x == 3) throw(Exc(42,"No-go-diggy-die"));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue