libcamera/test/controls/control_info.cpp
Kieran Bingham 41c184afc3 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>
2019-07-02 16:59:49 +03:00

62 lines
1.3 KiB
C++

/* 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)