[libcamera-devel] [PATCH v2 2/4] test: camera: Add setting of configuration test
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Mar 11 09:54:24 CET 2019
Hi Niklas,
Thank you for the patch.
On Mon, Mar 11, 2019 at 03:22:30AM +0100, Niklas Söderlund wrote:
> Try to set the default configuration, a modified valid configuration and
> an invalid configuration.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> test/camera/configuration_set.cpp | 90 +++++++++++++++++++++++++++++++
> test/camera/meson.build | 1 +
> 2 files changed, 91 insertions(+)
> create mode 100644 test/camera/configuration_set.cpp
>
> diff --git a/test/camera/configuration_set.cpp b/test/camera/configuration_set.cpp
> new file mode 100644
> index 0000000000000000..cf0b96b7d1d6583c
> --- /dev/null
> +++ b/test/camera/configuration_set.cpp
> @@ -0,0 +1,90 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/*
> + * Copyright (C) 2019, Google Inc.
> + *
> + * libcamera Camera API tests
> + */
> +
> +#include <iostream>
> +
> +#include "camera_test.h"
> +
> +using namespace std;
> +
> +namespace {
> +
> +class ConfigurationSet : public CameraTest
> +{
> +protected:
> + int run()
> + {
> + std::set<Stream *> streams = { *camera_->streams().begin() };
> + std::map<Stream *, StreamConfiguration> conf =
> + camera_->streamConfiguration(streams);
> + StreamConfiguration *sconf = &conf.begin()->second;
> +
> + if (!configurationValid(streams, conf)) {
> + cout << "Reading default configuration" << endl;
"Failed to read ..." ? Same for the other messages.
> + return TestFail;
> + }
> +
> + if (camera_->acquire()) {
> + cout << "Acquiring the camera" << endl;
> + return TestFail;
> + }
> +
> + /* Test that setting the default configuration works. */
> + if (camera_->configureStreams(conf)) {
> + cout << "Setting default configuration" << endl;
> + return TestFail;
> + }
> +
> + /*
> + * Test that configuring the camera fails if it is not
> + * acquired, this will also test release and reacquiring
> + * of the camera.
> + */
> + if (camera_->release()) {
> + cout << "Releasing the camera" << endl;
> + return TestFail;
> + }
> +
> + if (!camera_->configureStreams(conf)) {
> + cout << "Setting configuration on a camera not acquired" << endl;
"... succeeded when it should have failed" ? (Or maybe something
shorter)
> + return TestFail;
> + }
> +
> + if (camera_->acquire()) {
> + cout << "Acquiring the camera" << endl;
> + return TestFail;
> + }
> +
> + /*
> + * Test that modifying the default configuration works. Doubling
> + * the default configuration of the VIMC camera is known to
> + * work.
> + */
> + sconf->width *= 2;
> + sconf->height *= 2;
> + if (camera_->configureStreams(conf)) {
> + cout << "Setting modified configuration" << endl;
> + return TestFail;
> + }
> +
> + /*
> + * Test that setting an invalid configuration fails.
> + */
> + sconf->width = 0;
> + sconf->height = 0;
> + if (!camera_->configureStreams(conf)) {
> + cout << "Setting invalid configuration" << endl;
"Invalid configuration incorrectly accepted" ?
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> + return TestFail;
> + }
> +
> + return TestPass;
> + }
> +};
> +
> +} /* namespace */
> +
> +TEST_REGISTER(ConfigurationSet);
> diff --git a/test/camera/meson.build b/test/camera/meson.build
> index 186ba211b9fde026..ed4837190ff6c52c 100644
> --- a/test/camera/meson.build
> +++ b/test/camera/meson.build
> @@ -2,6 +2,7 @@
> # They are not alphabetically sorted.
> camera_tests = [
> [ 'configuration_default', 'configuration_default.cpp' ],
> + [ 'configuration_set', 'configuration_set.cpp' ],
> ]
>
> foreach t : camera_tests
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list