Skip to content

Commit d5b5da9

Browse files
committed
Refactor rc/mod.rs tests
1 parent 90d2f7c commit d5b5da9

File tree

3 files changed

+51
-58
lines changed

3 files changed

+51
-58
lines changed

crates/objc2/src/rc/id.rs

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -741,10 +741,12 @@ impl<T: UnwindSafe + ?Sized> UnwindSafe for Id<T, Owned> {}
741741

742742
#[cfg(test)]
743743
mod tests {
744+
use core::mem::size_of;
745+
744746
use super::*;
745747
use crate::msg_send;
746748
use crate::rc::{__RcTestObject, __ThreadTestData, autoreleasepool};
747-
use crate::runtime::Object;
749+
use crate::runtime::{NSObject, Object};
748750

749751
#[track_caller]
750752
fn assert_retain_count(obj: &Object, expected: usize) {
@@ -844,4 +846,28 @@ mod tests {
844846
let _obj: Id<__RcTestObject, _> = unsafe { Id::cast(obj) };
845847
expected.assert_current();
846848
}
849+
850+
#[repr(C)]
851+
struct MyObject<'a> {
852+
inner: NSObject,
853+
p: PhantomData<&'a str>,
854+
}
855+
856+
/// Test that `Id<T, O>` is covariant over `T`.
857+
#[allow(unused)]
858+
fn assert_id_variance<'a, 'b, O: Ownership>(
859+
obj: &'a Id<MyObject<'static>, O>,
860+
) -> &'a Id<MyObject<'b>, O> {
861+
obj
862+
}
863+
864+
#[test]
865+
fn test_size_of() {
866+
let ptr_size = size_of::<&NSObject>();
867+
868+
assert_eq!(size_of::<Id<NSObject, Owned>>(), ptr_size);
869+
assert_eq!(size_of::<Id<NSObject, Shared>>(), ptr_size);
870+
assert_eq!(size_of::<Option<Id<NSObject, Owned>>>(), ptr_size);
871+
assert_eq!(size_of::<Option<Id<NSObject, Shared>>>(), ptr_size);
872+
}
847873
}

crates/objc2/src/rc/mod.rs

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -74,58 +74,3 @@ pub use self::id_traits::{DefaultId, SliceId, SliceIdMut};
7474
pub use self::ownership::{Owned, Ownership, Shared};
7575
pub use self::test_object::{__RcTestObject, __ThreadTestData};
7676
pub use self::weak_id::WeakId;
77-
78-
#[cfg(test)]
79-
mod tests {
80-
use core::marker::PhantomData;
81-
use core::mem::size_of;
82-
83-
use super::{Id, Owned, Ownership, Shared, WeakId};
84-
use crate::runtime::Object;
85-
86-
#[repr(C)]
87-
struct TestType {
88-
inner: Object,
89-
}
90-
91-
#[repr(C)]
92-
struct MyObject<'a> {
93-
inner: Object,
94-
p: PhantomData<&'a str>,
95-
}
96-
97-
/// Test that `Id<T, O>` is covariant over `T`.
98-
#[allow(unused)]
99-
fn assert_id_variance<'a, 'b, O: Ownership>(
100-
obj: &'a Id<MyObject<'static>, O>,
101-
) -> &'a Id<MyObject<'b>, O> {
102-
obj
103-
}
104-
105-
/// Test that `WeakId<T>` is covariant over `T`.
106-
#[allow(unused)]
107-
fn assert_weak_id_variance<'a, 'b>(
108-
obj: &'a WeakId<MyObject<'static>>,
109-
) -> &'a WeakId<MyObject<'b>> {
110-
obj
111-
}
112-
113-
#[test]
114-
fn test_size_of() {
115-
assert_eq!(size_of::<Id<TestType, Owned>>(), size_of::<&TestType>());
116-
assert_eq!(size_of::<Id<TestType, Shared>>(), size_of::<&TestType>());
117-
assert_eq!(
118-
size_of::<Option<Id<TestType, Owned>>>(),
119-
size_of::<&TestType>()
120-
);
121-
assert_eq!(
122-
size_of::<Option<Id<TestType, Shared>>>(),
123-
size_of::<&TestType>()
124-
);
125-
126-
assert_eq!(
127-
size_of::<Option<WeakId<TestType>>>(),
128-
size_of::<*const ()>()
129-
);
130-
}
131-
}

crates/objc2/src/rc/weak_id.rs

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,11 @@ impl<T: Message> TryFrom<WeakId<T>> for Id<T, Shared> {
149149

150150
#[cfg(test)]
151151
mod tests {
152+
use core::mem;
153+
152154
use super::*;
153155
use crate::rc::{__RcTestObject, __ThreadTestData};
154-
use crate::runtime::Object;
156+
use crate::runtime::NSObject;
155157

156158
#[test]
157159
fn test_weak() {
@@ -214,8 +216,28 @@ mod tests {
214216

215217
#[test]
216218
fn test_weak_default() {
217-
let weak: WeakId<Object> = WeakId::default();
219+
let weak: WeakId<NSObject> = WeakId::default();
218220
assert!(weak.load().is_none());
219221
drop(weak);
220222
}
223+
224+
#[repr(C)]
225+
struct MyObject<'a> {
226+
inner: NSObject,
227+
p: PhantomData<&'a str>,
228+
}
229+
230+
/// Test that `WeakId<T>` is covariant over `T`.
231+
#[allow(unused)]
232+
fn assert_variance<'a, 'b>(obj: &'a WeakId<MyObject<'static>>) -> &'a WeakId<MyObject<'b>> {
233+
obj
234+
}
235+
236+
#[test]
237+
fn test_size_of() {
238+
assert_eq!(
239+
mem::size_of::<Option<WeakId<NSObject>>>(),
240+
mem::size_of::<*const ()>()
241+
);
242+
}
221243
}

0 commit comments

Comments
 (0)