3e85b920fb
We can, theoretically, now change the v4l camera's mode.
91 lines
2.0 KiB
C++
91 lines
2.0 KiB
C++
#include <cameraModeRequest.h>
|
|
#include <gtest/gtest.h>
|
|
#include <support/exceptionAssertions.h>
|
|
|
|
namespace lcamera_dev {
|
|
namespace {
|
|
|
|
TEST(CameraModeRequestTest, DefaultFullPlanarIsOptionalIsFalse)
|
|
{
|
|
LcameraDevCameraModeRequest request;
|
|
EXPECT_FALSE(request.fullPlanarIsOptional);
|
|
}
|
|
|
|
TEST(CameraModeRequestTest, ZeroWidthThrows)
|
|
{
|
|
LcameraDevCameraModeRequest request;
|
|
request.width = 0;
|
|
request.height = 480;
|
|
|
|
EXPECT_THROW(
|
|
validateCameraModeRequest(request),
|
|
std::runtime_error);
|
|
}
|
|
|
|
TEST(CameraModeRequestTest, ZeroHeightThrows)
|
|
{
|
|
LcameraDevCameraModeRequest request;
|
|
request.width = 640;
|
|
request.height = 0;
|
|
|
|
EXPECT_THROW(
|
|
validateCameraModeRequest(request),
|
|
std::runtime_error);
|
|
}
|
|
|
|
TEST(CameraModeRequestTest, UnsupportedColourSpaceThrows)
|
|
{
|
|
LcameraDevCameraModeRequest request;
|
|
request.width = 640;
|
|
request.height = 480;
|
|
|
|
static_assert(
|
|
static_cast<int>(LcameraDevColourSpace::Yuv) == 0,
|
|
"test assumes Yuv is first enumerator");
|
|
|
|
const LcameraDevColourSpace unsupportedColourSpace =
|
|
static_cast<LcameraDevColourSpace>(1);
|
|
request.colourSpace = unsupportedColourSpace;
|
|
|
|
EXPECT_THROW(
|
|
validateCameraModeRequest(request),
|
|
std::runtime_error);
|
|
}
|
|
|
|
TEST(CameraModeRequestTest, FullPlanarOptionalRejectedAtConfigureApi)
|
|
{
|
|
LcameraDevCameraModeRequest request;
|
|
request.width = 640;
|
|
request.height = 480;
|
|
request.fullPlanarIsOptional = true;
|
|
|
|
try {
|
|
rejectFullPlanarOptionalAtConfigureApi(request);
|
|
FAIL() << "Expected runtime_error";
|
|
}
|
|
catch (const std::runtime_error& exception)
|
|
{
|
|
sscl::tests::expectExceptionMessageContains(
|
|
exception,
|
|
"not honored yet");
|
|
}
|
|
}
|
|
|
|
TEST(CameraModeRequestTest, CameraModeRequestsEqualComparesAllFields)
|
|
{
|
|
LcameraDevCameraModeRequest left;
|
|
left.width = 640;
|
|
left.height = 480;
|
|
left.colourSpace = LcameraDevColourSpace::Yuv;
|
|
left.fullPlanarIsOptional = false;
|
|
|
|
LcameraDevCameraModeRequest right = left;
|
|
EXPECT_TRUE(cameraModeRequestsEqual(left, right));
|
|
|
|
right.height = 720;
|
|
EXPECT_FALSE(cameraModeRequestsEqual(left, right));
|
|
}
|
|
|
|
} // namespace
|
|
} // namespace lcamera_dev
|