test for default args in const methods
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6625 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
9eaf8c335b
commit
6784d7e6cc
4 changed files with 36 additions and 0 deletions
|
|
@ -129,6 +129,12 @@ public class runme
|
||||||
if (default_args.constructorcall(new Klass()).val != -1)
|
if (default_args.constructorcall(new Klass()).val != -1)
|
||||||
throw new Exception("constructorcall test 3 failed");
|
throw new Exception("constructorcall test 3 failed");
|
||||||
|
|
||||||
|
// const methods
|
||||||
|
ConstMethods cm = new ConstMethods();
|
||||||
|
if (cm.coo() != 20)
|
||||||
|
throw new Exception("coo test 1 failed");
|
||||||
|
if (cm.coo(1.0) != 20)
|
||||||
|
throw new Exception("coo test 2 failed");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -180,6 +180,21 @@ Klass constructorcall(const Klass& k = Klass()) { return k; }
|
||||||
}
|
}
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
// const methods
|
||||||
|
// runtime test needed to check that the const method is called
|
||||||
|
struct ConstMethods {
|
||||||
|
int coo(double d = 0.0) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
%{
|
||||||
|
struct ConstMethods {
|
||||||
|
int coo(double d = 0.0) { return 10; }
|
||||||
|
int coo(double d = 0.0) const { return 20; }
|
||||||
|
};
|
||||||
|
%}
|
||||||
|
|
||||||
|
|
||||||
|
// Default args with C linkage
|
||||||
%inline
|
%inline
|
||||||
%{
|
%{
|
||||||
extern "C" double cfunc1(double x,double p = 1) {
|
extern "C" double cfunc1(double x,double p = 1) {
|
||||||
|
|
|
||||||
|
|
@ -137,5 +137,11 @@ public class default_args_runme {
|
||||||
if (default_args.constructorcall(new Klass()).getVal() != -1)
|
if (default_args.constructorcall(new Klass()).getVal() != -1)
|
||||||
throw new RuntimeException("constructorcall test 3 failed");
|
throw new RuntimeException("constructorcall test 3 failed");
|
||||||
|
|
||||||
|
// const methods
|
||||||
|
ConstMethods cm = new ConstMethods();
|
||||||
|
if (cm.coo() != 20)
|
||||||
|
throw new RuntimeException("coo test 1 failed");
|
||||||
|
if (cm.coo(1.0) != 20)
|
||||||
|
throw new RuntimeException("coo test 2 failed");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -147,3 +147,12 @@ if (default_args::constructorcall(new default_args::Klass())->{val} != -1) {
|
||||||
die "constructorcall test 3 failed";
|
die "constructorcall test 3 failed";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# const methods
|
||||||
|
$cm = new default_args::ConstMethods();
|
||||||
|
if ($cm->coo() != 20) {
|
||||||
|
die "coo test 1 failed";
|
||||||
|
}
|
||||||
|
if ($cm->coo(1.0) != 20) {
|
||||||
|
die "coo test 2 failed";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue