54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
package luajit_test
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
luajit "git.sharkk.net/Sky/LuaJIT-to-Go"
|
|
)
|
|
|
|
func TestLuaError(t *testing.T) {
|
|
err := &luajit.LuaError{
|
|
Code: 123,
|
|
Message: "test error",
|
|
}
|
|
|
|
expected := "lua error (code=123): test error"
|
|
if err.Error() != expected {
|
|
t.Errorf("Expected error message %q, got %q", expected, err.Error())
|
|
}
|
|
}
|
|
|
|
func TestGetStackTrace(t *testing.T) {
|
|
s := luajit.New()
|
|
defer s.Close()
|
|
|
|
// Test with debug library available
|
|
trace := s.GetStackTrace()
|
|
if !strings.Contains(trace, "stack traceback:") {
|
|
t.Errorf("Expected trace to contain 'stack traceback:', got %q", trace)
|
|
}
|
|
|
|
// Test when debug table is not available
|
|
err := s.DoString("debug = nil")
|
|
if err != nil {
|
|
t.Fatalf("Failed to set debug to nil: %v", err)
|
|
}
|
|
|
|
trace = s.GetStackTrace()
|
|
if trace != "debug table not available" {
|
|
t.Errorf("Expected 'debug table not available', got %q", trace)
|
|
}
|
|
|
|
// Test when debug.traceback is not available
|
|
err = s.DoString("debug = {}")
|
|
if err != nil {
|
|
t.Fatalf("Failed to set debug to empty table: %v", err)
|
|
}
|
|
|
|
trace = s.GetStackTrace()
|
|
if trace != "debug.traceback not available" {
|
|
t.Errorf("Expected 'debug.traceback not available', got %q", trace)
|
|
}
|
|
}
|