Skip to content

Commit 1d1fb4c

Browse files
committed
fix test on MacOS
1 parent d2eeabe commit 1d1fb4c

3 files changed

Lines changed: 13 additions & 75 deletions

File tree

‎tests/unit/copy_move_defaulted.cpp‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ struct Owner {
7272

7373
struct Copyable {
7474
std::vector<int> data;
75-
std::string name;
7675
};
7776

7877
struct Holder {
@@ -160,14 +159,14 @@ int main() {
160159
assert(o3.n == 5 && o3.data[0] == 5 && o3.arr[0] == 5 && *o3.p == 7);
161160
assert(o2.data.empty() && o2.p.get() == nullptr);
162161

163-
Copyable c1{{1, 2}, "c"};
162+
Copyable c1{{1, 2}};
164163
Copyable c2 = c1;
165164
Copyable c3 = std::move(c1);
166-
assert(c2.data.size() == 2 && c3.data.size() == 2 && c3.name == "c");
167-
assert(c1.data.empty() && c1.name.empty());
165+
assert(c2.data.size() == 2 && c3.data.size() == 2);
166+
assert(c1.data.empty());
168167
Copyable c4;
169168
c4 = std::move(c3);
170-
assert(c4.data[1] == 2 && c4.name == "c" && c3.data.empty());
169+
assert(c4.data[1] == 2 && c3.data.empty());
171170

172171
Holder h1(4);
173172
h1.p.reset(new int(9));

‎tests/unit/out/refcount/copy_move_defaulted.rs‎

Lines changed: 5 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -205,31 +205,17 @@ impl Default for Owner {
205205
}
206206
}
207207
}
208-
#[derive(Clone, Record, ByteRepr, VaArg, FnPtrArg, MoveCtor, MoveAssign)]
209-
#[byte_size(56)]
208+
#[derive(Clone, Record, ByteRepr, VaArg, FnPtrArg, MoveCtor, MoveAssign, Default)]
209+
#[byte_size(24)]
210210
pub struct Copyable {
211211
#[offset(0)]
212212
#[byte_size(24)]
213213
pub data: Vec<i32>,
214-
#[offset(24)]
215-
#[byte_size(32)]
216-
pub name: Vec<i8>,
217214
}
218215
impl Copyable {
219216
pub fn move_from(_a0: Ptr<Copyable>) -> Self {
220217
Self {
221218
data: field!(_a0, data).with_mut(std::mem::take),
222-
name: field!(_a0, name).with_mut(std::mem::take),
223-
}
224-
}
225-
}
226-
impl Default for Copyable {
227-
fn default() -> Self {
228-
{
229-
Copyable {
230-
data: Default::default(),
231-
name: vec![0],
232-
}
233219
}
234220
}
235221
}
@@ -425,28 +411,15 @@ fn main_0() -> i32 {
425411
);
426412
let c1: Value<Copyable> = Rc::new(RefCell::new(Copyable {
427413
data: Vec::from([1, 2]),
428-
name: {
429-
let mut __bytes = Ptr::<i8>::from_string_literal(b"c").to_c_bytes();
430-
__bytes.push(0);
431-
__bytes
432-
},
433414
}));
434415
let mut c2: Copyable = (*c1.borrow()).clone();
435416
let c3: Value<Copyable> = Rc::new(RefCell::new(Copyable::move_from({ c1.as_pointer() })));
436-
assert!(
437-
((c2.data.len() == 2_usize) && ((*c3.borrow()).data.len() == 2_usize))
438-
&& (Ptr::<i8>::from_string_literal(b"c").with_c_str(|__s| (*c3.borrow()).name
439-
[..(*c3.borrow()).name.len().saturating_sub(1)]
440-
== *__s))
441-
);
442-
assert!(((*c1.borrow()).data.is_empty()) && ((*c1.borrow()).name.len() <= 1));
417+
assert!((c2.data.len() == 2_usize) && ((*c3.borrow()).data.len() == 2_usize));
418+
assert!((*c1.borrow()).data.is_empty());
443419
let c4: Value<Copyable> = Rc::new(RefCell::new(<Copyable>::default()));
444420
({ CopyableImpl::move_assign(&c4.as_pointer(), c3.as_pointer()) });
445421
assert!(
446-
(((vec_elem!(c4.as_pointer(), data, 1_usize).read()) == 2)
447-
&& (Ptr::<i8>::from_string_literal(b"c").with_c_str(|__s| (*c4.borrow()).name
448-
[..(*c4.borrow()).name.len().saturating_sub(1)]
449-
== *__s)))
422+
((vec_elem!(c4.as_pointer(), data, 1_usize).read()) == 2)
450423
&& ((*c3.borrow()).data.is_empty())
451424
);
452425
let h1: Value<Holder> = Rc::new(RefCell::new(Holder::new({ 4 })));
@@ -505,7 +478,6 @@ impl CopyableImpl for Ptr<Copyable> {
505478
field_ref!((*self), data)
506479
.as_pointer()
507480
.write(field!(_a0, data).with_mut(std::mem::take));
508-
field!((*self), name).write({ { (*_a0.upgrade().deref()).name.clone() } });
509481
return (*self).clone();
510482
}
511483
}

‎tests/unit/out/unsafe/copy_move_defaulted.rs‎

Lines changed: 4 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -181,35 +181,22 @@ impl Owner {
181181
}
182182
}
183183
#[repr(C)]
184-
#[derive(Clone, VaArg, FnPtrArg, MoveCtorUnsafe, MoveAssignUnsafe)]
184+
#[derive(Clone, VaArg, FnPtrArg, MoveCtorUnsafe, MoveAssignUnsafe, Default)]
185185
pub struct Copyable {
186186
pub data: Vec<i32>,
187-
pub name: Vec<libc::c_char>,
188187
}
189188
impl Copyable {
190189
pub unsafe fn move_from(_a0: *mut Copyable) -> Self {
191190
let mut this = Self {
192191
data: std::mem::take(&mut (*_a0).data),
193-
name: std::mem::take(&mut (*_a0).name),
194192
};
195193
this
196194
}
197195
pub unsafe fn move_assign(&mut self, _a0: *mut Copyable) -> *mut Copyable {
198196
self.data = std::mem::take(&mut (*_a0).data);
199-
self.name = ((*_a0).name).clone();
200197
return &mut (*(self as *mut Copyable));
201198
}
202199
}
203-
impl Default for Copyable {
204-
fn default() -> Self {
205-
unsafe {
206-
Copyable {
207-
data: Default::default(),
208-
name: vec![0],
209-
}
210-
}
211-
}
212-
}
213200
#[repr(C)]
214201
#[derive(FnPtrArg, MoveCtorUnsafe, MoveAssignUnsafe, DestructorUnsafe, Default)]
215202
pub struct Holder {
@@ -410,34 +397,14 @@ unsafe fn main_0() -> i32 {
410397
);
411398
let mut c1: Copyable = Copyable {
412399
data: Vec::from([1, 2]),
413-
name: {
414-
let s = c"c".as_ptr();
415-
std::slice::from_raw_parts(s, (0..).take_while(|&i| *s.add(i) != 0).count() + 1)
416-
.to_vec()
417-
},
418400
};
419401
let mut c2: Copyable = c1.clone();
420402
let mut c3: Copyable = Copyable::move_from({ &mut c1 });
421-
assert!(
422-
(((c2.data.len()) == (2_usize)) && ((c3.data.len()) == (2_usize)))
423-
&& (c3.name == {
424-
let s = c"c".as_ptr();
425-
std::slice::from_raw_parts(s, (0..).take_while(|&i| *s.add(i) != 0).count() + 1)
426-
.to_vec()
427-
})
428-
);
429-
assert!((c1.data.is_empty()) && (c1.name.len() <= 1));
403+
assert!(((c2.data.len()) == (2_usize)) && ((c3.data.len()) == (2_usize)));
404+
assert!(c1.data.is_empty());
430405
let mut c4: Copyable = <Copyable>::default();
431406
(unsafe { Copyable::move_assign(&mut c4, &mut c3) });
432-
assert!(
433-
(((c4.data[(1_usize)]) == (2))
434-
&& (c4.name == {
435-
let s = c"c".as_ptr();
436-
std::slice::from_raw_parts(s, (0..).take_while(|&i| *s.add(i) != 0).count() + 1)
437-
.to_vec()
438-
}))
439-
&& (c3.data.is_empty())
440-
);
407+
assert!(((c4.data[(1_usize)]) == (2)) && (c3.data.is_empty()));
441408
let mut h1: Holder = Holder::new({ 4 });
442409
let _dtor_h1 = ScopedDestructorUnsafe::new(&raw mut h1, Holder::destructor);
443410
{

0 commit comments

Comments
 (0)