/* This test case tests that various types of arrays are working. */ %module arrays %{ #include %} %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; %}