mirror of
https://github.com/godotengine/godot-cpp.git
synced 2026-01-03 18:09:13 +03:00
Add automated tests that run a GDExtension (rather than just building it)
This commit is contained in:
59
test/project/test_base.gd
Normal file
59
test/project/test_base.gd
Normal file
@@ -0,0 +1,59 @@
|
||||
extends Node
|
||||
|
||||
var test_passes := 0
|
||||
var test_failures := 0
|
||||
|
||||
func __get_stack_frame():
|
||||
var me = get_script()
|
||||
for s in get_stack():
|
||||
if s.source == me.resource_path:
|
||||
return s
|
||||
return null
|
||||
|
||||
func __assert_pass():
|
||||
test_passes += 1
|
||||
|
||||
func __assert_fail():
|
||||
test_failures += 1
|
||||
var s = __get_stack_frame()
|
||||
if s != null:
|
||||
print_rich ("[color=red] == FAILURE: In function %s() from '%s' on line %s[/color]" % [s.function, s.source, s.line])
|
||||
else:
|
||||
print_rich ("[color=red] == FAILURE (run with --debug to get more information!) ==[/color]")
|
||||
|
||||
func assert_equal(actual, expected):
|
||||
if actual == expected:
|
||||
__assert_pass()
|
||||
else:
|
||||
__assert_fail()
|
||||
print (" |-> Expected '%s' but got '%s'" % [expected, actual])
|
||||
|
||||
func assert_true(v):
|
||||
assert_equal(v, true)
|
||||
|
||||
func assert_false(v):
|
||||
assert_equal(v, false)
|
||||
|
||||
func assert_not_equal(actual, expected):
|
||||
if actual != expected:
|
||||
__assert_pass()
|
||||
else:
|
||||
__assert_fail()
|
||||
print (" |-> Expected '%s' NOT to equal '%s'" % [expected, actual])
|
||||
|
||||
func exit_with_status() -> void:
|
||||
var success: bool = (test_failures == 0)
|
||||
print ("")
|
||||
print_rich ("[color=%s] ==== TESTS FINISHED ==== [/color]" % ("green" if success else "red"))
|
||||
print ("")
|
||||
print_rich (" PASSES: [color=green]%s[/color]" % test_passes)
|
||||
print_rich (" FAILURES: [color=red]%s[/color]" % test_failures)
|
||||
print ("")
|
||||
|
||||
if success:
|
||||
print_rich("[color=green] ******** PASSED ******** [/color]")
|
||||
else:
|
||||
print_rich("[color=red] ******** FAILED ********[/color]")
|
||||
print("")
|
||||
|
||||
get_tree().quit(0 if success else 1)
|
||||
Reference in New Issue
Block a user