libcamera/test/v4l2_device/formats.cpp
Niklas Söderlund 4f8ba02bbc test: v4l2_device: Allow each test to specify which device and entity to test
Prepare for different tests which implements V4L2DeviceTest to specify
which media device and entity they wish to test. There is no functional
changes, all tests still use vivid to perform there tests.

Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2019-05-17 20:39:03 +02:00

54 lines
1.1 KiB
C++

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright (C) 2019, Google Inc.
*
* libcamera V4L2 device format handling test
*/
#include <climits>
#include <iostream>
#include "v4l2_device.h"
#include "v4l2_device_test.h"
using namespace std;
using namespace libcamera;
class Format : public V4L2DeviceTest
{
public:
Format()
: V4L2DeviceTest("vivid", "vivid-000-vid-cap") {}
protected:
int run()
{
V4L2DeviceFormat format = {};
int ret = capture_->getFormat(&format);
if (ret) {
cerr << "Failed to get format" << endl;
return TestFail;
}
format.size = { UINT_MAX, UINT_MAX };
ret = capture_->setFormat(&format);
if (ret) {
cerr << "Failed to set format: image resolution is invalid: "
<< "(UINT_MAX x UINT_MAX) but setFormat() should not fail."
<< endl;
return TestFail;
}
if (format.size.width == UINT_MAX ||
format.size.height == UINT_MAX) {
cerr << "Failed to update image format = (UINT_MAX x UINT_MAX)"
<< endl;
return TestFail;
}
return TestPass;
}
};
TEST_REGISTER(Format);