File tree Expand file tree Collapse file tree 2 files changed +21
-6
lines changed Expand file tree Collapse file tree 2 files changed +21
-6
lines changed Original file line number Diff line number Diff line change @@ -29,7 +29,17 @@ impl ThreadTestData {
2929 #[ track_caller]
3030 pub ( crate ) fn assert_current ( & self ) {
3131 let current = Self :: current ( ) ;
32- assert_eq ! ( & current, self ) ;
32+ let mut expected = self . clone ( ) ;
33+ if cfg ! ( feature = "gnustep-1-7" ) {
34+ // GNUStep doesn't have `tryRetain`, it uses `retain` directly
35+ let retain_diff = expected. try_retain - current. try_retain ;
36+ expected. retain += retain_diff;
37+ expected. try_retain -= retain_diff;
38+
39+ // GNUStep doesn't call `autorelease` if it's overridden
40+ expected. autorelease = 0 ;
41+ }
42+ assert_eq ! ( current, expected) ;
3343 }
3444}
3545
Original file line number Diff line number Diff line change @@ -173,9 +173,12 @@ mod tests {
173173 expected. dealloc += 1 ;
174174 expected. assert_current ( ) ;
175175
176- assert ! ( weak. load( ) . is_none( ) ) ;
177- expected. try_retain_fail += 1 ;
178- expected. assert_current ( ) ;
176+ if cfg ! ( not( feature = "gnustep-1-7" ) ) {
177+ // This loads the object on GNUStep for some reason??
178+ assert ! ( weak. load( ) . is_none( ) ) ;
179+ expected. try_retain_fail += 1 ;
180+ expected. assert_current ( ) ;
181+ }
179182
180183 drop ( weak) ;
181184 expected. assert_current ( ) ;
@@ -190,8 +193,10 @@ mod tests {
190193 expected. assert_current ( ) ;
191194
192195 let weak2 = weak. clone ( ) ;
193- expected. try_retain += 1 ;
194- expected. release += 1 ;
196+ if cfg ! ( feature = "apple" ) {
197+ expected. try_retain += 1 ;
198+ expected. release += 1 ;
199+ }
195200 expected. assert_current ( ) ;
196201
197202 let strong = weak. load ( ) . unwrap ( ) ;
You can’t perform that action at this time.
0 commit comments