summaryrefslogtreecommitdiff
path: root/Examples
diff options
context:
space:
mode:
Diffstat (limited to 'Examples')
-rw-r--r--Examples/test-suite/char_binary.i4
-rw-r--r--Examples/test-suite/java/char_binary_runme.java6
-rw-r--r--Examples/test-suite/javascript/char_binary_runme.js10
-rw-r--r--Examples/test-suite/perl5/char_binary_runme.pl5
-rw-r--r--Examples/test-suite/python/char_binary_runme.py7
5 files changed, 31 insertions, 1 deletions
diff --git a/Examples/test-suite/char_binary.i b/Examples/test-suite/char_binary.i
index 778792946..394565438 100644
--- a/Examples/test-suite/char_binary.i
+++ b/Examples/test-suite/char_binary.i
@@ -5,12 +5,16 @@ A test case for testing non null terminated char pointers.
%module char_binary
%apply (char *STRING, size_t LENGTH) { (const char *str, size_t len) }
+%apply (char *STRING, size_t LENGTH) { (const unsigned char *str, size_t len) }
%inline %{
struct Test {
size_t strlen(const char *str, size_t len) {
return len;
}
+ size_t ustrlen(const unsigned char *str, size_t len) {
+ return len;
+ }
};
typedef char namet[5];
diff --git a/Examples/test-suite/java/char_binary_runme.java b/Examples/test-suite/java/char_binary_runme.java
index 9227f8617..bc811ef5d 100644
--- a/Examples/test-suite/java/char_binary_runme.java
+++ b/Examples/test-suite/java/char_binary_runme.java
@@ -20,5 +20,11 @@ public class char_binary_runme {
if (t.strlen(hil0) != 4)
throw new RuntimeException("bad multi-arg typemap");
+
+ if (t.ustrlen(hile) != 4)
+ throw new RuntimeException("bad multi-arg typemap");
+
+ if (t.ustrlen(hil0) != 4)
+ throw new RuntimeException("bad multi-arg typemap");
}
}
diff --git a/Examples/test-suite/javascript/char_binary_runme.js b/Examples/test-suite/javascript/char_binary_runme.js
index b2aac920c..01b72ebe1 100644
--- a/Examples/test-suite/javascript/char_binary_runme.js
+++ b/Examples/test-suite/javascript/char_binary_runme.js
@@ -5,10 +5,17 @@ if (t.strlen('hile') != 4) {
print(t.strlen('hile'));
throw("bad multi-arg typemap 1");
}
+if (t.ustrlen('hile') != 4) {
+ print(t.ustrlen('hile'));
+ throw("bad multi-arg typemap 1");
+}
if (t.strlen('hil\0') != 4) {
throw("bad multi-arg typemap 2");
}
+if (t.ustrlen('hil\0') != 4) {
+ throw("bad multi-arg typemap 2");
+}
/*
* creating a raw char*
@@ -24,6 +31,9 @@ char_binary.pchar_setitem(pc, 4, 0);
if (t.strlen(pc) != 4) {
throw("bad multi-arg typemap (3)");
}
+if (t.ustrlen(pc) != 4) {
+ throw("bad multi-arg typemap (3)");
+}
char_binary.var_pchar = pc;
if (char_binary.var_pchar != "hola") {
diff --git a/Examples/test-suite/perl5/char_binary_runme.pl b/Examples/test-suite/perl5/char_binary_runme.pl
index 4c50ee700..f97d740a6 100644
--- a/Examples/test-suite/perl5/char_binary_runme.pl
+++ b/Examples/test-suite/perl5/char_binary_runme.pl
@@ -1,14 +1,16 @@
use strict;
use warnings;
-use Test::More tests => 7;
+use Test::More tests => 10;
BEGIN { use_ok('char_binary') }
require_ok('char_binary');
my $t = char_binary::Test->new();
is($t->strlen('hile'), 4, "string typemap");
+is($t->ustrlen('hile'), 4, "unsigned string typemap");
is($t->strlen("hil\0"), 4, "string typemap");
+is($t->ustrlen("hil\0"), 4, "unsigned string typemap");
#
# creating a raw char*
@@ -22,6 +24,7 @@ char_binary::pchar_setitem($pc, 4, 0);
is($t->strlen($pc), 4, "string typemap");
+is($t->ustrlen($pc), 4, "unsigned string typemap");
$char_binary::var_pchar = $pc;
is($char_binary::var_pchar, "hola", "pointer case");
diff --git a/Examples/test-suite/python/char_binary_runme.py b/Examples/test-suite/python/char_binary_runme.py
index 13457253f..34caa3208 100644
--- a/Examples/test-suite/python/char_binary_runme.py
+++ b/Examples/test-suite/python/char_binary_runme.py
@@ -4,9 +4,14 @@ t = Test()
if t.strlen('hile') != 4:
print t.strlen('hile')
raise RuntimeError, "bad multi-arg typemap"
+if t.ustrlen('hile') != 4:
+ print t.ustrlen('hile')
+ raise RuntimeError, "bad multi-arg typemap"
if t.strlen('hil\0') != 4:
raise RuntimeError, "bad multi-arg typemap"
+if t.ustrlen('hil\0') != 4:
+ raise RuntimeError, "bad multi-arg typemap"
#
# creating a raw char*
@@ -21,6 +26,8 @@ pchar_setitem(pc, 4, 0)
if t.strlen(pc) != 4:
raise RuntimeError, "bad multi-arg typemap"
+if t.ustrlen(pc) != 4:
+ raise RuntimeError, "bad multi-arg typemap"
cvar.var_pchar = pc
if cvar.var_pchar != "hola":