Skip to content

Commit 410d7eb

Browse files
committed
.
1 parent c381042 commit 410d7eb

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

src/memcpy/memcpy.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use cfg_if::cfg_if;
55

66
pub mod memcpy_trivial;
77

8-
pub type Memcpy = unsafe fn(dst: *mut u8, src: *mut u8, bytes: usize);
8+
pub type Memcpy = unsafe fn(dst: *mut u8, src: *const u8, bytes: usize);
99

1010
pub static ALL_MEMCPYS: &[Memcpy] = &[
1111
memcpy_trivial::memcpy,

src/memcpy/memcpy_trivial.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
pub unsafe fn memcpy(dst: *mut u8, src: *mut u8, bytes: usize) {
1+
pub unsafe fn memcpy(dst: *mut u8, src: *const u8, bytes: usize) {
22
panic!()
33
}

src/memcpy/test_memcpy.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
use proptest::prelude::*;
2+
use std::iter;
3+
4+
use memcpy::memcpy_trivial::memcpy as memcpy_impl;
5+
6+
proptest! {
7+
#[test]
8+
fn memcpy(src: Vec<u8>) {
9+
let mut dst: Vec<_> = iter::repeat(0).take(src.len()).collect();
10+
let src_ptr = src.as_ptr();
11+
let dst_ptr = dst.as_mut_ptr();
12+
let bytes = src.len();
13+
unsafe {
14+
memcpy_impl(dst_ptr, src_ptr, bytes);
15+
}
16+
assert_eq!(src, dst);
17+
}
18+
}

0 commit comments

Comments
 (0)