Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 50619e49 authored by Sandeep Patil's avatar Sandeep Patil
Browse files

ion-unit-tests: Add heap id verification test.



Bug: 140507100
Test: ion-unit-tests --gtest_filter=HeapQuery.*

Change-Id: I5b881f7886f0908f69025cf63706a6c8cab584bf
Signed-off-by: default avatarSandeep Patil <sspatil@google.com>
parent 2d29c4b0
Loading
Loading
Loading
Loading
+23 −2
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@
 */

#include <gtest/gtest.h>

#include <ion/ion.h>
#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;
        }
    }
}