MCPcopy Create free account
hub / github.com/RustCrypto/utils / test_read

Function test_read

block-buffer/tests/mod.rs:117–158  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

115
116#[test]
117fn test_read() {
118 type Buf = ReadBuffer<U4>;
119 let mut buf = Buf::default();
120
121 let mut n = 0u8;
122 let mut g = |block: &mut Array<u8, U4>| {
123 block.iter_mut().for_each(|b| {
124 *b = n;
125 n += 1;
126 });
127 };
128
129 let res = buf.read_cached(0);
130 assert!(res.is_empty());
131 let res = buf.read_cached(10);
132 assert!(res.is_empty());
133
134 buf.write_block(2, &mut g, |buf| assert_eq!(buf, [0, 1]));
135 assert_eq!(buf.remaining(), 2);
136
137 let res = buf.read_cached(1);
138 assert_eq!(res, [2]);
139 let res = buf.read_cached(10);
140 assert_eq!(res, [3]);
141 assert_eq!(buf.remaining(), 0);
142
143 buf.write_block(0, |_| unreachable!(), |_| unreachable!());
144 buf.write_block(3, &mut g, |buf| assert_eq!(buf, [4, 5, 6]));
145 assert_eq!(buf.remaining(), 1);
146
147 buf.write_block(0, |_| unreachable!(), |_| unreachable!());
148 assert_eq!(buf.remaining(), 1);
149 let res = buf.read_cached(10);
150 assert_eq!(res, [7]);
151
152 buf.write_block(1, &mut g, |buf| assert_eq!(buf, [8]));
153 assert_eq!(buf.remaining(), 3);
154
155 let res = buf.read_cached(10);
156 assert_eq!(res, [9, 10, 11]);
157 assert_eq!(buf.remaining(), 0);
158}
159
160#[test]
161fn test_eager_paddings() {

Callers

nothing calls this directly

Calls 3

defaultFunction · 0.85
read_cachedMethod · 0.80
write_blockMethod · 0.80

Tested by

no test coverage detected