aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGanesh Viswanathan <dev@genotrance.com>2018-11-21 23:45:12 -0600
committerGanesh Viswanathan <dev@genotrance.com>2018-11-21 23:45:12 -0600
commitb9b5174759b6dd1f94404b2f63637d406aec4983 (patch)
tree1f26d0fe80a14614e64cd1215800f9f857a0c123 /tests
parenta8bb2dc01f99a2866f586f6e1491a512ce9b3cfa (diff)
downloadnimterop-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.c4
-rw-r--r--tests/include/test.h9
-rw-r--r--tests/tnimterop.nim9
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()