Add test and changes entry for Python -builtin %array_class fix

Issue https://github.com/swig/swig/issues/446
This commit is contained in:
William S Fulton 2016-12-18 15:31:44 +00:00
parent b630cc603c
commit 173c028dd4
9 changed files with 51 additions and 8 deletions

View File

@ -5,6 +5,10 @@ See the RELEASENOTES file for a summary of changes in each release.
Version 3.0.11 (in progress)
============================
2016-12-18: t-ikegami
[Python] Fix https://github.com/swig/swig/issues/446
Python %array_class of carrays.i failed with -builtin option.
2016-12-16: bcaine
[Guile] Patch #744 Added support for Guile's native pointer functionality

View File

@ -6,6 +6,7 @@
%array_functions(int,intArray);
%array_class(double, doubleArray);
%array_class(short, shortArray);
%inline %{
typedef struct {
@ -26,3 +27,13 @@ AB globalABArray[3];
%array_class(XY, XYArray)
%array_functions(AB, ABArray)
%inline %{
short sum_array(short x[5]) {
short sum = 0;
int i;
for (i=0; i<5; i++) {
sum = sum + x[i];
}
return sum;
}
%}

View File

@ -6,6 +6,7 @@
%array_functions(int,intArray);
%array_class(double, doubleArray);
%array_class(short, shortArray);
%inline %{
typedef struct {
@ -26,3 +27,13 @@ AB globalABArray[3];
%array_class(XY, XYArray)
%array_functions(AB, ABArray)
%inline %{
short sum_array(short x[5]) {
short sum = 0;
int i;
for (i=0; i<5; i++) {
sum = sum + x[i];
}
return sum;
}
%}

View File

@ -3,11 +3,11 @@ require "tests.php";
require "li_carrays_cpp.php";
// Check functions.
check::functions(array(new_intarray,delete_intarray,intarray_getitem,intarray_setitem,doublearray_getitem,doublearray_setitem,doublearray_cast,doublearray_frompointer,xyarray_getitem,xyarray_setitem,xyarray_cast,xyarray_frompointer,delete_abarray,abarray_getitem,abarray_setitem));
check::functions(array(new_intarray,delete_intarray,intarray_getitem,intarray_setitem,doublearray_getitem,doublearray_setitem,doublearray_cast,doublearray_frompointer,xyarray_getitem,xyarray_setitem,xyarray_cast,xyarray_frompointer,delete_abarray,abarray_getitem,abarray_setitem,shortarray_getitem,shortarray_setitem,shortarray_cast,shortarray_frompointer,sum_array));
// Check classes.
// NB An "li_carrays_cpp" class is created as a mock namespace.
check::classes(array(li_carrays_cpp,doubleArray,AB,XY,XYArray));
check::classes(array(li_carrays_cpp,doubleArray,AB,XY,XYArray,shortArray));
// Check global variables.
check::globals(array(xy_x,xy_y,globalxyarray,ab_a,ab_b,globalabarray));

View File

@ -3,11 +3,11 @@ require "tests.php";
require "li_carrays.php";
// Check functions.
check::functions(array(new_intarray,delete_intarray,intarray_getitem,intarray_setitem,doublearray_getitem,doublearray_setitem,doublearray_cast,doublearray_frompointer,xyarray_getitem,xyarray_setitem,xyarray_cast,xyarray_frompointer,delete_abarray,abarray_getitem,abarray_setitem));
check::functions(array(new_intarray,delete_intarray,intarray_getitem,intarray_setitem,doublearray_getitem,doublearray_setitem,doublearray_cast,doublearray_frompointer,xyarray_getitem,xyarray_setitem,xyarray_cast,xyarray_frompointer,delete_abarray,abarray_getitem,abarray_setitem,shortarray_getitem,shortarray_setitem,shortarray_cast,shortarray_frompointer,sum_array));
// Check classes.
// NB An "li_carrays" class is created as a mock namespace.
check::classes(array(li_carrays,doubleArray,AB,XY,XYArray));
check::classes(array(li_carrays,doubleArray,AB,XY,XYArray,shortArray));
// Check global variables.
check::globals(array(xy_x,xy_y,globalxyarray,ab_a,ab_b,globalabarray));

View File

@ -3,11 +3,11 @@ require "tests.php";
require "li_carrays_cpp.php";
// Check functions.
check::functions(array(new_intarray,delete_intarray,intarray_getitem,intarray_setitem,doublearray_getitem,doublearray_setitem,doublearray_cast,doublearray_frompointer,xyarray_getitem,xyarray_setitem,xyarray_cast,xyarray_frompointer,delete_abarray,abarray_getitem,abarray_setitem));
check::functions(array(new_intarray,delete_intarray,intarray_getitem,intarray_setitem,doublearray_getitem,doublearray_setitem,doublearray_cast,doublearray_frompointer,xyarray_getitem,xyarray_setitem,xyarray_cast,xyarray_frompointer,delete_abarray,abarray_getitem,abarray_setitem,shortarray_getitem,shortarray_setitem,shortarray_cast,shortarray_frompointer,sum_array));
// Check classes.
// NB An "li_carrays_cpp" class is created as a mock namespace.
check::classes(array(li_carrays_cpp,doubleArray,AB,XY,XYArray));
check::classes(array(li_carrays_cpp,doubleArray,AB,XY,XYArray,shortArray));
// Check global variables.
check::globals(array(xy_x,xy_y,globalxyarray,ab_a,ab_b,globalabarray));

View File

@ -3,11 +3,11 @@ require "tests.php";
require "li_carrays.php";
// Check functions.
check::functions(array(new_intarray,delete_intarray,intarray_getitem,intarray_setitem,doublearray_getitem,doublearray_setitem,doublearray_cast,doublearray_frompointer,xyarray_getitem,xyarray_setitem,xyarray_cast,xyarray_frompointer,delete_abarray,abarray_getitem,abarray_setitem));
check::functions(array(new_intarray,delete_intarray,intarray_getitem,intarray_setitem,doublearray_getitem,doublearray_setitem,doublearray_cast,doublearray_frompointer,xyarray_getitem,xyarray_setitem,xyarray_cast,xyarray_frompointer,delete_abarray,abarray_getitem,abarray_setitem,shortarray_getitem,shortarray_setitem,shortarray_cast,shortarray_frompointer,sum_array));
// Check classes.
// NB An "li_carrays" class is created as a mock namespace.
check::classes(array(li_carrays,doubleArray,AB,XY,XYArray));
check::classes(array(li_carrays,doubleArray,AB,XY,XYArray,shortArray));
// Check global variables.
check::globals(array(xy_x,xy_y,globalxyarray,ab_a,ab_b,globalabarray));

View File

@ -7,3 +7,12 @@ d[5] = d[0] + 3
if d[5] + d[0] != 17:
raise RuntimeError
shorts = shortArray(5)
for i in range(5):
shorts[i] = i
sum = sum_array(shorts)
if sum != 0+1+2+3+4:
raise RuntimeError("incorrect sum, got: " + str(sum))

View File

@ -7,3 +7,11 @@ d[5] = d[0] + 3
if d[5] + d[0] != 17:
raise RuntimeError
shorts = shortArray(5)
for i in range(5):
shorts[i] = i
sum = sum_array(shorts)
if sum != 0+1+2+3+4:
raise RuntimeError("incorrect sum, got: " + str(sum))