summary refs log tree commit diff stats
path: root/tests/dll/server.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2011-11-07 23:25:34 +0100
committerAraq <rumpf_a@web.de>2011-11-07 23:25:34 +0100
commit0b4d5e45b9a6a78f1d661d119cd76f41fecaefea (patch)
tree5848807ddc889a5eea463108db8d1d7dd15955f5 /tests/dll/server.nim
parent0ce9d4960144468c12de493487ada62e8eb04f5d (diff)
downloadNim-0b4d5e45b9a6a78f1d661d119cd76f41fecaefea.tar.gz
tester checks exitcode; osproc additions; DLL fixes; taint mode fixes
Diffstat (limited to 'tests/dll/server.nim')
-rw-r--r--tests/dll/server.nim27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/dll/server.nim b/tests/dll/server.nim
new file mode 100644
index 000000000..a826ee2a7
--- /dev/null
+++ b/tests/dll/server.nim
@@ -0,0 +1,27 @@
+discard """
+  cmd: "nimrod cc --debuginfo --hints:on --define:useNimRtl --app:lib $# $#"
+"""
+
+type
+  TNodeKind = enum nkLit, nkSub, nkAdd, nkDiv, nkMul
+  TNode = object
+    case k: TNodeKind
+    of nkLit: x: int
+    else: a, b: ref TNode
+
+  PNode = ref TNode
+    
+proc newLit(x: int): PNode {.exportc: "newLit", dynlib.} =
+  new(result)
+  result.x = x
+  
+proc newOp(k: TNodeKind, a, b: PNode): PNode {.exportc: "newOp", dynlib.} =
+  assert a != nil
+  assert b != nil
+  new(result)
+  result.k = k
+  result.a = a
+  result.b = b
+  
+proc buildTree(x: int): PNode {.exportc: "buildTree", dynlib.} = 
+  result = newOp(nkMul, newOp(nkAdd, newLit(x), newLit(x)), newLit(x))