| /* | |
| * Copyright (C) 2013 The Android Open Source Project | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| */ | |
| #include <gtest/gtest.h> | |
| #include <ion/ion.h> | |
| #include "ion_test_fixture.h" | |
| IonTest::IonTest() : m_ionFd(-1) | |
| { | |
| } | |
| void IonTest::SetUp() { | |
| m_ionFd = ion_open(); | |
| ASSERT_GE(m_ionFd, 0); | |
| } | |
| void IonTest::TearDown() { | |
| ion_close(m_ionFd); | |
| } | |
| IonAllHeapsTest::IonAllHeapsTest() : | |
| m_firstHeap(0), | |
| m_lastHeap(0), | |
| m_allHeaps() | |
| { | |
| } | |
| void IonAllHeapsTest::SetUp() { | |
| int fd = ion_open(); | |
| ASSERT_GE(fd, 0); | |
| for (int i = 1; i != 0; i <<= 1) { | |
| ion_user_handle_t handle = 0; | |
| int ret; | |
| ret = ion_alloc(fd, 4096, 0, i, 0, &handle); | |
| if (ret == 0 && handle != 0) { | |
| ion_free(fd, handle); | |
| if (!m_firstHeap) { | |
| m_firstHeap = i; | |
| } | |
| m_lastHeap = i; | |
| m_allHeaps.push_back(i); | |
| } else { | |
| ASSERT_EQ(-ENODEV, ret); | |
| } | |
| } | |
| ion_close(fd); | |
| EXPECT_NE(0U, m_firstHeap); | |
| EXPECT_NE(0U, m_lastHeap); | |
| RecordProperty("Heaps", m_allHeaps.size()); | |
| IonTest::SetUp(); | |
| } | |
| void IonAllHeapsTest::TearDown() { | |
| IonTest::TearDown(); | |
| } |