From 50619e492eef851c2d4e3fa7b0c4c6fe41423217 Mon Sep 17 00:00:00 2001 From: Sandeep Patil Date: Tue, 10 Sep 2019 04:50:24 -0700 Subject: [PATCH] ion-unit-tests: Add heap id verification test. Bug: 140507100 Test: ion-unit-tests --gtest_filter=HeapQuery.* Change-Id: I5b881f7886f0908f69025cf63706a6c8cab584bf Signed-off-by: Sandeep Patil --- libion/tests/heap_query.cpp | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/libion/tests/heap_query.cpp b/libion/tests/heap_query.cpp index bad3bbffd..fed803038 100644 --- a/libion/tests/heap_query.cpp +++ b/libion/tests/heap_query.cpp @@ -15,6 +15,8 @@ */ #include + +#include #include "ion_test_fixture.h" class HeapQuery : public IonTest {}; @@ -23,5 +25,24 @@ TEST_F(HeapQuery, AtleastOneHeap) { ASSERT_GT(ion_heaps.size(), 0); } -// TODO: Check if we expect some of the default -// heap types to be present on all devices. +// TODO: Adjust this test to account for the range of valid carveout and DMA heap ids. +TEST_F(HeapQuery, HeapIdVerify) { + for (const auto& heap : ion_heaps) { + SCOPED_TRACE(::testing::Message() << "Invalid id for heap:" << heap.name << ":" << heap.type + << ":" << heap.heap_id); + switch (heap.type) { + case ION_HEAP_TYPE_SYSTEM: + ASSERT_TRUE((1 << heap.heap_id) & ION_HEAP_SYSTEM_MASK); + break; + case ION_HEAP_TYPE_SYSTEM_CONTIG: + ASSERT_TRUE((1 << heap.heap_id) & ION_HEAP_SYSTEM_CONTIG_MASK); + break; + case ION_HEAP_TYPE_CARVEOUT: + ASSERT_TRUE((1 << heap.heap_id) & ION_HEAP_CARVEOUT_MASK); + break; + case ION_HEAP_TYPE_DMA: + ASSERT_TRUE((1 << heap.heap_id) & ION_HEAP_TYPE_DMA_MASK); + break; + } + } +}