aboutsummaryrefslogtreecommitdiffstats
path: root/spec/test_setup.moon
diff options
context:
space:
mode:
Diffstat (limited to 'spec/test_setup.moon')
-rw-r--r--spec/test_setup.moon26
1 files changed, 20 insertions, 6 deletions
diff --git a/spec/test_setup.moon b/spec/test_setup.moon
index 92bb61e..c25cb14 100644
--- a/spec/test_setup.moon
+++ b/spec/test_setup.moon
@@ -1,20 +1,34 @@
import Constant, Scope, Op, Tag from require 'alv'
import Copilot from require 'alv.copilot.base'
-import Module from require 'alv.module'
+import Module, StringModule from require 'alv.module'
import Logger from require 'alv.logger'
-Logger\init 'silent'
+import Error from require 'alv.error'
+import RTNode from require 'alv.rtnode'
+Logger\init 'error'
class TestPilot extends Copilot
new: (code) =>
- @T = 0
- @active_module = Module!
+ super!
+
+ if code
+ @active_module = StringModule 'main', code
+ @last_modules.__root = @active_module
+ @tick!
+ else
+ @active_module = Module!
+ @last_modules.__root = @active_module
begin_eval: => @active_module.registry\begin_eval!
end_eval: => @active_module.registry\end_eval!
next_tick: => @T += 1
- require: =>
- error "not implemented"
+ require: (name) =>
+ Error.wrap "loading module '#{name}'", ->
+ ok, lua = pcall require, "alv-lib.#{name}"
+ if ok
+ RTNode result: Constant.wrap lua
+ else
+ error Error 'import', "module not found"
export COPILOT