diff options
| author | Timothee Cour <timothee.cour2@gmail.com> | 2018-12-29 14:49:01 -0800 |
|---|---|---|
| committer | Timothee Cour <timothee.cour2@gmail.com> | 2018-12-29 14:49:01 -0800 |
| commit | 6cc1e66ee20d081403faeacb10761a33747ea64f (patch) | |
| tree | ee9a7628d6f9b6c195c63197ca6887c73c60739b | |
| parent | 9f7d2ca95637e6026336c9b1e264b321784737f4 (diff) | |
| download | nimterop-6cc1e66ee20d081403faeacb10761a33747ea64f.tar.gz nimterop-6cc1e66ee20d081403faeacb10761a33747ea64f.zip | |
fix #15 by re-enabling nim cpp on c file and selectively disabling failing things
| -rw-r--r-- | nimterop.nimble | 2 | ||||
| -rw-r--r-- | tests/tnimterop_c.nim | 23 |
2 files changed, 20 insertions, 5 deletions
diff --git a/nimterop.nimble b/nimterop.nimble index 0510abf..c3c87a7 100644 --- a/nimterop.nimble +++ b/nimterop.nimble @@ -18,7 +18,7 @@ proc execCmd(cmd:string)= task test, "Test": execCmd "nim c -r tests/tnimterop_c.nim" - # execCmd "nim cpp -r tests/tnimterop_c.nim" + execCmd "nim cpp -r tests/tnimterop_c.nim" execCmd "nim cpp -r tests/tnimterop_cpp.nim" # when defined(windows): # execCmd "nim c -r tests/tmath.nim" diff --git a/tests/tnimterop_c.nim b/tests/tnimterop_c.nim index 1fd92b5..0f53556 100644 --- a/tests/tnimterop_c.nim +++ b/tests/tnimterop_c.nim @@ -54,7 +54,11 @@ s.field1 = 5 s2.field1 = 6 s3.field1 = 7 s4.field2[2] = 5 -s4.field3[3] = enum1 +when defined(cpp): + discard # TODO +else: # TODO: what's `defined(cpp)` for c ? + s4.field3[3] = enum1 + s5.tci = test_call_int s5.tcp = test_call_param s5.tcp8 = test_call_param8 @@ -71,13 +75,24 @@ check test_call_int() == 5 check test_call_param(5).field1 == 5 check test_call_param2(5, s2).field1 == 11 check test_call_param3(5, s).field1 == 10 -check test_call_param4(e) == e2 +# error: assigning to 'enum ENUM' from incompatible type 'NI' (aka 'long long') +when defined(cpp): + discard # TODO +else: + check test_call_param4(e) == e2 check test_call_param5(5.0).field2 == 5.0 check test_call_param6(u2) == 'c' u.field1 = 4 check test_call_param7(u) == 4 -check test_call_param8(addr i) == 25.0 -check i == 25 + +when defined(cpp): + # TODO + # note: candidate function not viable: no known conversion from 'NI *' (aka 'long long *') to 'int *' for 1st argument + # check test_call_param8(cast[ptr int](addr i)) == 25.0 + discard +else: + check test_call_param8(addr i) == 25.0 + check i == 25 check e3 == enum7 check e4 == enum11 |
