blob: f98dd07181bc59207b6c3dd83e0934b2e2e9957b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
/*
This test case tests that various types of arrays are working.
*/
%module arrays
%{
#include <stdlib.h>
%}
#if defined(SWIGSCILAB)
%rename(ArrSt) ArrayStruct;
#endif
%inline %{
#define ARRAY_LEN 2
typedef enum {One, Two, Three, Four, Five} finger;
typedef struct {
double double_field;
} SimpleStruct;
typedef struct {
char array_c [ARRAY_LEN];
signed char array_sc[ARRAY_LEN];
unsigned char array_uc[ARRAY_LEN];
short array_s [ARRAY_LEN];
unsigned short array_us[ARRAY_LEN];
int array_i [ARRAY_LEN];
unsigned int array_ui[ARRAY_LEN];
long array_l [ARRAY_LEN];
unsigned long array_ul[ARRAY_LEN];
long long array_ll[ARRAY_LEN];
float array_f [ARRAY_LEN];
double array_d [ARRAY_LEN];
SimpleStruct array_struct[ARRAY_LEN];
SimpleStruct* array_structpointers[ARRAY_LEN];
int* array_ipointers [ARRAY_LEN];
finger array_enum[ARRAY_LEN];
finger* array_enumpointers[ARRAY_LEN];
const int array_const_i[ARRAY_LEN];
} ArrayStruct;
void fn_taking_arrays(SimpleStruct array_struct[ARRAY_LEN]) {}
/* Pointer helper functions used in the Java run test */
int* newintpointer() {
return (int*)malloc(sizeof(int));
}
void setintfrompointer(int* intptr, int value) {
*intptr = value;
}
int getintfrompointer(int* intptr) {
return *intptr;
}
%}
// This tests wrapping of function that involves pointer to array
%inline %{
void array_pointer_func(int (*x)[10]) {}
%}
%inline %{
typedef float FLOAT;
typedef FLOAT cartPosition_t[3];
typedef struct {
cartPosition_t p;
} CartPoseData_t;
/* Test left shift in array size doesn't trigger "Bad template type" error.
* Regression test for https://sourceforge.net/p/swig/bugs/983/ */
char array_shifted_size[(1<<2)];
%}
|