From 2a5c0e2a466fe5252cd12c0199d4868efcc83264 Mon Sep 17 00:00:00 2001 From: Igor Murashkin Date: Fri, 14 Dec 2012 16:33:46 -0800 Subject: [PATCH] Camera2: Tests: Skip stream tests /w formats that are not available.: DO NOT MERGE Change-Id: I0c0d6c639ee3b0fe625d0888cca4486da9e2bb98 --- tests/camera2/CameraBurstTests.cpp | 10 --------- tests/camera2/CameraModuleFixture.h | 6 ++++++ tests/camera2/CameraStreamTests.cpp | 32 +++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/tests/camera2/CameraBurstTests.cpp b/tests/camera2/CameraBurstTests.cpp index 356ed370..e39970c2 100644 --- a/tests/camera2/CameraBurstTests.cpp +++ b/tests/camera2/CameraBurstTests.cpp @@ -122,16 +122,6 @@ public: return acc; } - -protected: - - camera_metadata_ro_entry GetStaticEntry(uint32_t tag) const { - const CameraMetadata& staticInfo = mDevice->info(); - camera_metadata_ro_entry entry = staticInfo.find(tag); - return entry; - } - - }; TEST_F(CameraBurstTest, ManualExposureControl) { diff --git a/tests/camera2/CameraModuleFixture.h b/tests/camera2/CameraModuleFixture.h index d604ff76..6ad1ae8b 100644 --- a/tests/camera2/CameraModuleFixture.h +++ b/tests/camera2/CameraModuleFixture.h @@ -47,6 +47,12 @@ struct CameraModuleFixture { TearDown(); } + camera_metadata_ro_entry GetStaticEntry(uint32_t tag) const { + const CameraMetadata& staticInfo = mDevice->info(); + camera_metadata_ro_entry entry = staticInfo.find(tag); + return entry; + } + private: void SetUp() { diff --git a/tests/camera2/CameraStreamTests.cpp b/tests/camera2/CameraStreamTests.cpp index cff83943..b0762964 100644 --- a/tests/camera2/CameraStreamTests.cpp +++ b/tests/camera2/CameraStreamTests.cpp @@ -14,6 +14,8 @@ * limitations under the License. */ +#include +#include #include #define LOG_TAG "CameraStreamTest" @@ -67,6 +69,36 @@ TEST_P(CameraStreamTest, CreateStream) { TEST_EXTENSION_FORKING_INIT; + /** Make sure the format requested is supported. PASS this test if it's not + * not supported. + * + * TODO: would be nice of not running this test in the first place + * somehow. + */ + { + camera_metadata_ro_entry availableFormats = + GetStaticEntry(ANDROID_SCALER_AVAILABLE_FORMATS); + + bool hasFormat = false; + for (size_t i = 0; i < availableFormats.count; ++i) { + if (availableFormats.data.i32[i] == GetParam().mFormat) { + hasFormat = true; + break; + } + } + + if (!hasFormat) { + const ::testing::TestInfo* const test_info = + ::testing::UnitTest::GetInstance()->current_test_info(); + std::cerr << "Skipping test " + << test_info->test_case_name() << "." + << test_info->name() + << " because the format was not available: 0x" + << std::hex << GetParam().mFormat << std::endl; + return; + } + } + ASSERT_NO_FATAL_FAILURE(CreateStream()); ASSERT_NO_FATAL_FAILURE(DeleteStream()); }