diff options
| author | Ganesh Viswanathan <dev@genotrance.com> | 2018-11-21 23:45:12 -0600 |
|---|---|---|
| committer | Ganesh Viswanathan <dev@genotrance.com> | 2018-11-21 23:45:12 -0600 |
| commit | b9b5174759b6dd1f94404b2f63637d406aec4983 (patch) | |
| tree | 1f26d0fe80a14614e64cd1215800f9f857a0c123 /tests | |
| parent | a8bb2dc01f99a2866f586f6e1491a512ce9b3cfa (diff) | |
| download | nimterop-b9b5174759b6dd1f94404b2f63637d406aec4983.tar.gz nimterop-b9b5174759b6dd1f94404b2f63637d406aec4983.zip | |
More pointer support, cpp mode default in toast, cleanup
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/include/test.c | 4 | ||||
| -rw-r--r-- | tests/include/test.h | 9 | ||||
| -rw-r--r-- | tests/tnimterop.nim | 9 |
3 files changed, 19 insertions, 3 deletions
diff --git a/tests/include/test.c b/tests/include/test.c index 8d801b7..885723e 100644 --- a/tests/include/test.c +++ b/tests/include/test.c @@ -4,13 +4,15 @@ int test_call_int() { return 5; } -struct STRUCT1 test_call_int_param(int param1) { +#ifdef FORCE +struct STRUCT1 _test_call_int_param_(int param1) { struct STRUCT1 s; s.field1 = param1; return s; } +#endif STRUCT2 test_call_int_param2(int param1, STRUCT2 param2) { STRUCT2 s; diff --git a/tests/include/test.h b/tests/include/test.h index 60d1660..7de6eed 100644 --- a/tests/include/test.h +++ b/tests/include/test.h @@ -29,8 +29,15 @@ typedef enum { enum6 } ENUM2; +typedef void * VOIDPTR; +typedef int * INTPTR; + +typedef struct { + int *field; +} STRUCT4; + int test_call_int(); -struct STRUCT1 test_call_int_param(int param1); +struct STRUCT1 _test_call_int_param_(int param1); STRUCT2 test_call_int_param2(int param1, STRUCT2 param2); STRUCT2 test_call_int_param3(int param1, struct STRUCT1 param2); ENUM2 test_call_int_param4(enum ENUM param1);
\ No newline at end of file diff --git a/tests/tnimterop.nim b/tests/tnimterop.nim index a05cecd..dd822cb 100644 --- a/tests/tnimterop.nim +++ b/tests/tnimterop.nim @@ -2,6 +2,7 @@ import nimterop/cimport cDebug() +cDefine("FORCE") cIncludeDir "include" cAddSearchDir "include" cCompile cSearchPath("test.c") @@ -18,10 +19,14 @@ var s: STRUCT1 s2: STRUCT2 s3: STRUCT3 + s4: STRUCT4 e: ENUM e2: ENUM2 = enum5 + vptr: VOIDPTR + iptr: INTPTR + pt = 3 ct = 4 @@ -31,9 +36,11 @@ s3.field1 = 7 e = enum1 e2 = enum4 - + doAssert test_call_int() == 5 doAssert test_call_int_param(5).field1 == 5 doAssert test_call_int_param2(5, s2).field1 == 11 doAssert test_call_int_param3(5, s).field1 == 10 doAssert test_call_int_param4(e) == e2 + +cAddStdDir() |
