libcamera: test: Add ControlInfo test

Provide an initial test coverage for the ControlInfo class.

Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
Kieran Bingham 2019-06-12 14:14:00 +01:00 committed by Laurent Pinchart
parent 4cbf83da40
commit 41c184afc3
2 changed files with 63 additions and 0 deletions

View file

@ -0,0 +1,62 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright (C) 2019, Google Inc.
*
* control_info.cpp - ControlInfo tests
*/
#include <iostream>
#include <libcamera/controls.h>
#include "test.h"
using namespace std;
using namespace libcamera;
class ControlInfoTest : public Test
{
protected:
int run()
{
/*
* Test information retrieval from a control with no minimum
* and maximum.
*/
ControlInfo info(Brightness);
if (info.id() != Brightness ||
info.type() != ControlValueInteger ||
info.name() != std::string("Brightness")) {
cout << "Invalid control identification for Brightness" << endl;
return TestFail;
}
if (info.min().getInt() != 0 || info.max().getInt() != 0) {
cout << "Invalid control range for Brightness" << endl;
return TestFail;
}
/*
* Test information retrieval from a control with a minimum and
* a maximum value.
*/
info = ControlInfo(Contrast, 10, 200);
if (info.id() != Contrast ||
info.type() != ControlValueInteger ||
info.name() != std::string("Contrast")) {
cout << "Invalid control identification for Contrast" << endl;
return TestFail;
}
if (info.min().getInt() != 10 || info.max().getInt() != 200) {
cout << "Invalid control range for Contrast" << endl;
return TestFail;
}
return TestPass;
}
};
TEST_REGISTER(ControlInfoTest)

View file

@ -1,4 +1,5 @@
control_tests = [
[ 'control_info', 'control_info.cpp' ],
[ 'control_value', 'control_value.cpp' ],
]