Merge branch 'devel' into bigbreak

Conflicts:
	lib/pure/osproc.nim
This commit is contained in:
Araq
2014-11-03 22:50:55 +01:00
7 changed files with 157 additions and 33 deletions

25
tests/method/tmproto.nim Normal file
View File

@@ -0,0 +1,25 @@
type
Obj1 = ref object {.inheritable.}
Obj2 = ref object of Obj1
method beta(x: Obj1): int
proc delta(x: Obj2): int =
beta(x)
method beta(x: Obj2): int
proc alpha(x: Obj1): int =
beta(x)
method beta(x: Obj1): int = 1
method beta(x: Obj2): int = 2
proc gamma(x: Obj1): int =
beta(x)
doAssert alpha(Obj1()) == 1
doAssert gamma(Obj1()) == 1
doAssert alpha(Obj2()) == 2
doAssert gamma(Obj2()) == 2
doAssert delta(Obj2()) == 2

22
tests/method/trecmeth.nim Normal file
View File

@@ -0,0 +1,22 @@
# Note: We only compile this to verify that code generation
# for recursive methods works, no code is being executed
type
Obj = ref object of TObject
# Mutual recursion
method alpha(x: Obj)
method beta(x: Obj)
method alpha(x: Obj) =
beta(x)
method beta(x: Obj) =
alpha(x)
# Simple recursion
method gamma(x: Obj) =
gamma(x)

View File

@@ -0,0 +1,21 @@
import os, osproc
when defined(Windows):
const ProgramWhichDoesNotEnd = "notepad"
else:
const ProgramWhichDoesNotEnd = "/bin/sh"
echo("starting " & ProgramWhichDoesNotEnd)
var process = startProcess(ProgramWhichDoesNotEnd)
sleep(500)
echo("stopping process")
process.terminate()
var TimeToWait = 5000
while process.running() and TimeToWait > 0:
sleep(100)
TimeToWait = TimeToWait - 100
if process.running():
echo("FAILED")
else:
echo("SUCCESS")