fix: 修复聊天系统编译错误
- 修复 WebSocketManager/SocketIOClient 函数缩进错误 - 重命名 is_connected() 避免与 Object 基类冲突 - 修复 tscn 文件多余前导空格 - 修复测试文件 GUT 断言函数调用 - 添加 GUT 测试框架
This commit is contained in:
85
addons/gut/gut_tracked_error.gd
Normal file
85
addons/gut/gut_tracked_error.gd
Normal file
@@ -0,0 +1,85 @@
|
||||
class_name GutTrackedError
|
||||
## This contains all the information provided by Godot about an error.
|
||||
## This is also used to represent a GUT error. See [Logger] for
|
||||
## additional information about properties. Some properties are not populated
|
||||
## for GUT errors.
|
||||
|
||||
## This will be an [code]Array[ScriptBacktrace][/code] for engine/push errors.
|
||||
## This will the result of [code]get_stack[/code] for GUT errors.
|
||||
var backtrace = []
|
||||
## Usually the description
|
||||
var code = GutUtils.NO_TEST
|
||||
var rationale = GutUtils.NO_TEST
|
||||
## [enum Logger.ErrorType] value or, for GUT errors, this will be [code skip-lint]GutUtils.GUT_ERROR_TYPE[/code].
|
||||
var error_type = -1
|
||||
var editor_notify = false
|
||||
|
||||
## The full path to the file where the error occurred.
|
||||
var file = GutUtils.NO_TEST
|
||||
## The function name in [member file] where the error occurred.
|
||||
var function = GutUtils.NO_TEST
|
||||
## The line number in [member file]
|
||||
var line = -1
|
||||
|
||||
## Used by GUT to flag errors as being handled. This is set by various asserts
|
||||
## or can be set in a test. When set to [code]true[/code] GUT will ignore it
|
||||
## when determining if an unexpected error occurred during the execution of the
|
||||
## test. Setting this value prior to performing any of the error related
|
||||
## asserts may have unexpected results. It is recommended you either set this
|
||||
## manually or use the error asserts.
|
||||
var handled = false
|
||||
|
||||
|
||||
## _to_string that is not _to_string.
|
||||
func to_s() -> String:
|
||||
return str("CODE:", code, " TYPE:", error_type, " RATIONALE:", rationale, "\n",
|
||||
file, '->', function, '@', line, "\n",
|
||||
backtrace, "\n")
|
||||
|
||||
|
||||
## Returns [code]true[/code] if the error is a push_error.
|
||||
func is_push_error():
|
||||
return error_type != GutUtils.GUT_ERROR_TYPE and function == "push_error"
|
||||
|
||||
|
||||
## Returns [code]true[/code] if the error is an engine error. This includes
|
||||
## all errors that pass through the [Logger] that do not originate from the
|
||||
## [code]push_error[/code] function.
|
||||
func is_engine_error():
|
||||
return error_type != GutUtils.GUT_ERROR_TYPE and !is_push_error()
|
||||
|
||||
|
||||
## Returns [code]true[/code] if the error is a GUT error. Some fields may not
|
||||
## be populated for GUT errors.
|
||||
func is_gut_error():
|
||||
return error_type == GutUtils.GUT_ERROR_TYPE
|
||||
|
||||
|
||||
func contains_text(text):
|
||||
return code.to_lower().find(text.to_lower()) != -1 or \
|
||||
rationale.to_lower().find(text.to_lower()) != -1
|
||||
|
||||
|
||||
## For display purposes only, the actual value returned may change over time.
|
||||
## This returns a name for the error_type as far as this class is concerned.
|
||||
## Use the various [code]is_[/code] methods to check if an error is a certain
|
||||
## type.
|
||||
func get_error_type_name():
|
||||
var to_return = "Unknown"
|
||||
|
||||
if(is_gut_error()):
|
||||
to_return = "GUT"
|
||||
elif(is_push_error()):
|
||||
to_return = "push_error"
|
||||
elif(is_engine_error()):
|
||||
to_return = str("engine-", error_type)
|
||||
|
||||
return to_return
|
||||
|
||||
|
||||
# this might not work in other languages, and feels falkey, but might be
|
||||
# useful at some point.
|
||||
# func is_assert():
|
||||
# return error_type == Logger.ERROR_TYPE_SCRIPT and \
|
||||
# (code.find("Assertion failed.") == 0 or \
|
||||
# code.find("Assertion failed:") == 0)
|
||||
Reference in New Issue
Block a user