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) {}
|
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
|
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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,27 @@ cPlugin:
|
||||||
else:
|
else:
|
||||||
sym.name = sym.name.strip(chars={'_'})
|
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"
|
cImport cSearchPath "test.h"
|
||||||
|
|
||||||
check TEST_INT == 512
|
check TEST_INT == 512
|
||||||
|
|
@ -183,3 +204,23 @@ var
|
||||||
arr: array[5, cint]
|
arr: array[5, cint]
|
||||||
|
|
||||||
check test_array_param(arr) == nil
|
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