Add a test to ensure that library path is absolute

(cherry picked from commit 92ace04989)
pull/1569/head
David Snopek 2024-07-15 11:57:53 -05:00
parent 842a7f621f
commit 1ac33c906e
3 changed files with 16 additions and 0 deletions

View File

@ -270,6 +270,12 @@ func _ready():
assert_equal(example_child.get_value1(), 11) assert_equal(example_child.get_value1(), 11)
assert_equal(example_child.get_value2(), 22) assert_equal(example_child.get_value2(), 22)
# Test that the extension's library path is absolute and valid.
var library_path = Example.test_library_path()
assert_equal(library_path.begins_with("res://"), false)
assert_equal(library_path, ProjectSettings.globalize_path(library_path))
assert_equal(FileAccess.file_exists(library_path), true)
exit_with_status() exit_with_status()
func _on_Example_custom_signal(signal_name, value): func _on_Example_custom_signal(signal_name, value):

View File

@ -249,6 +249,8 @@ void Example::_bind_methods() {
ClassDB::bind_static_method("Example", D_METHOD("test_static", "a", "b"), &Example::test_static); ClassDB::bind_static_method("Example", D_METHOD("test_static", "a", "b"), &Example::test_static);
ClassDB::bind_static_method("Example", D_METHOD("test_static2"), &Example::test_static2); ClassDB::bind_static_method("Example", D_METHOD("test_static2"), &Example::test_static2);
ClassDB::bind_static_method("Example", D_METHOD("test_library_path"), &Example::test_library_path);
{ {
MethodInfo mi; MethodInfo mi;
mi.arguments.push_back(PropertyInfo(Variant::STRING, "some_argument")); mi.arguments.push_back(PropertyInfo(Variant::STRING, "some_argument"));
@ -709,6 +711,12 @@ String Example::test_use_engine_singleton() const {
return OS::get_singleton()->get_name(); return OS::get_singleton()->get_name();
} }
String Example::test_library_path() {
String library_path;
internal::gdextension_interface_get_library_path(internal::library, library_path._native_ptr());
return library_path;
}
void ExampleRuntime::_bind_methods() { void ExampleRuntime::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_prop_value", "value"), &ExampleRuntime::set_prop_value); ClassDB::bind_method(D_METHOD("set_prop_value", "value"), &ExampleRuntime::set_prop_value);
ClassDB::bind_method(D_METHOD("get_prop_value"), &ExampleRuntime::get_prop_value); ClassDB::bind_method(D_METHOD("get_prop_value"), &ExampleRuntime::get_prop_value);

View File

@ -195,6 +195,8 @@ public:
GDVIRTUAL1(_do_something_virtual_with_control, Control *); GDVIRTUAL1(_do_something_virtual_with_control, Control *);
String test_use_engine_singleton() const; String test_use_engine_singleton() const;
static String test_library_path();
}; };
VARIANT_ENUM_CAST(Example::Constants); VARIANT_ENUM_CAST(Example::Constants);