bitwes/Gut

Using skip_script gives spurious orphan reports

hatmix opened this issue · 3 comments

Noticed this in bigger work, but reduced it to minimal example. My output is from headless, but it also happens in editor.

STR: new project in 4.2.2.stable, with only GUT addon. One test script containing only:

extends GutTest

var skip_script = "Does this cause orphans?"

Running test gives output:

> D:/GodotEngine/4.2.2-stable/Godot_v4.2.2-stable_win64_console.exe --headless --path . -s addons/gut/gut_cmdln.gd --verbose -gexit
Godot Engine v4.2.2.stable.official.15073afe3 - https://godotengine.org
TextServer: Added interface "Dummy"
TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)"
Using "default" pen tablet driver...

TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)".
CORE API HASH: 2995524600
EDITOR API HASH: 3767149329
Loaded system CA certificates


 ---  Gut  ---
[INFO]:  using [.../AppData/Roaming/Godot/app_userdata/[unnamed project]] for temporary output.
Godot version:  4.2.2
GUT version:  9.2.1
    - [Script skipped]:  Does this cause orphans?




==============================================
= Run Summary
==============================================

test/test_skip_script_orphans.gd
    [Risky] Script was skipped:  Does this cause orphans?

---- Totals ----
Scripts           none
Tests             none
  Passing         none
  Risky/Pending   1
Asserts           none
Time              0.031s


[Orphans]:  1 new orphan in total.
Note:  This count does not include GUT objects that will be freed upon exit.
       It also does not include any orphans created by global scripts
       loaded before tests were ran.
Total orphans = 1

---- 1 pending/risky tests. ----

XR: Clearing primary interface
XR: Removed interface "Native mobile"
XR: Removed interface "OpenXR"
WARNING: ObjectDB instances leaked at exit (run with --verbose for details).
     at: cleanup (core/object/object.cpp:2209)
Leaked instance: GDScriptNativeClass:9223372047575417445
Leaked instance: GDScriptNativeClass:9223372049739678438
Leaked instance: GDScript:9223372065040500004 - Resource path: res://addons/gut/logger.gd
Leaked instance: GDScript:9223372065761920296 - Resource path: res://addons/gut/comparator.gd
Leaked instance: GDScript:9223372065996801321 - Resource path: res://addons/gut/compare_result.gd
Leaked instance: GDScript:9223372067221538094 - Resource path: res://addons/gut/input_factory.gd
Leaked instance: GDScript:9223372067456419119 - Resource path: res://addons/gut/input_sender.gd
Leaked instance: GDScript:9223372068882482487 - Resource path: res://addons/gut/parameter_factory.gd
Leaked instance: GDScript:9223372069503239483 - Resource path:
Leaked instance: GDScript:9223372069520016700 - Resource path:
Leaked instance: GDScript:9223372069536793917 - Resource path:
Leaked instance: GDScript:9223372069553571134 - Resource path:
Leaked instance: GDScript:9223372070442763587 - Resource path: res://addons/gut/strutils.gd
Leaked instance: GDScript:9223372071466173767 - Resource path: res://addons/gut/test.gd
Leaked instance: GDScript:9223372078445495691 - Resource path: res://addons/gut/signal_watcher.gd
Leaked instance: RefCounted:9223372076314789383
Leaked instance: RefCounted:9223372076365121032
Leaked instance: RefCounted:9223372076381898249
Leaked instance: RefCounted:9223372077472417310
Leaked instance: RefCounted:9223372078630045217
Leaked instance: RefCounted:9223372078344832546
Leaked instance: RefCounted:9223372078294500899
Leaked instance: Node:41389393444 - Node name:
Leaked instance: GDScript:9223372077841516071 - Resource path: res://test/test_skip_script_orphans.gd
Leaked instance: RefCounted:9223372078680376872
Hint: Leaked instances typically happen when nodes are removed from the scene tree (with `remove_child()`) but not free.
ERROR: Resources still in use at exit (run with --verbose for details).
   at: clear (core/io/resource.cpp:492)
Resource still in use: res://addons/gut/logger.gd (GDScript)
Resource still in use: res://addons/gut/comparator.gd (GDScript)
Resource still in use: res://addons/gut/compare_result.gd (GDScript)
Resource still in use: res://addons/gut/input_factory.gd (GDScript)
Resource still in use: res://addons/gut/input_sender.gd (GDScript)
Resource still in use: res://addons/gut/parameter_factory.gd (GDScript)
Resource still in use: res://addons/gut/strutils.gd (GDScript)
Resource still in use: res://addons/gut/test.gd (GDScript)
Resource still in use: res://test/test_skip_script_orphans.gd (GDScript)
Resource still in use: res://addons/gut/signal_watcher.gd (GDScript)
Orphan StringName: partial_double_singleton (static: 0, total: 1)
Orphan StringName: _lgr (static: 0, total: 12)
Orphan StringName: watch_signal (static: 0, total: 1)
Orphan StringName: is_passing (static: 0, total: 1)
Orphan StringName: set_textbox (static: 0, total: 1)
Orphan StringName: _log (static: 0, total: 1)
Orphan StringName: mouse_left_button_down (static: 0, total: 2)
Orphan StringName: simple (static: 0, total: 1)
Orphan StringName: get_assert_count (static: 0, total: 1)
Orphan StringName: deprecated (static: 0, total: 1)
Orphan StringName: escape (static: 0, total: 4)
Orphan StringName: _are_equal (static: 0, total: 4)
Orphan StringName: _are_double_parameters_valid (static: 0, total: 1)
Orphan StringName: _get_typeof_string (static: 0, total: 1)
Orphan StringName: get_should_compare_int_to_float (static: 0, total: 1)
Orphan StringName: _summary (static: 0, total: 9)
Orphan StringName: get_total_count (static: 0, total: 1)
Orphan StringName: _enter_tree (static: 0, total: 1)
Orphan StringName: yield_frames (static: 0, total: 1)
Orphan StringName: assert_typeof (static: 0, total: 1)
Orphan StringName: add_child_autoqfree (static: 0, total: 1)
Orphan StringName: send_event (static: 0, total: 1)
Orphan StringName: Printer (static: 0, total: 1)
Orphan StringName: _make_missing_string (static: 0, total: 1)
Orphan StringName: set_format_enabled (static: 0, total: 1)
Orphan StringName: mouse_right_button_up (static: 0, total: 2)
Orphan StringName: _unhandled_input (static: 0, total: 1)
Orphan StringName: _create_obj_from_type (static: 0, total: 1)
Orphan StringName: _ready (static: 1, total: 2)
Orphan StringName: _receivers (static: 0, total: 3)
Orphan StringName: assert_property (static: 0, total: 1)
Orphan StringName: get_gut (static: 0, total: 1)
Orphan StringName: _pressed_actions (static: 0, total: 3)
Orphan StringName: _exit_tree (static: 0, total: 1)
Orphan StringName: mouse_motion (static: 0, total: 2)
Orphan StringName: mouse_set_position (static: 0, total: 1)
Orphan StringName: watch_signals (static: 0, total: 2)
Orphan StringName: passed (static: 0, total: 1)
Orphan StringName: _get_fail_msg_including_emitted_signals (static: 0, total: 1)
Orphan StringName: compare_deep (static: 0, total: 1)
Orphan StringName: stub (static: 0, total: 1)
Orphan StringName: _printer_name (static: 0, total: 10)
Orphan StringName: assert_not_between (static: 0, total: 1)
Orphan StringName: set_differences (static: 0, total: 1)
Orphan StringName: release_all (static: 0, total: 1)
Orphan StringName: set_disabled (static: 0, total: 1)
Orphan StringName: _tree_items_parent (static: 0, total: 4)
Orphan StringName: get_emit_count (static: 0, total: 1)
Orphan StringName: _should_print_to_printer (static: 0, total: 1)
Orphan StringName: _str (static: 0, total: 1)
Orphan StringName: wait_seconds (static: 0, total: 1)
Orphan StringName: get_debugs (static: 0, total: 1)
Orphan StringName: _indent_level (static: 0, total: 5)
Orphan StringName: use_parameters (static: 0, total: 1)
Orphan StringName: _find_object_property (static: 0, total: 1)
Orphan StringName: skip_if_godot_version_lt (static: 0, total: 1)
Orphan StringName: skip_if_godot_version_ne (static: 0, total: 1)
Orphan StringName: error (static: 0, total: 1)
Orphan StringName: get_pass_count (static: 0, total: 1)
Orphan StringName: _max_differences (static: 0, total: 4)
Orphan StringName: _block_set (static: 0, total: 1)
Orphan StringName: _setup_local_to_scene (static: 0, total: 14)
Orphan StringName: set_auto_flush_input (static: 0, total: 1)
Orphan StringName: assert_signal_emitted (static: 0, total: 1)
Orphan StringName: assert_eq_shallow (static: 0, total: 1)
Orphan StringName: assert_ne_deep (static: 0, total: 1)
Orphan StringName: _end_yield_gui (static: 0, total: 1)
Orphan StringName: draw_mouse (static: 0, total: 4)
Orphan StringName: _get_filename (static: 0, total: 1)
Orphan StringName: _input_queue (static: 0, total: 3)
Orphan StringName: is_idle (static: 0, total: 1)
Orphan StringName: assert_signal_not_emitted (static: 0, total: 1)
Orphan StringName: double_script (static: 0, total: 1)
Orphan StringName: _pass (static: 0, total: 1)
Orphan StringName: assert_setget (static: 0, total: 1)
Orphan StringName: assert_has_method (static: 0, total: 1)
Orphan StringName: _warn_for_public_accessors (static: 0, total: 1)
Orphan StringName: MISSING (static: 0, total: 1)
Orphan StringName: assert_file_does_not_exist (static: 0, total: 1)
Orphan StringName: get_printer (static: 0, total: 1)
Orphan StringName: _get_indent_text (static: 0, total: 1)
Orphan StringName: _fail_pass_text (static: 0, total: 5)
Orphan StringName: _handle_pressed_keys (static: 0, total: 1)
Orphan StringName: _printers (static: 0, total: 4)
Orphan StringName: InputQueueItem (static: 0, total: 1)
Orphan StringName: lograw (static: 0, total: 1)
Orphan StringName: _indent_text (static: 0, total: 1)
Orphan StringName: _send_event (static: 0, total: 1)
Orphan StringName: get_errors (static: 0, total: 1)
Orphan StringName: set_double_strategy (static: 0, total: 1)
Orphan StringName: does_object_have_signal (static: 0, total: 1)
Orphan StringName: _logs (static: 0, total: 4)
Orphan StringName: EDITOR_PROPERTY (static: 0, total: 1)
Orphan StringName: _print_test_name (static: 0, total: 1)
Orphan StringName: @are_equal_setter (static: 0, total: 1)
Orphan StringName: ARG_NOT_SET (static: 0, total: 1)
Orphan StringName: simulate (static: 0, total: 1)
Orphan StringName: print_object_signals (static: 0, total: 1)
Orphan StringName: _less_test_names (static: 0, total: 5)
Orphan StringName: assert_not_same (static: 0, total: 1)
Orphan StringName: _on_queue_item_ready (static: 0, total: 1)
Orphan StringName: compare (static: 0, total: 1)
Orphan StringName: _add_watched_signal (static: 0, total: 1)
Orphan StringName: _format_enabled (static: 0, total: 10)
Orphan StringName: assert_file_empty (static: 0, total: 1)
Orphan StringName: get_are_equal (static: 0, total: 1)
Orphan StringName: key_down (static: 0, total: 2)
Orphan StringName: set_indent_string (static: 0, total: 1)
Orphan StringName: forward (static: 0, total: 1)
Orphan StringName: cmd_colors (static: 0, total: 4)
Orphan StringName: VARIABLE_PROPERTY (static: 0, total: 1)
Orphan StringName: assert_null (static: 0, total: 1)
Orphan StringName: _show_name (static: 0, total: 10)
Orphan StringName: get_call_count (static: 0, total: 1)
Orphan StringName: assert_has (static: 0, total: 1)
Orphan StringName: mouse_warp (static: 0, total: 4)
Orphan StringName: type2str (static: 0, total: 1)
Orphan StringName: end_yield (static: 0, total: 1)
Orphan StringName: assert_not_called (static: 0, total: 1)
Orphan StringName: disable_all_printers (static: 0, total: 1)
Orphan StringName: CompareResult (static: 0, total: 5)
Orphan StringName: double_scene (static: 0, total: 1)
Orphan StringName: get_receivers (static: 0, total: 1)
Orphan StringName: _last_mouse_position (static: 0, total: 3)
Orphan StringName: add_receiver (static: 0, total: 1)
Orphan StringName: @are_equal_getter (static: 0, total: 1)
Orphan StringName: set_max_differences (static: 0, total: 1)
Orphan StringName: _mouse_draw (static: 0, total: 4)
Orphan StringName: get_call_parameters (static: 0, total: 1)
Orphan StringName: is_key_pressed (static: 0, total: 1)
Orphan StringName: assert_does_not_have (static: 0, total: 1)
Orphan StringName: _yield_calls (static: 0, total: 5)
Orphan StringName: mouse_relative_motion (static: 0, total: 2)
Orphan StringName: _strutils (static: 0, total: 9)
Orphan StringName: _differences (static: 0, total: 3)
Orphan StringName: _str_precision (static: 0, total: 1)
Orphan StringName: _apply_last_position_and_set_last_position (static: 0, total: 1)
Orphan StringName: wait_for_signal (static: 0, total: 1)
Orphan StringName: summary (static: 0, total: 4)
Orphan StringName: _add_queue_item (static: 0, total: 1)
Orphan StringName: idle (static: 0, total: 2)
Orphan StringName: double (static: 0, total: 1)
Orphan StringName: mouse_left_click_at (static: 0, total: 1)
Orphan StringName: @differences_setter (static: 0, total: 1)
Orphan StringName: types (static: 0, total: 9)
Orphan StringName: get_brackets (static: 0, total: 1)
Orphan StringName: assert_not_typeof (static: 0, total: 1)
Orphan StringName: _input (static: 0, total: 1)
Orphan StringName: _should_compare_int_to_float (static: 0, total: 5)
Orphan StringName: pending (static: 0, total: 2)
Orphan StringName: _end_yield_terminal (static: 0, total: 1)
Orphan StringName: get_signals_emitted (static: 0, total: 1)
Orphan StringName: _do_datatypes_match__fail_if_not (static: 0, total: 1)
Orphan StringName: _handle_mouse_position (static: 0, total: 1)
Orphan StringName: set_summary (static: 0, total: 1)
Orphan StringName: assert_no_new_orphans (static: 0, total: 1)
Orphan StringName: set_less_test_names (static: 0, total: 1)
Orphan StringName: after_all (static: 0, total: 1)
Orphan StringName: _auto_flush_input (static: 0, total: 4)
Orphan StringName: _last_yield_text (static: 0, total: 5)
Orphan StringName: GutGuiPrinter (static: 0, total: 1)
Orphan StringName: _create_missing_result (static: 0, total: 1)
Orphan StringName: get_double_strategy (static: 0, total: 1)
Orphan StringName: _obj_name_pair (static: 0, total: 1)
Orphan StringName: _pressed_keys (static: 0, total: 3)
Orphan StringName: clear (static: 0, total: 3)
Orphan StringName: _last_event (static: 0, total: 4)
Orphan StringName: get_signal_parameters (static: 0, total: 2)
Orphan StringName: _yield_text_gui (static: 0, total: 1)
Orphan StringName: get_format_enabled (static: 0, total: 1)
Orphan StringName: _to_string (static: 0, total: 1)
Orphan StringName: @differences_getter (static: 0, total: 1)
Orphan StringName: risky (static: 0, total: 1)
Orphan StringName: action_up (static: 0, total: 2)
Orphan StringName: assert_eq (static: 0, total: 1)
Orphan StringName: back (static: 0, total: 1)
Orphan StringName: assert_gt (static: 0, total: 1)
Orphan StringName: assert_is (static: 0, total: 1)
Orphan StringName: assert_lt (static: 0, total: 1)
Orphan StringName: assert_ne (static: 0, total: 1)
Orphan StringName: gut (static: 0, total: 6)
Orphan StringName: assert_has_signal (static: 0, total: 1)
Orphan StringName: autoqfree (static: 0, total: 1)
Orphan StringName: get_fail_count (static: 0, total: 1)
Orphan StringName: get_gui_bbcode (static: 0, total: 1)
Orphan StringName: _output (static: 0, total: 5)
Orphan StringName: get_textbox (static: 0, total: 1)
Orphan StringName: _get_desc_of_calls_to_instance (static: 0, total: 1)
Orphan StringName: _send_or_record_event (static: 0, total: 1)
Orphan StringName: info (static: 0, total: 1)
Orphan StringName: replace_node (static: 0, total: 1)
Orphan StringName: assert_not_connected (static: 0, total: 1)
Orphan StringName: get_max_differences (static: 0, total: 1)
Orphan StringName: assert_true (static: 0, total: 1)
Orphan StringName: double_inner (static: 0, total: 1)
Orphan StringName: _shortcut_input (static: 0, total: 1)
Orphan StringName: disable_formatting (static: 0, total: 1)
Orphan StringName: pause_before_teardown (static: 0, total: 1)
Orphan StringName: wait_frames (static: 0, total: 2)
Orphan StringName: partial_double (static: 0, total: 1)
Orphan StringName: ignore_method_when_doubling (static: 0, total: 1)
Orphan StringName: truncate_string (static: 0, total: 1)
Orphan StringName: after_each (static: 0, total: 1)
Orphan StringName: log (static: 0, total: 1)
Orphan StringName: _init (static: 0, total: 7)
Orphan StringName: assert_string_ends_with (static: 0, total: 1)
Orphan StringName: assert_false (static: 0, total: 1)
Orphan StringName: indent_text (static: 0, total: 1)
Orphan StringName: compare_shallow (static: 0, total: 1)
Orphan StringName: disable_printer (static: 0, total: 1)
Orphan StringName: did_emit (static: 0, total: 1)
Orphan StringName: get_different_count (static: 0, total: 1)
Orphan StringName: _set_last_mouse_positions (static: 0, total: 1)
Orphan StringName: inc_indent (static: 0, total: 1)
Orphan StringName: log_test_name (static: 0, total: 1)
Orphan StringName: ParameterFactory (static: 0, total: 5)
Orphan StringName: _buffer (static: 0, total: 5)
Orphan StringName: _fail_if_parameters_not_array (static: 0, total: 1)
Orphan StringName: get_warnings (static: 0, total: 1)
Orphan StringName: _process (static: 0, total: 1)
Orphan StringName: key_echo (static: 0, total: 1)
Orphan StringName: get_less_test_names (static: 0, total: 1)
Orphan StringName: _next_queue_item (static: 0, total: 4)
Orphan StringName: _colors (static: 0, total: 4)
Orphan StringName: pass_test (static: 0, total: 1)
Orphan StringName: get_deprecated (static: 0, total: 1)
Orphan StringName: _output_type (static: 0, total: 1)
Orphan StringName: get_pending_count (static: 0, total: 1)
Orphan StringName: deep (static: 0, total: 1)
Orphan StringName: _textbox (static: 0, total: 5)
Orphan StringName: get_signal_emit_count (static: 0, total: 1)
Orphan StringName: autofree (static: 0, total: 1)
Orphan StringName: _signal_watcher (static: 0, total: 5)
Orphan StringName: _yield_text_terminal (static: 0, total: 1)
Orphan StringName: _smart_double (static: 0, total: 1)
Orphan StringName: INPUT_WARN (static: 0, total: 1)
Orphan StringName: _can_make_signal_assertions (static: 0, total: 1)
Orphan StringName: _to_scancode (static: 0, total: 1)
Orphan StringName: debug (static: 0, total: 1)
Orphan StringName: key_up (static: 0, total: 2)
Orphan StringName: _watched_signals (static: 0, total: 4)
Orphan StringName: DOUBLE_STRATEGY (static: 0, total: 6)
Orphan StringName: set_logger (static: 0, total: 1)
Orphan StringName: yield_to (static: 0, total: 1)
Orphan StringName: hold_for (static: 0, total: 1)
Orphan StringName: _disabled (static: 0, total: 10)
Orphan StringName: assert_call_count (static: 0, total: 1)
Orphan StringName: _indent_string (static: 0, total: 5)
Orphan StringName: get_indent_string (static: 0, total: 1)
Orphan StringName: mouse_left_button_up (static: 0, total: 2)
Orphan StringName: assert_signal_emitted_with_parameters (static: 0, total: 1)
Orphan StringName: assert_same (static: 0, total: 1)
Orphan StringName: _fail (static: 0, total: 1)
Orphan StringName: _on_watched_signal (static: 0, total: 1)
Orphan StringName: TerminalPrinter (static: 0, total: 1)
Orphan StringName: before_all (static: 0, total: 1)
Orphan StringName: differences (static: 0, total: 3)
Orphan StringName: _utils (static: 0, total: 26)
Orphan StringName: assert_almost_eq (static: 0, total: 1)
Orphan StringName: set_are_equal (static: 0, total: 1)
Orphan StringName: get_compare_symbol (static: 0, total: 1)
Orphan StringName: assert_almost_ne (static: 0, total: 1)
Orphan StringName: set_indent_level (static: 0, total: 1)
Orphan StringName: get_infos (static: 0, total: 1)
Orphan StringName: fail_test (static: 0, total: 1)
Orphan StringName: get_short_summary (static: 0, total: 1)
Orphan StringName: Node (static: 6, total: 7)
Orphan StringName: _unhandled_key_input (static: 0, total: 1)
Orphan StringName: get_summary_text (static: 0, total: 1)
Orphan StringName: action_down (static: 0, total: 2)
Orphan StringName: mouse_double_click (static: 0, total: 2)
Orphan StringName: assert_file_exists (static: 0, total: 1)
Orphan StringName: get_disabled (static: 0, total: 2)
Orphan StringName: ConsolePrinter (static: 0, total: 1)
Orphan StringName: orphan (static: 0, total: 1)
Orphan StringName: assert_between (static: 0, total: 1)
Orphan StringName: get_log_entries (static: 0, total: 1)
Orphan StringName: yield_text (static: 0, total: 1)
Orphan StringName: is_printer_disabled (static: 0, total: 1)
Orphan StringName: MouseDraw (static: 0, total: 1)
Orphan StringName: get_signal_summary (static: 0, total: 1)
Orphan StringName: set_should_compare_int_to_float (static: 0, total: 1)
Orphan StringName: assert_freed (static: 0, total: 1)
Orphan StringName: format_text (static: 0, total: 3)
Orphan StringName: _type_data (static: 0, total: 4)
Orphan StringName: shallow (static: 0, total: 1)
Orphan StringName: GutStringUtils (static: 0, total: 2)
Orphan StringName: RefCounted (static: 2, total: 3)
Orphan StringName: _wrap_with_tag (static: 0, total: 1)
Orphan StringName: @max_differences_setter (static: 0, total: 1)
Orphan StringName: dec_indent (static: 0, total: 1)
Orphan StringName: @summary_setter (static: 0, total: 1)
Orphan StringName: mouse_right_button_down (static: 0, total: 2)
Orphan StringName: max_differences (static: 0, total: 4)
Orphan StringName: _get_bad_double_or_method_message (static: 0, total: 1)
Orphan StringName: yield_for (static: 0, total: 1)
Orphan StringName: assert_file_not_empty (static: 0, total: 1)
Orphan StringName: _is_almost_eq (static: 0, total: 1)
Orphan StringName: set_type_enabled (static: 0, total: 1)
Orphan StringName: _get_configuration_warnings (static: 0, total: 1)
Orphan StringName: named_parameters (static: 0, total: 1)
Orphan StringName: is_action_pressed (static: 0, total: 1)
Orphan StringName: assert_not_null (static: 0, total: 1)
Orphan StringName: are_equal (static: 0, total: 4)
Orphan StringName: _notification (static: 0, total: 1)
Orphan StringName: assert_not_freed (static: 0, total: 1)
Orphan StringName: is_failing (static: 0, total: 1)
Orphan StringName: _new_defaulted_mouse_motion_event (static: 0, total: 1)
Orphan StringName: get_indent_text (static: 0, total: 1)
Orphan StringName: _fail_if_not_double_or_does_not_have_method (static: 0, total: 1)
Orphan StringName: _color_text (static: 0, total: 1)
Orphan StringName: double_singleton (static: 0, total: 1)
Orphan StringName: send (static: 0, total: 1)
Orphan StringName: _fail_if_not_watching (static: 0, total: 1)
Orphan StringName: _get_obj_filename (static: 0, total: 1)
Orphan StringName: assert_connected (static: 0, total: 1)
Orphan StringName: assert_readonly_property (static: 0, total: 1)
Orphan StringName: get_logger (static: 0, total: 1)
Orphan StringName: fmts (static: 0, total: 4)
Orphan StringName: _pressed_mouse_buttons (static: 0, total: 3)
Orphan StringName: InputFactory (static: 0, total: 8)
Orphan StringName: @max_differences_getter (static: 0, total: 1)
Orphan StringName: _default_mouse_position (static: 0, total: 3)
Orphan StringName: _fail_if_does_not_have_signal (static: 0, total: 1)
Orphan StringName: @summary_getter (static: 0, total: 1)
Orphan StringName: _max_length (static: 0, total: 5)
Orphan StringName: new_mouse_button_event (static: 0, total: 1)
Orphan StringName: clear_line (static: 0, total: 2)
Orphan StringName: _cannot_compare_text (static: 0, total: 1)
Orphan StringName: get_summary (static: 0, total: 2)
Orphan StringName: set_gut (static: 0, total: 1)
Orphan StringName: yield_msg (static: 0, total: 1)
Orphan StringName: format_value (static: 0, total: 1)
Orphan StringName: failed (static: 0, total: 1)
Orphan StringName: _disable_strict_datatype_checks (static: 0, total: 6)
Orphan StringName: _compare (static: 0, total: 5)
Orphan StringName: _validate_singleton_name (static: 0, total: 1)
Orphan StringName: assert_property_with_backing_variable (static: 0, total: 1)
Orphan StringName: assert_string_starts_with (static: 0, total: 1)
Orphan StringName: assert_exports (static: 0, total: 1)
Orphan StringName: _gut (static: 0, total: 5)
Orphan StringName: _new_defaulted_mouse_button_event (static: 0, total: 1)
Orphan StringName: assert_eq_deep (static: 0, total: 1)
Orphan StringName: skip_script (static: 0, total: 5)
Orphan StringName: GutTest (static: 0, total: 2)
Orphan StringName: print_signal_summary (static: 0, total: 1)
Orphan StringName: _is_connected (static: 0, total: 1)
Orphan StringName: assert_set_property (static: 0, total: 1)
Orphan StringName: wait_secs (static: 0, total: 1)
Orphan StringName: is_watching (static: 0, total: 1)
Orphan StringName: _min_indent_level (static: 0, total: 5)
Orphan StringName: is_watching_object (static: 0, total: 1)
Orphan StringName: get_count (static: 0, total: 1)
Orphan StringName: get_indent_level (static: 0, total: 1)
Orphan StringName: assert_signal_emit_count (static: 0, total: 1)
Orphan StringName: add_child_autofree (static: 0, total: 1)
Orphan StringName: is_mouse_button_pressed (static: 0, total: 1)
Orphan StringName: clear_signal_watcher (static: 0, total: 1)
Orphan StringName: assert_called (static: 0, total: 1)
Orphan StringName: assert_string_contains (static: 0, total: 1)
Orphan StringName: _init_types_dictionary (static: 0, total: 1)
Orphan StringName: InputSender (static: 0, total: 5)
Orphan StringName: _skip_test_name_for_testing (static: 0, total: 5)
Orphan StringName: register_inner_classes (static: 0, total: 1)
Orphan StringName: assert_ne_shallow (static: 0, total: 1)
Orphan StringName: get_differences (static: 0, total: 1)
Orphan StringName: get_bbcode (static: 0, total: 1)
Orphan StringName: _physics_process (static: 0, total: 1)
Orphan StringName: _str_ignore_types (static: 0, total: 5)
Orphan StringName: before_each (static: 0, total: 1)
Orphan StringName: get_auto_flush_input (static: 0, total: 1)
Orphan StringName: wait (static: 0, total: 1)
Orphan StringName: is_type_enabled (static: 0, total: 1)
Orphan StringName: warn (static: 0, total: 1)
Orphan StringName: assert_accessors (static: 0, total: 1)
StringName: 375 unclaimed string names at exit.

I think this will be solved by moving the check to before_all. I don't think skipped scripts are added to the list of things to be freed because I shortcircuit things to early.

This should be fixed in main. skip_script is deprecated. See CHANGES.md about should_skip_script.

This should be fixed in main. skip_script is deprecated. See CHANGES.md about should_skip_script.