diff options
Diffstat (limited to 'tests/misc/tnew.nim')
-rw-r--r-- | tests/misc/tnew.nim | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/tests/misc/tnew.nim b/tests/misc/tnew.nim deleted file mode 100644 index 41ef3fa19..000000000 --- a/tests/misc/tnew.nim +++ /dev/null @@ -1,59 +0,0 @@ -discard """ -matrix: "--mm:refc" -outputsub: ''' -Simple tree node allocation worked! -Simple cycle allocation worked! -''' -joinable: false -""" - -# Test the implementation of the new operator -# and the code generation for gc walkers -# (and the garbage collector): - -## todo fixme it doesn't work for ORC -type - PNode = ref TNode - TNode = object - data: int - str: string - le, ri: PNode - - TStressTest = ref array[0..45, array[1..45, TNode]] - -proc finalizer(n: PNode) = - write(stdout, n.data) - write(stdout, " is now freed\n") - -proc newNode(data: int, le, ri: PNode): PNode = - new(result, finalizer) - result.le = le - result.ri = ri - result.data = data - -# now loop and build a tree -proc main() = - var - i = 0 - p: TStressTest - while i < 1000: - var n: PNode - - n = newNode(i, nil, newNode(i + 10000, nil, nil)) - inc(i) - new(p) - - write(stdout, "Simple tree node allocation worked!\n") - i = 0 - while i < 1000: - var m = newNode(i + 20000, nil, nil) - var k = newNode(i + 30000, nil, nil) - m.le = m - m.ri = k - k.le = m - k.ri = k - inc(i) - - write(stdout, "Simple cycle allocation worked!\n") - -main() |