summaryrefslogtreecommitdiff
path: root/tests/vb2_common_tests.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/vb2_common_tests.c')
-rw-r--r--tests/vb2_common_tests.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/tests/vb2_common_tests.c b/tests/vb2_common_tests.c
index 4c033fbd..c7e99769 100644
--- a/tests/vb2_common_tests.c
+++ b/tests/vb2_common_tests.c
@@ -63,28 +63,32 @@ static void test_align(void)
*/
static void test_workbuf(void)
{
- uint64_t buf[8];
+ uint64_t buf[8] __attribute__ ((aligned (VB2_WORKBUF_ALIGN)));
uint8_t *p0 = (uint8_t *)buf, *ptr;
struct vb2_workbuf wb;
+ /* NOTE: There are several magic numbers below which assume that
+ * VB2_WORKBUF_ALIGN == 16 */
+
/* Init */
- vb2_workbuf_init(&wb, p0, 32);
+ vb2_workbuf_init(&wb, p0, 64);
TEST_EQ(vb2_offset_of(p0, wb.buf), 0, "Workbuf init aligned");
- TEST_EQ(wb.size, 32, " size");
+ TEST_EQ(wb.size, 64, " size");
- vb2_workbuf_init(&wb, p0 + 4, 32);
- TEST_EQ(vb2_offset_of(p0, wb.buf), 8, "Workbuf init unaligned");
- TEST_EQ(wb.size, 28, " size");
+ vb2_workbuf_init(&wb, p0 + 4, 64);
+ TEST_EQ(vb2_offset_of(p0, wb.buf), VB2_WORKBUF_ALIGN,
+ "Workbuf init unaligned");
+ TEST_EQ(wb.size, 64 - VB2_WORKBUF_ALIGN + 4, " size");
vb2_workbuf_init(&wb, p0 + 2, 5);
TEST_EQ(wb.size, 0, "Workbuf init tiny unaligned size");
/* Alloc rounds up */
- vb2_workbuf_init(&wb, p0, 32);
+ vb2_workbuf_init(&wb, p0, 64);
ptr = vb2_workbuf_alloc(&wb, 22);
TEST_EQ(vb2_offset_of(p0, ptr), 0, "Workbuf alloc");
- TEST_EQ(vb2_offset_of(p0, wb.buf), 24, " buf");
- TEST_EQ(wb.size, 8, " size");
+ TEST_EQ(vb2_offset_of(p0, wb.buf), 32, " buf");
+ TEST_EQ(wb.size, 32, " size");
vb2_workbuf_init(&wb, p0, 32);
TEST_PTR_EQ(vb2_workbuf_alloc(&wb, 33), NULL, "Workbuf alloc too big");
@@ -97,12 +101,12 @@ static void test_workbuf(void)
TEST_EQ(wb.size, 32, " size");
/* Realloc keeps same pointer as alloc */
- vb2_workbuf_init(&wb, p0, 32);
+ vb2_workbuf_init(&wb, p0, 64);
vb2_workbuf_alloc(&wb, 6);
ptr = vb2_workbuf_realloc(&wb, 6, 21);
TEST_EQ(vb2_offset_of(p0, ptr), 0, "Workbuf realloc");
- TEST_EQ(vb2_offset_of(p0, wb.buf), 24, " buf");
- TEST_EQ(wb.size, 8, " size");
+ TEST_EQ(vb2_offset_of(p0, wb.buf), 32, " buf");
+ TEST_EQ(wb.size, 32, " size");
}
int main(int argc, char* argv[])