%apply signed char test added

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9234 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2006-08-10 21:22:12 +00:00
parent 3730b3ee07
commit 18715d1471
3 changed files with 72 additions and 0 deletions

View File

@ -0,0 +1,35 @@
/* Test %apply for char */
%module(directors="1") apply_signed_char
%warnfilter(SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR) DirectorTest;
%apply signed char {char, const char};
%apply const signed char & {const char &};
%inline %{
char CharValFunction(char number) { return number; }
const char CCharValFunction(const char number) { return number; }
const char & CCharRefFunction(const char & number) { return number; }
char globalchar = -109;
const char globalconstchar = -110;
%}
// Director test
%feature("director");
%inline %{
struct DirectorTest {
DirectorTest() : memberchar(-111), memberconstchar(-112) {}
virtual char CharValFunction(char number) { return number; }
virtual const char CCharValFunction(const char number) { return number; }
virtual const char & CCharRefFunction(const char & number) { return number; }
char memberchar;
const char memberconstchar;
virtual ~DirectorTest() {}
};
%}

View File

@ -75,6 +75,7 @@ CPP_TEST_CASES += \
aggregate \
allowexcept \
anonymous_bitfield \
apply_signed_char \
apply_strings \
argout \
array_member \

View File

@ -0,0 +1,36 @@
import apply_signed_char.*;
public class apply_signed_char_runme {
static {
try {
System.loadLibrary("apply_signed_char");
} catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
System.exit(1);
}
}
public static void main(String argv[]) {
byte smallnum = -127;
if (apply_signed_char.CharValFunction(smallnum) != smallnum) throw new RuntimeException("failed");
if (apply_signed_char.CCharValFunction(smallnum) != smallnum) throw new RuntimeException("failed");
if (apply_signed_char.CCharRefFunction(smallnum) != smallnum) throw new RuntimeException("failed");
apply_signed_char.setGlobalchar(smallnum);
if (apply_signed_char.getGlobalchar() != smallnum) throw new RuntimeException("failed");
if (apply_signed_char.getGlobalconstchar() != -110) throw new RuntimeException("failed");
DirectorTest d = new DirectorTest();
if (d.CharValFunction(smallnum) != smallnum) throw new RuntimeException("failed");
if (d.CCharValFunction(smallnum) != smallnum) throw new RuntimeException("failed");
if (d.CCharRefFunction(smallnum) != smallnum) throw new RuntimeException("failed");
d.setMemberchar(smallnum);
if (d.getMemberchar() != smallnum) throw new RuntimeException("failed");
if (d.getMemberconstchar() != -112) throw new RuntimeException("failed");
}
}