Message ID | 20190311022232.4759-3-niklas.soderlund@ragnatech.se |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
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@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@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
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; + 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; + 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; + 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
Try to set the default configuration, a modified valid configuration and an invalid configuration. Signed-off-by: Niklas Söderlund <niklas.soderlund@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