MCPcopy Create free account
hub / github.com/coreboot/coreboot / test_rdev_wrap

Function test_rdev_wrap

tests/commonlib/region-test.c:194–229  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

192}
193
194static void test_rdev_wrap(void **state)
195{
196 struct region_device child;
197 const size_t offs = VAL(0xf);
198 const size_t wrap_size = VAL(2);
199 /* Known API limitation -- can't exactly touch address space limit from below. */
200 const size_t fit_size = VAL(1) - 1;
201
202 /* For the 'wrap' cases, the underlying rdev_ops aren't even called, so only add
203 expectations for the 'fit' cases. */
204 expect_value(mock_mmap, offset, offs);
205 expect_value(mock_readat, offset, offs);
206 expect_value(mock_writeat, offset, offs);
207 expect_value(mock_eraseat, offset, offs);
208
209 expect_value(mock_mmap, size, fit_size);
210 expect_value(mock_readat, size, fit_size);
211 expect_value(mock_writeat, size, fit_size);
212 expect_value(mock_eraseat, size, fit_size);
213
214 rdev_mock_defaults();
215
216 /* Accesses to regions that wrap around the end of the address space should fail. */
217 assert_null(rdev_mmap(&mock_rdev, offs, wrap_size));
218 assert_int_equal(rdev_readat(&mock_rdev, mock_buffer, offs, wrap_size), -1);
219 assert_int_equal(rdev_writeat(&mock_rdev, mock_buffer, offs, wrap_size), -1);
220 assert_int_equal(rdev_eraseat(&mock_rdev, offs, wrap_size), -1);
221 assert_int_equal(rdev_chain(&child, &mock_rdev, offs, wrap_size), -1);
222
223 /* Just barely touching the end of the address space (and the rdev) should be fine. */
224 assert_ptr_equal(rdev_mmap(&mock_rdev, offs, fit_size), mmap_result);
225 assert_int_equal(rdev_readat(&mock_rdev, mock_buffer, offs, fit_size), fit_size);
226 assert_int_equal(rdev_writeat(&mock_rdev, mock_buffer, offs, fit_size), fit_size);
227 assert_int_equal(rdev_eraseat(&mock_rdev, offs, fit_size), fit_size);
228 assert_int_equal(rdev_chain(&child, &mock_rdev, offs, fit_size), 0);
229}
230
231static void test_rdev_chain(void **state)
232{

Callers

nothing calls this directly

Calls 6

rdev_mock_defaultsFunction · 0.85
rdev_mmapFunction · 0.85
rdev_readatFunction · 0.85
rdev_writeatFunction · 0.85
rdev_eraseatFunction · 0.85
rdev_chainFunction · 0.85

Tested by

no test coverage detected