Test cases for cOverride
This commit is contained in:
parent
9b6469ca97
commit
5f9a59fcc6
3 changed files with 74 additions and 0 deletions
|
|
@ -75,3 +75,11 @@ void *multiline2(void) {
|
|||
}
|
||||
|
||||
void multiline3(void) {}
|
||||
|
||||
int weirdfunc(char ***apple) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
int weirdfunc2(char **apple) {
|
||||
return 2;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -167,6 +167,31 @@ enum
|
|||
TDEFL_BOGUS_3 = TDEFL_OUT_BUF_SIZE / TDEFL_BOGUS_1
|
||||
};
|
||||
|
||||
// cOverride
|
||||
struct foo { int foo[8][1]; };
|
||||
|
||||
typedef struct tagBITMAPINFOHEADER{
|
||||
int biClrImportant;
|
||||
} BITMAPINFOHEADER, * pBITMAPINFOHEADER;
|
||||
|
||||
#define BIT 123u
|
||||
|
||||
#define BIT2 123u
|
||||
|
||||
#define BIT3 123
|
||||
|
||||
typedef int ABC;
|
||||
|
||||
typedef int DEF;
|
||||
|
||||
typedef struct {
|
||||
int **f1;
|
||||
} GHI;
|
||||
|
||||
struct JKL {
|
||||
int **f1;
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -20,6 +20,27 @@ cPlugin:
|
|||
else:
|
||||
sym.name = sym.name.strip(chars={'_'})
|
||||
|
||||
cOverride:
|
||||
type
|
||||
BITMAPINFOHEADER* {.bycopy.} = object
|
||||
biClrImportant*: int
|
||||
|
||||
Random = object
|
||||
|
||||
ABC = pointer
|
||||
|
||||
GHI = object
|
||||
f2: ptr ptr cint
|
||||
|
||||
JKL = object
|
||||
f2: ptr ptr cint
|
||||
|
||||
const
|
||||
BIT* = 1
|
||||
|
||||
proc weirdfunc(apple: ptr ptr ptr cchar): int {.importc.}
|
||||
proc weirdfunc2(mango: ptr ptr cchar): int {.importc.}
|
||||
|
||||
cImport cSearchPath "test.h"
|
||||
|
||||
check TEST_INT == 512
|
||||
|
|
@ -183,3 +204,23 @@ var
|
|||
arr: array[5, cint]
|
||||
|
||||
check test_array_param(arr) == nil
|
||||
|
||||
# cOverride
|
||||
|
||||
var
|
||||
ca = weirdfunc
|
||||
cb: BITMAPINFOHEADER
|
||||
cc = weirdfunc2
|
||||
cd: ABC
|
||||
ce: DEF
|
||||
cf: GHI
|
||||
cg: JKL
|
||||
|
||||
cd = nil
|
||||
ce = 5
|
||||
cf.f2 = nil
|
||||
cg.f2 = nil
|
||||
|
||||
doAssert BIT == 1
|
||||
doAssert ca(nil) == 1
|
||||
doAssert cc(nil) == 2
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue