diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2020-08-14 10:52:28 +0000 |
|---|---|---|
| committer | s-ol <s+removethis@s-ol.nu> | 2025-03-02 14:24:49 +0000 |
| commit | 498890e32b54b47972ea9886473b6b8d9481d602 (patch) | |
| tree | bff03837984d4d010c5f60318950ac8ac7b2c8bb /spec | |
| parent | start working on language spec (diff) | |
| download | alive-498890e32b54b47972ea9886473b6b8d9481d602.tar.gz alive-498890e32b54b47972ea9886473b6b8d9481d602.zip | |
throw TestPilot errors instead of logging
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/test_setup.moon | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/spec/test_setup.moon b/spec/test_setup.moon index c25cb14..965b2e7 100644 --- a/spec/test_setup.moon +++ b/spec/test_setup.moon @@ -4,12 +4,22 @@ import Module, StringModule from require 'alv.module' import Logger from require 'alv.logger' import Error from require 'alv.error' import RTNode from require 'alv.rtnode' + Logger\init 'error' +os.time = do + t = 0 + -> + t += 1 + t + +export COPILOT class TestPilot extends Copilot new: (code) => super! + COPILOT = @ + if code @active_module = StringModule 'main', code @last_modules.__root = @active_module @@ -22,6 +32,25 @@ class TestPilot extends Copilot end_eval: => @active_module.registry\end_eval! next_tick: => @T += 1 + --- poll for changes and tick. + tick: => + return unless @last_modules.__root + + @T += 1 + + ok, err = @poll! + if not ok + error err + + root = @last_modules.__root + if root and root.root + L\set_time 'run' + ok, error = Error.try "updating", -> + root.root\poll_io! + root.root\tick! + if not ok + error + require: (name) => Error.wrap "loading module '#{name}'", -> ok, lua = pcall require, "alv-lib.#{name}" @@ -30,13 +59,11 @@ class TestPilot extends Copilot else error Error 'import', "module not found" -export COPILOT - { :TestPilot do_setup: -> - COPILOT = TestPilot! + TestPilot! COPILOT\begin_eval! do_teardown: -> |
