| /* SPDX-License-Identifier: GPL-2.0-or-later */ |
| /* |
| * Copyright (C) 2019, Google Inc. |
| * |
| * control_info.cpp - ControlInfo tests |
| */ |
| |
| #include <iostream> |
| |
| #include <libcamera/control_ids.h> |
| #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 range with no minimum and |
| * maximum. |
| */ |
| ControlInfo brightness; |
| |
| if (brightness.min().get<int32_t>() != 0 || |
| brightness.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. |
| */ |
| ControlInfo contrast(10, 200); |
| |
| if (contrast.min().get<int32_t>() != 10 || |
| contrast.max().get<int32_t>() != 200) { |
| cout << "Invalid control range for Contrast" << endl; |
| return TestFail; |
| } |
| |
| /* |
| * Test information retrieval from a control with boolean |
| * values. |
| */ |
| ControlInfo aeEnable({ false, true }, false); |
| |
| if (aeEnable.min().get<bool>() != false || |
| aeEnable.def().get<bool>() != false || |
| aeEnable.max().get<bool>() != true) { |
| cout << "Invalid control range for AeEnable" << endl; |
| return TestFail; |
| } |
| |
| if (aeEnable.values()[0].get<bool>() != false || |
| aeEnable.values()[1].get<bool>() != true) { |
| cout << "Invalid control values for AeEnable" << endl; |
| return TestFail; |
| } |
| |
| ControlInfo awbEnable(true); |
| |
| if (awbEnable.min().get<bool>() != true || |
| awbEnable.def().get<bool>() != true || |
| awbEnable.max().get<bool>() != true) { |
| cout << "Invalid control range for AwbEnable" << endl; |
| return TestFail; |
| } |
| |
| if (awbEnable.values()[0].get<bool>() != true) { |
| cout << "Invalid control values for AwbEnable" << endl; |
| return TestFail; |
| } |
| |
| return TestPass; |
| } |
| }; |
| |
| TEST_REGISTER(ControlInfoTest) |