Skip to content

Commit ab9c311

Browse files
committed
Add fortran-specific test exclusions/modifications
This is mostly stuff like multiple inheritance support.
1 parent 8a640a5 commit ab9c311

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+135
-44
lines changed

Examples/test-suite/abstract_signature.i

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) abstract_foo; // Ruby, wrong class name
44
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) abstract_bar; // Ruby, wrong class name
5+
%warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) meth; // Fortran prevents overloaded methods from overriding a base class non-overloaded method
56

67
%inline %{
78
class abstract_foo

Examples/test-suite/abstract_virtual.i

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
44
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
55
SWIGWARN_D_MULTIPLE_INHERITANCE,
6-
SWIGWARN_PHP_MULTIPLE_INHERITANCE) D; /* C#, D, Java, PHP multiple inheritance */
6+
SWIGWARN_FORTRAN_MULTIPLE_INHERITANCE,
7+
SWIGWARN_PHP_MULTIPLE_INHERITANCE) D; /* C#, D, Fortran, Java, PHP multiple inheritance */
78
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
89
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
910
SWIGWARN_D_MULTIPLE_INHERITANCE,
10-
SWIGWARN_PHP_MULTIPLE_INHERITANCE) E; /* C#, D, Java, PHP multiple inheritance */
11+
SWIGWARN_FORTRAN_MULTIPLE_INHERITANCE,
12+
SWIGWARN_PHP_MULTIPLE_INHERITANCE) E; /* C#, D, Fortran, Java, PHP multiple inheritance */
1113

1214
%inline %{
1315
#if defined(_MSC_VER)

Examples/test-suite/argcargvtest.i

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
%module argcargvtest
22

3-
#if !defined(SWIGCSHARP) && !defined(SWIGD) && !defined(SWIGGO) && !defined(SWIGGUILE) && !defined(SWIGJAVA) && !defined(SWIGJAVASCRIPT) && !defined(SWIGMZSCHEME) && !defined(SWIGOCAML) && !defined(SWIGR) && !defined(SWIGSCILAB)
3+
#if !defined(SWIGCSHARP) && !defined(SWIGD) && !defined(SWIGFORTRAN) && !defined(SWIGGO) && !defined(SWIGGUILE) && !defined(SWIGJAVA) && !defined(SWIGJAVASCRIPT) && !defined(SWIGMZSCHEME) && !defined(SWIGOCAML) && !defined(SWIGR) && !defined(SWIGSCILAB)
44
%include <argcargv.i>
55

66
%apply (int ARGC, char **ARGV) { (size_t argc, const char **argv) }

Examples/test-suite/arrays.i

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,16 @@ int getintfrompointer(int* intptr) {
5656

5757
%}
5858

59+
#if defined(SWIGFORTRAN)
60+
/* Pointer helper functions for Fortan run test */
61+
%include "typemaps.i"
62+
%apply SWIGTYPE ARRAY[ANY] { int inp[ANY] };
63+
%inline %{
64+
int *array_to_ptr(int inp[ARRAY_LEN]) { return inp; }
65+
int get_value(int *inp, int idx) { return inp[idx - 1]; }
66+
%}
67+
#endif
68+
5969
// This tests wrapping of function that involves pointer to array
6070

6171

Examples/test-suite/constant_directive.i

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
#ifdef SWIGOCAML
66
%warnfilter(SWIGWARN_PARSE_KEYWORD) val;
7+
#elif SWIGFORTRAN
8+
// Can't natively wrap function pointers with nonnative return type
9+
%warnfilter(SWIGWARN_LANG_NATIVE_UNIMPL,SWIGWARN_TYPEMAP_UNDEF) TYPE1FPTR1_CONSTANT1;
710
#endif
811

912
%inline %{

Examples/test-suite/contract.i

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
55
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
66
SWIGWARN_D_MULTIPLE_INHERITANCE,
7+
SWIGWARN_FORTRAN_MULTIPLE_INHERITANCE,
78
SWIGWARN_PHP_MULTIPLE_INHERITANCE) C; /* Ruby, C#, D, Java, PHP multiple inheritance */
89

910
#ifdef SWIGCSHARP

Examples/test-suite/default_constructor.i

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,18 @@
33

44
%module(ruby_minherit="1") default_constructor
55

6+
/* C#, D, Fortran, Java, PHP multiple inheritance */
7+
%define %warnfilter_multiple_inheritance(CLS)
68
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
79
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
810
SWIGWARN_D_MULTIPLE_INHERITANCE,
9-
SWIGWARN_PHP_MULTIPLE_INHERITANCE) EB; /* C#, D, Java, PHP multiple inheritance */
10-
11-
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
12-
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
13-
SWIGWARN_D_MULTIPLE_INHERITANCE,
14-
SWIGWARN_PHP_MULTIPLE_INHERITANCE) AD; /* C#, D, Java, PHP multiple inheritance */
15-
16-
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
17-
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
18-
SWIGWARN_D_MULTIPLE_INHERITANCE,
19-
SWIGWARN_PHP_MULTIPLE_INHERITANCE) GGG; /* C#, D, Java, PHP multiple inheritance */
20-
21-
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
22-
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
23-
SWIGWARN_D_MULTIPLE_INHERITANCE,
24-
SWIGWARN_PHP_MULTIPLE_INHERITANCE) HHH; /* C#, D, Java, PHP multiple inheritance */
11+
SWIGWARN_FORTRAN_MULTIPLE_INHERITANCE,
12+
SWIGWARN_PHP_MULTIPLE_INHERITANCE) CLS;
13+
%enddef
14+
%warnfilter_multiple_inheritance(AD);
15+
%warnfilter_multiple_inheritance(EB);
16+
%warnfilter_multiple_inheritance(GGG);
17+
%warnfilter_multiple_inheritance(HHH);
2518

2619
%warnfilter(SWIGWARN_LANG_FRIEND_IGNORE) F; /* friend function */
2720

@@ -175,7 +168,12 @@ protected:
175168
};
176169
%}
177170

171+
#ifndef SWIGFORTRAN
172+
// It's unclear to me what this typedef is trying to do. The result compiles
173+
// with Python but does not compile in Fortran. The OSRSpatialReferenceShadow
174+
// class is untested in any language.
178175
typedef void OSRSpatialReferenceShadow;
176+
#endif
179177

180178
class OSRSpatialReferenceShadow {
181179
private:

Examples/test-suite/director_smartptr.i

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public:
3434

3535
%}
3636

37-
#if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGPYTHON) || defined(SWIGD) || defined(SWIGOCTAVE) || defined(SWIGRUBY)
37+
#if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGPYTHON) || defined(SWIGD) || defined(SWIGOCTAVE) || defined(SWIGRUBY) || defined(SWIGFORTRAN)
3838
#define SHARED_PTR_WRAPPERS_IMPLEMENTED
3939
#endif
4040

Examples/test-suite/dynamic_cast.i

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
/* File : example.i */
22
%module dynamic_cast
33

4-
#if !defined(SWIGJAVA) && !defined(SWIGCSHARP) && !defined(SWIGGO) && !defined(SWIGD)
4+
#if !defined(SWIGJAVA) && !defined(SWIGCSHARP) && !defined(SWIGGO) && !defined(SWIGD) && !defined(SWIGFORTRAN)
55
%apply SWIGTYPE *DYNAMIC { Foo * };
66
#endif
77

8+
#if defined(SWIGFORTRAN)
9+
%typemap(out) Foo *blah (Bar *downcast) {
10+
downcast = dynamic_cast<Bar *>($1);
11+
$result.cptr = downcast;
12+
$result.cmemflags = SWIG_MEM_RVALUE | ($owner ? SWIG_MEM_OWN : 0);
13+
}
14+
%typemap(ftype) Foo *blah "$typemap(ftype, Foo*)"
15+
#endif
16+
817
%inline %{
918

1019
class Foo {
@@ -69,7 +78,7 @@ char *do_test(Bar *b) {
6978
}
7079
%}
7180

72-
#if !defined(SWIGJAVA) && !defined(SWIGCSHARP) && !defined(SWIGGO) && !defined(SWIGD)
81+
#if !defined(SWIGJAVA) && !defined(SWIGCSHARP) && !defined(SWIGGO) && !defined(SWIGD) && !defined(SWIGFORTRAN)
7382
// A general purpose function for dynamic casting of a Foo *
7483
%{
7584
static swig_type_info *

Examples/test-suite/evil_diamond.i

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
88
SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
99
SWIGWARN_D_MULTIPLE_INHERITANCE,
10+
SWIGWARN_FORTRAN_MULTIPLE_INHERITANCE,
1011
SWIGWARN_PHP_MULTIPLE_INHERITANCE) spam; // Ruby, wrong class name - C#, D & Java, PHP multiple inheritance
1112

1213
%inline %{

0 commit comments

Comments
 (0)