diff options
Diffstat (limited to 'tests/camera2/CameraStreamTests.cpp')
-rw-r--r-- | tests/camera2/CameraStreamTests.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/camera2/CameraStreamTests.cpp b/tests/camera2/CameraStreamTests.cpp index cff8394..b076296 100644 --- a/tests/camera2/CameraStreamTests.cpp +++ b/tests/camera2/CameraStreamTests.cpp @@ -14,6 +14,8 @@ * limitations under the License. */ +#include <iostream> +#include <iomanip> #include <gtest/gtest.h> #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()); } |