Skip to content

Commit 3bd4266

Browse files
committed
Test: rename SignalEmitter -> ObjPayload
Consistent with RefcPayload. Only one test that used it was dealing with signals. It's also not really worth creating 2 separate classes.
1 parent b7e0eb6 commit 3bd4266

File tree

1 file changed

+21
-19
lines changed

1 file changed

+21
-19
lines changed

itest/rust/src/object_tests/object_test.rs

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -219,28 +219,28 @@ fn object_from_instance_id_unrelated_type() {
219219

220220
#[itest]
221221
fn object_new_has_instance_id() {
222-
let obj = Gd::<SignalEmitter>::new_default(); // type doesn't matter, just Object-derived
222+
let obj = Gd::<ObjPayload>::new_default();
223223
let _id = obj.instance_id();
224224
obj.free();
225225
}
226226

227227
#[itest]
228228
fn object_dynamic_free() {
229-
let mut obj = Gd::<SignalEmitter>::new_default();
229+
let mut obj = Gd::<ObjPayload>::new_default();
230230
let id = obj.instance_id();
231231

232232
obj.call("free".into(), &[]);
233233

234234
assert_eq!(
235-
Gd::<SignalEmitter>::try_from_instance_id(id),
235+
Gd::<ObjPayload>::try_from_instance_id(id),
236236
None,
237237
"dynamic free() call must destroy object"
238238
);
239239
}
240240

241241
#[itest]
242242
fn object_user_bind_after_free() {
243-
let obj = Gd::new(SignalEmitter {}); // type doesn't matter, just Object-derived
243+
let obj = Gd::new(ObjPayload {});
244244
let copy = obj.clone();
245245
obj.free();
246246

@@ -251,7 +251,7 @@ fn object_user_bind_after_free() {
251251

252252
#[itest]
253253
fn object_user_free_during_bind() {
254-
let obj = Gd::new(SignalEmitter {}); // type doesn't matter, just Object-derived
254+
let obj = Gd::new(ObjPayload {});
255255
let guard = obj.bind();
256256

257257
let copy = obj.clone(); // TODO clone allowed while bound?
@@ -277,7 +277,7 @@ fn object_user_dynamic_free_during_bind() {
277277
// 3. Holding a guard (GdRef/GdMut) across function calls -- not possible, guard's lifetime is coupled to a Gd and cannot be stored in
278278
// fields or global variables due to that.
279279

280-
let obj = Gd::new(SignalEmitter {}); // type doesn't matter, just Object-derived
280+
let obj = Gd::new(ObjPayload {});
281281
let guard = obj.bind();
282282

283283
let mut copy = obj.clone(); // TODO clone allowed while bound?
@@ -298,7 +298,7 @@ fn object_user_dynamic_free_during_bind() {
298298

299299
#[itest]
300300
fn object_user_call_after_free() {
301-
let obj = Gd::new(SignalEmitter {}); // type doesn't matter, just Object-derived
301+
let obj = Gd::new(ObjPayload {});
302302
let mut copy = obj.clone();
303303
obj.free();
304304

@@ -716,7 +716,7 @@ fn object_engine_refcounted_free() {
716716

717717
#[itest]
718718
fn object_user_double_free() {
719-
let mut obj = Gd::<SignalEmitter>::new_default();
719+
let mut obj = Gd::<ObjPayload>::new_default();
720720
let obj2 = obj.clone();
721721
obj.call("free".into(), &[]);
722722

@@ -787,6 +787,18 @@ fn object_get_scene_tree(ctx: &TestContext) {
787787

788788
// ----------------------------------------------------------------------------------------------------------------------------------------------
789789

790+
#[derive(GodotClass)]
791+
#[class(init, base=Object)]
792+
struct ObjPayload {}
793+
794+
#[godot_api]
795+
impl ObjPayload {
796+
#[signal]
797+
fn do_use();
798+
}
799+
800+
// ----------------------------------------------------------------------------------------------------------------------------------------------
801+
790802
#[inline(never)] // force to move "out of scope", can trigger potential dangling pointer errors
791803
fn user_refc_instance() -> Gd<RefcPayload> {
792804
let value: i16 = 17943;
@@ -927,24 +939,14 @@ impl DoubleUse {
927939
}
928940
}
929941

930-
#[derive(GodotClass)]
931-
#[class(init, base=Object)]
932-
struct SignalEmitter {}
933-
934-
#[godot_api]
935-
impl SignalEmitter {
936-
#[signal]
937-
fn do_use();
938-
}
939-
940942
/// Test that Godot can call a method that takes `&self`, while there already exists an immutable reference
941943
/// to that type acquired through `bind`.
942944
///
943945
/// This test is not signal-specific, the original bug would happen whenever Godot would call a method that takes `&self`.
944946
#[itest]
945947
fn double_use_reference() {
946948
let double_use: Gd<DoubleUse> = Gd::new_default();
947-
let emitter: Gd<SignalEmitter> = Gd::new_default();
949+
let emitter: Gd<ObjPayload> = Gd::new_default();
948950

949951
emitter
950952
.clone()

0 commit comments

Comments
 (0)