test: controls: control_value: Expand test to cover all control types
The ControlValueTest hasn't been updated for a long time and is outdated. Improve it to support all control types, and test the type(), isArray() and toString() methods. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
fa252b710a
commit
38d6e5b9ca
1 changed files with 94 additions and 28 deletions
|
@ -19,46 +19,112 @@ class ControlValueTest : public Test
|
||||||
protected:
|
protected:
|
||||||
int run()
|
int run()
|
||||||
{
|
{
|
||||||
ControlValue integer(1234);
|
/*
|
||||||
ControlValue boolean(true);
|
* None type.
|
||||||
|
*/
|
||||||
/* Just a string conversion output test... no validation */
|
|
||||||
cout << "Int: " << integer.toString()
|
|
||||||
<< " Bool: " << boolean.toString()
|
|
||||||
<< endl;
|
|
||||||
|
|
||||||
if (integer.get<int32_t>() != 1234) {
|
|
||||||
cerr << "Failed to get Integer" << endl;
|
|
||||||
return TestFail;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (boolean.get<bool>() != true) {
|
|
||||||
cerr << "Failed to get Boolean" << endl;
|
|
||||||
return TestFail;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Test an uninitialised value, and updating it. */
|
|
||||||
|
|
||||||
ControlValue value;
|
ControlValue value;
|
||||||
if (!value.isNone()) {
|
if (!value.isNone() || value.isArray()) {
|
||||||
cerr << "Empty value is non-null" << endl;
|
cerr << "Empty value is non-null" << endl;
|
||||||
return TestFail;
|
return TestFail;
|
||||||
}
|
}
|
||||||
|
|
||||||
value.set<bool>(true);
|
/*
|
||||||
if (value.isNone()) {
|
* Bool type.
|
||||||
cerr << "Failed to set an empty object" << endl;
|
*/
|
||||||
|
value.set(true);
|
||||||
|
if (value.isNone() || value.isArray() ||
|
||||||
|
value.type() != ControlTypeBool) {
|
||||||
|
cerr << "Control type mismatch after setting to bool" << endl;
|
||||||
return TestFail;
|
return TestFail;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value.get<bool>() != true) {
|
if (value.get<bool>() != true) {
|
||||||
cerr << "Failed to get Booleans" << endl;
|
cerr << "Control value mismatch after setting to bool" << endl;
|
||||||
return TestFail;
|
return TestFail;
|
||||||
}
|
}
|
||||||
|
|
||||||
value.set<int32_t>(10);
|
if (value.toString() != "true") {
|
||||||
if (value.get<int32_t>() != 10) {
|
cerr << "Control string mismatch after setting to bool" << endl;
|
||||||
cerr << "Failed to get Integer" << endl;
|
return TestFail;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Integer8 type.
|
||||||
|
*/
|
||||||
|
value.set(static_cast<uint8_t>(42));
|
||||||
|
if (value.isNone() || value.isArray() ||
|
||||||
|
value.type() != ControlTypeByte) {
|
||||||
|
cerr << "Control type mismatch after setting to uint8_t" << endl;
|
||||||
|
return TestFail;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value.get<uint8_t>() != 42) {
|
||||||
|
cerr << "Control value mismatch after setting to uint8_t" << endl;
|
||||||
|
return TestFail;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value.toString() != "42") {
|
||||||
|
cerr << "Control string mismatch after setting to uint8_t" << endl;
|
||||||
|
return TestFail;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Integer32 type.
|
||||||
|
*/
|
||||||
|
value.set(0x42000000);
|
||||||
|
if (value.isNone() || value.isArray() ||
|
||||||
|
value.type() != ControlTypeInteger32) {
|
||||||
|
cerr << "Control type mismatch after setting to int32_t" << endl;
|
||||||
|
return TestFail;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value.get<int32_t>() != 0x42000000) {
|
||||||
|
cerr << "Control value mismatch after setting to int32_t" << endl;
|
||||||
|
return TestFail;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value.toString() != "1107296256") {
|
||||||
|
cerr << "Control string mismatch after setting to int32_t" << endl;
|
||||||
|
return TestFail;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Integer64 type.
|
||||||
|
*/
|
||||||
|
value.set(static_cast<int64_t>(-42));
|
||||||
|
if (value.isNone() || value.isArray() ||
|
||||||
|
value.type() != ControlTypeInteger64) {
|
||||||
|
cerr << "Control type mismatch after setting to int64_t" << endl;
|
||||||
|
return TestFail;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value.get<int64_t>() != -42) {
|
||||||
|
cerr << "Control value mismatch after setting to int64_t" << endl;
|
||||||
|
return TestFail;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value.toString() != "-42") {
|
||||||
|
cerr << "Control string mismatch after setting to int64_t" << endl;
|
||||||
|
return TestFail;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Float type.
|
||||||
|
*/
|
||||||
|
value.set(-0.42f);
|
||||||
|
if (value.isNone() || value.isArray() ||
|
||||||
|
value.type() != ControlTypeFloat) {
|
||||||
|
cerr << "Control type mismatch after setting to float" << endl;
|
||||||
|
return TestFail;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value.get<float>() != -0.42f) {
|
||||||
|
cerr << "Control value mismatch after setting to float" << endl;
|
||||||
|
return TestFail;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value.toString() != "-0.420000") {
|
||||||
|
cerr << "Control string mismatch after setting to float" << endl;
|
||||||
return TestFail;
|
return TestFail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue