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) } }