]>
git.proxmox.com Git - rustc.git/blob - library/std/src/io/readbuf/tests.rs
2 use crate::mem
::MaybeUninit
;
4 /// Test that ReadBuf has the correct numbers when created with new
8 let rbuf
= ReadBuf
::new(&mut buf
);
10 assert_eq
!(rbuf
.filled_len(), 0);
11 assert_eq
!(rbuf
.initialized_len(), 16);
12 assert_eq
!(rbuf
.capacity(), 16);
13 assert_eq
!(rbuf
.remaining(), 16);
16 /// Test that ReadBuf has the correct numbers when created with uninit
19 let mut buf
= [MaybeUninit
::uninit(); 16];
20 let rbuf
= ReadBuf
::uninit(&mut buf
);
22 assert_eq
!(rbuf
.filled_len(), 0);
23 assert_eq
!(rbuf
.initialized_len(), 0);
24 assert_eq
!(rbuf
.capacity(), 16);
25 assert_eq
!(rbuf
.remaining(), 16);
29 fn initialize_unfilled() {
30 let mut buf
= [MaybeUninit
::uninit(); 16];
31 let mut rbuf
= ReadBuf
::uninit(&mut buf
);
33 rbuf
.initialize_unfilled();
35 assert_eq
!(rbuf
.initialized_len(), 16);
39 fn initialize_unfilled_to() {
40 let mut buf
= [MaybeUninit
::uninit(); 16];
41 let mut rbuf
= ReadBuf
::uninit(&mut buf
);
43 rbuf
.initialize_unfilled_to(8);
45 assert_eq
!(rbuf
.initialized_len(), 8);
47 rbuf
.initialize_unfilled_to(4);
49 assert_eq
!(rbuf
.initialized_len(), 8);
53 rbuf
.initialize_unfilled_to(6);
55 assert_eq
!(rbuf
.initialized_len(), 14);
57 rbuf
.initialize_unfilled_to(8);
59 assert_eq
!(rbuf
.initialized_len(), 16);
64 let mut buf
= [0; 16];
65 let mut rbuf
= ReadBuf
::new(&mut buf
);
69 assert_eq
!(rbuf
.filled_len(), 1);
70 assert_eq
!(rbuf
.remaining(), 15);
75 fn add_filled_panic() {
76 let mut buf
= [MaybeUninit
::uninit(); 16];
77 let mut rbuf
= ReadBuf
::uninit(&mut buf
);
84 let mut buf
= [0; 16];
85 let mut rbuf
= ReadBuf
::new(&mut buf
);
89 assert_eq
!(rbuf
.filled_len(), 16);
90 assert_eq
!(rbuf
.remaining(), 0);
94 assert_eq
!(rbuf
.filled_len(), 6);
95 assert_eq
!(rbuf
.remaining(), 10);
100 fn set_filled_panic() {
101 let mut buf
= [MaybeUninit
::uninit(); 16];
102 let mut rbuf
= ReadBuf
::uninit(&mut buf
);
109 let mut buf
= [255; 16];
110 let mut rbuf
= ReadBuf
::new(&mut buf
);
114 assert_eq
!(rbuf
.filled_len(), 16);
115 assert_eq
!(rbuf
.remaining(), 0);
119 assert_eq
!(rbuf
.filled_len(), 0);
120 assert_eq
!(rbuf
.remaining(), 16);
122 assert_eq
!(rbuf
.initialized(), [255; 16]);
127 let mut buf
= [MaybeUninit
::uninit(); 16];
128 let mut rbuf
= ReadBuf
::uninit(&mut buf
);
134 assert_eq
!(rbuf
.initialized_len(), 8);
142 assert_eq
!(rbuf
.initialized_len(), 8);
148 assert_eq
!(rbuf
.initialized_len(), 12);
153 let mut buf
= [MaybeUninit
::new(255); 16];
154 let mut rbuf
= ReadBuf
::uninit(&mut buf
);
156 rbuf
.append(&[0; 8]);
158 assert_eq
!(rbuf
.initialized_len(), 8);
159 assert_eq
!(rbuf
.filled_len(), 8);
160 assert_eq
!(rbuf
.filled(), [0; 8]);
164 rbuf
.append(&[1; 16]);
166 assert_eq
!(rbuf
.initialized_len(), 16);
167 assert_eq
!(rbuf
.filled_len(), 16);
168 assert_eq
!(rbuf
.filled(), [1; 16]);
173 let mut buf
= [0; 16];
174 let mut rbuf
= ReadBuf
::new(&mut buf
);
178 let filled
= rbuf
.filled().to_vec();
180 assert_eq
!(&*filled
, &*rbuf
.filled_mut());