libcamera/test/controls/control_info.cpp
Laurent Pinchart dd37ef784e libcamera: controls: Use explicit 32-bit integer types
Make the control API more explicit when dealing with integer controls by
specifying the size. We already do so for 64-bit integers, using int64_t
and ControlTypeInteger64, do the same for 32-bit integers.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
2019-10-04 19:33:08 +03:00

64 lines
1.4 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() != ControlTypeInteger32 ||
info.name() != std::string("Brightness")) {
cout << "Invalid control identification for Brightness" << endl;
return TestFail;
}
if (info.min().get<int32_t>() != 0 ||
info.max().get<int32_t>() != 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() != ControlTypeInteger32 ||
info.name() != std::string("Contrast")) {
cout << "Invalid control identification for Contrast" << endl;
return TestFail;
}
if (info.min().get<int32_t>() != 10 ||
info.max().get<int32_t>() != 200) {
cout << "Invalid control range for Contrast" << endl;
return TestFail;
}
return TestPass;
}
};
TEST_REGISTER(ControlInfoTest)