mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-17 08:34:20 +00:00
Merge branch 'devel' into bigbreak
Conflicts: lib/pure/osproc.nim
This commit is contained in:
25
tests/method/tmproto.nim
Normal file
25
tests/method/tmproto.nim
Normal 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
22
tests/method/trecmeth.nim
Normal 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)
|
||||
|
||||
21
tests/stdlib/tosprocterminate.nim
Normal file
21
tests/stdlib/tosprocterminate.nim
Normal 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")
|
||||
Reference in New Issue
Block a user