$ make test
CI=1 \
LOG_LEVEL=info \
GOTRACEBACK=1 \
GODEBUG=sbrk=1,gctrace=1,asyncpreemptoff=1,cgocheck=0,invalidptr=1,clobberfree=1,tracebackancestors=5 \
/bin/godot --headless --verbose --path test/demo/
Godot Engine v4.0.stable.custom_build.92bee43ad - https://godotengine.org
TextServer: Added interface "Dummy"
TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)"
Using "default" pen tablet driver...
JoypadLinux: udev enabled and loaded successfully.
TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)".
INFO gdextension/classdb.go:524 gdclass registered {"name": "Example", "parent_type": "Control"}
CORE API HASH: 132356682
EDITOR API HASH: 2535829357
Loaded builtin certs
INFO gdextension/wrapped_gdclass.go:145 GDClass instance created {"object_id": 24427626987, "class_name": "Example", "parent_name": "Control", "inst": "0x7f3294f93ee8", "owner": "0xda27870", "object": "0xda27870", "inst.GetGodotObjectOwner": "0xda27870"}
INFO gdextension/classdb.go:599 GoCallback_ClassDBGetVirtualFunc called {"type_name": "Example", "method": "_get_minimum_size"}
INFO gdextension/classdb.go:599 GoCallback_ClassDBGetVirtualFunc called {"type_name": "Example", "method": "_enter_tree"}
INFO gdextension/classdb.go:599 GoCallback_ClassDBGetVirtualFunc called {"type_name": "Example", "method": "_input"}
INFO gdextension/classdb.go:599 GoCallback_ClassDBGetVirtualFunc called {"type_name": "Example", "method": "_shortcut_input"}
INFO gdextension/classdb.go:599 GoCallback_ClassDBGetVirtualFunc called {"type_name": "Example", "method": "_unhandled_input"}
INFO gdextension/classdb.go:599 GoCallback_ClassDBGetVirtualFunc called {"type_name": "Example", "method": "_unhandled_key_input"}
INFO gdextension/classdb.go:599 GoCallback_ClassDBGetVirtualFunc called {"type_name": "Example", "method": "_process"}
INFO gdextension/classdb.go:599 GoCallback_ClassDBGetVirtualFunc called {"type_name": "Example", "method": "_physics_process"}
INFO gdextension/classdb.go:599 GoCallback_ClassDBGetVirtualFunc called {"type_name": "Example", "method": "_ready"}
INFO pkg/example.go:168 Example_Ready called
INFO pkg/example.go:173 Vector3: Created (1.1, 2.2, 3.3) {"x": 1.100000023841858, "y": 2.200000047683716, "z": 3.299999952316284}
INFO pkg/example.go:181 Vector3: Multiply Vector3 by 2 {"x": 2.200000047683716, "y": 4.400000095367432, "z": 6.599999904632568}
INFO pkg/example.go:189 Vector3: Add (1,2,3) {"x": 12.199999809265137, "y": 24.399999618530273, "z": 36.599998474121094}
INFO pkg/example.go:197 Vector3: Multiply (5,10,15) {"x": 61, "y": 244, "z": 549}
INFO pkg/example.go:205 Vector3: Substract (x,y,0) {"x": 0, "y": 0, "z": 549}
INFO pkg/example.go:213 Vector3: Normalized {"x": 0, "y": 0, "z": 1}
INFO pkg/example.go:221 Vector3: Equality Check {"x": 0, "y": 0, "z": 1, "equal": true}
Signal bind
Static method calls
static (109) 109
void static
Instance method calls
Simple func called.
Simple const func called 123.
Return something called (8 values cancatenated as a string).
returned (1. some string, 2. 1.166667, 3. 1166.666667, 4. 2147483647, 5. -127, 6. -32768, 7. 2147483647, 8. 9223372036854775807)
Return something const called.
viewport instance id: -1979710965
returned const root:<Window#23790092811>
returned (1.2, 3.4, 5.6, 7.8)
Method calls with default values
defval (300) 300
defval (250) 250
defval (150) 150
Array and Dictionary
test array [1, 2]
test dictionary { "hello": "world", "foo": "bar" }
Properties
custom position is (0, 0)
custom position now is (50, 50)
Constnts
FIRST 0
ANSWER_TO_EVERYTHING 42
CONSTANT_WITHOUT_ENUM 314
Others
CastTo
app is ready CI= 1
CI env var detected: automating interactions
Example emitted: Button 42
force quit
INFO gdextension/classdb.go:599 GoCallback_ClassDBGetVirtualFunc called {"type_name": "Example", "method": "_draw"}
INFO gdextension/classdb.go:599 GoCallback_ClassDBGetVirtualFunc called {"type_name": "Example", "method": "_exit_tree"}
INFO gdextension/wrapped_gdclass.go:165 GoCallback_GDExtensionClassFreeInstance called {"type_name": "Example", "ptr": "0x7f3294f93f38", "w": "0x7f3294f93ee8", "w.GetGodotObjectOwner()": "0xda27870"}
INFO gdextension/wrapped_gdclass.go:180 GDClass instance freed {"id": 24427626987}
XR: Clearing primary interface
XR: Removed interfaceNative mobile
XR: Removed interfaceOpenXR
ERROR: Trying to unreference a SafeRefCount which is already zero is wrong and a symptom of it being misused.
Upon a SafeRefCount reaching zero any object whose lifetime is tied to it, as well as the ref count itself, must be destroyed.
Moreover, to guarantee that, no multiple threads should be racing to do the final unreferencing to zero.
at: _check_unref_sanity (./core/templates/safe_refcount.h:176)
================================================================
handle_crash: Program crashed with signal 4
Engine version: Godot Engine v4.0.stable.custom_build (92bee43adba8d2401ef40e2480e53087bcb1eaf1)
Dumping the backtrace.
[1] /lib/x86_64-linux-gnu/libpthread.so.0(+0x14420) [0x7f32d86db420] (??:0)
[2] StringName::unref() (/workspace/godot/./core/templates/safe_refcount.h:173)
[3] StringName::~StringName() (/workspace/godot/./core/string/string_name.h:182)
[4] KeyValue<StringName, PropertyInfo>::~KeyValue() (/workspace/godot/./core/templates/pair.h:82)
[5] HashMapElement<StringName, PropertyInfo>::~HashMapElement() (/workspace/godot/./core/templates/hash_map.h:55)
[6] void memdelete<HashMapElement<StringName, PropertyInfo> >(HashMapElement<StringName, PropertyInfo>*) (/workspace/godot/./core/os/memory.h:109)
[7] DefaultTypedAllocator<HashMapElement<StringName, PropertyInfo> >::delete_allocation(HashMapElement<StringName, PropertyInfo>*) (/workspace/godot/./core/os/memory.h:206)
[8] HashMap<StringName, PropertyInfo, HashMapHasherDefault, HashMapComparatorDefault<StringName>, DefaultTypedAllocator<HashMapElement<StringName, PropertyInfo> > >::clear() (/workspace/godot/./core/templates/hash_map.h:265)
[9] HashMap<StringName, PropertyInfo, HashMapHasherDefault, HashMapComparatorDefault<StringName>, DefaultTypedAllocator<HashMapElement<StringName, PropertyInfo> > >::~HashMap() (/workspace/godot/./core/templates/hash_map.h:582)
[10] ClassDB::ClassInfo::~ClassInfo() (/workspace/godot/./core/object/class_db.h:137)
[11] KeyValue<StringName, ClassDB::ClassInfo>::~KeyValue() (/workspace/godot/./core/templates/pair.h:82)
[12] HashMapElement<StringName, ClassDB::ClassInfo>::~HashMapElement() (/workspace/godot/./core/templates/hash_map.h:55)
[13] void memdelete<HashMapElement<StringName, ClassDB::ClassInfo> >(HashMapElement<StringName, ClassDB::ClassInfo>*) (/workspace/godot/./core/os/memory.h:109)
[14] DefaultTypedAllocator<HashMapElement<StringName, ClassDB::ClassInfo> >::delete_allocation(HashMapElement<StringName, ClassDB::ClassInfo>*) (/workspace/godot/./core/os/memory.h:206)
[15] HashMap<StringName, ClassDB::ClassInfo, HashMapHasherDefault, HashMapComparatorDefault<StringName>, DefaultTypedAllocator<HashMapElement<StringName, ClassDB::ClassInfo> > >::clear() (/workspace/godot/./core/templates/hash_map.h:265)
[16] ClassDB::cleanup() (/workspace/godot/core/object/class_db.cpp:1600)
[17] unregister_core_types() (/workspace/godot/core/register_core_types.cpp:431)
[18] Main::cleanup(bool) (/workspace/godot/main/main.cpp:3419)
[19] /bin/godot(main+0x220) [0x23ce2e0] (/workspace/godot/platform/linuxbsd/godot_linuxbsd.cpp:75)
[20] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7f32d83a4083] (??:0)
[21] /bin/godot(_start+0x2e) [0x23cdffe] (??:?)
-- END OF BACKTRACE --
================================================================
Aborted (core dumped)
make: *** [Makefile:77: test] Error 134
$ cat custom.py
optimize = "debug"
module_mono_enabled = "no"
use_llvm = "yes"
dev_build = "yes"
generate_bindings= "yes"
$ scons profile=custom.py