feat: add input validation and stack trace filtering for Timer.sleep
Add type and range checks to Timer.sleep() in both C source and Wren implementation, aborting with descriptive errors for non-numeric or negative arguments. Introduce six new test files covering sleep with fibers, float durations, main fiber, zero milliseconds, negative values, and non-numeric input. Fix stack trace parsing in test runner to skip builtin library frames by iterating through error lines until a main-line match is found.
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
import "timer" for Timer
|
||||
|
||||
// These are both rounded to 1, so "a" should complete first.
|
||||
Fiber.new {
|
||||
Timer.sleep(1.5)
|
||||
IO.print("a")
|
||||
}.call()
|
||||
|
||||
Fiber.new {
|
||||
Timer.sleep(1.3)
|
||||
IO.print("b")
|
||||
}.call()
|
||||
|
||||
IO.print("main")
|
||||
Timer.sleep(3)
|
||||
IO.print("done")
|
||||
// expect: main
|
||||
// expect: a
|
||||
// expect: b
|
||||
// expect: done
|
||||
Reference in New Issue
Block a user