1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package lua
- import (
- "fmt"
- "github.com/yuin/gopher-lua/parse"
- "os"
- "testing"
- )
- const maxMemory = 40
- var gluaTests []string = []string{
- "base.lua",
- "coroutine.lua",
- "db.lua",
- "issues.lua",
- "os.lua",
- "table.lua",
- "vm.lua",
- "math.lua",
- "strings.lua",
- }
- var luaTests []string = []string{
- "attrib.lua",
- "calls.lua",
- "closure.lua",
- "constructs.lua",
- "events.lua",
- "literals.lua",
- "locals.lua",
- "math.lua",
- "sort.lua",
- "strings.lua",
- "vararg.lua",
- "pm.lua",
- "files.lua",
- }
- func testScriptCompile(t *testing.T, script string) {
- file, err := os.Open(script)
- if err != nil {
- t.Fatal(err)
- return
- }
- chunk, err2 := parse.Parse(file, script)
- if err2 != nil {
- t.Fatal(err2)
- return
- }
- parse.Dump(chunk)
- proto, err3 := Compile(chunk, script)
- if err3 != nil {
- t.Fatal(err3)
- return
- }
- proto.String()
- }
- func testScriptDir(t *testing.T, tests []string, directory string) {
- if err := os.Chdir(directory); err != nil {
- t.Error(err)
- }
- defer os.Chdir("..")
- for _, script := range tests {
- fmt.Printf("testing %s/%s\n", directory, script)
- testScriptCompile(t, script)
- L := NewState(Options{
- RegistrySize: 1024 * 20,
- CallStackSize: 1024,
- })
- L.SetMx(maxMemory)
- if err := L.DoFile(script); err != nil {
- t.Error(err)
- }
- L.Close()
- }
- }
- func TestGlua(t *testing.T) {
- testScriptDir(t, gluaTests, "_glua-tests")
- }
- func TestLua(t *testing.T) {
- testScriptDir(t, luaTests, "_lua5.1-tests")
- }
|