aboutsummaryrefslogtreecommitdiff
path: root/tests/tnimterop_cpp.nim
diff options
context:
space:
mode:
authorTimothee Cour <timothee.cour2@gmail.com>2018-11-27 18:06:17 -0500
committerTimothee Cour <timothee.cour2@gmail.com>2018-11-27 18:28:14 -0500
commitd00aeeafdd54134ff294dc4459a6b8cbaa560f8d (patch)
tree5cdd3b1d174eab612618cafeff60486b704149cf /tests/tnimterop_cpp.nim
parentfb053dd81eca9a45a813a7d7b0de868c28203976 (diff)
downloadnimterop-d00aeeafdd54134ff294dc4459a6b8cbaa560f8d.tar.gz
nimterop-d00aeeafdd54134ff294dc4459a6b8cbaa560f8d.zip
add syntax cIncludeDir "$projpath/include"; do not use recursive search paths; add test tests/tnimterop_cpp.nim
Diffstat (limited to 'tests/tnimterop_cpp.nim')
-rw-r--r--tests/tnimterop_cpp.nim49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/tnimterop_cpp.nim b/tests/tnimterop_cpp.nim
new file mode 100644
index 0000000..b3d62f5
--- /dev/null
+++ b/tests/tnimterop_cpp.nim
@@ -0,0 +1,49 @@
+import nimterop/cimport
+import unittest
+
+cDebug()
+
+cIncludeDir "$projpath/include"
+cAddSearchDir "$projpath/include"
+cCompile cSearchPath "test2.cpp"
+# TODO: allow this to have correct language: cImport("test2.h")
+cImport cSearchPath "test2.hpp"
+
+check TEST_INT == 512
+check test_call_int() == 5
+
+var foo: Foo
+check foo.bar == 2
+
+# var foo2: Foo2[int]
+# var foo2: Foo2Int
+
+when false:
+ doAssert TEST_FLOAT == 5.12
+ doAssert TEST_HEX == 0x512
+
+ var
+ pt: PRIMTYPE
+ ct: CUSTTYPE
+
+ s: STRUCT1
+ s2: STRUCT2
+ s3: STRUCT3
+
+ e: ENUM
+ e2: ENUM2 = enum5
+
+ pt = 3
+ ct = 4
+
+ s.field1 = 5
+ s2.field1 = 6
+ s3.field1 = 7
+
+ e = enum1
+ e2 = enum4
+
+ 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