genesys: Verify that sensor tables are setup correctly

merge-requests/366/head
Povilas Kanapickas 2020-03-21 00:03:47 +02:00
rodzic 4cc233cde8
commit 1e116f1223
3 zmienionych plików z 28 dodań i 0 usunięć

Wyświetl plik

@ -475,6 +475,7 @@ void genesys_init_gpo_tables();
void genesys_init_memory_layout_tables();
void genesys_init_motor_tables();
void genesys_init_usb_device_tables();
void verify_sensor_tables();
void verify_usb_device_tables();
template<class T>

Wyświetl plik

@ -44,6 +44,7 @@
#define DEBUG_DECLARE_ONLY
#include "low.h"
#include <map>
namespace genesys {
@ -3243,4 +3244,28 @@ void genesys_init_sensor_tables()
}
}
void verify_sensor_tables()
{
std::map<SensorId, AsicType> sensor_to_asic;
for (const auto& device : *s_usb_devices) {
sensor_to_asic[device.model.sensor_id] = device.model.asic_type;
}
for (const auto& sensor : *s_sensors) {
if (sensor_to_asic.count(sensor.sensor_id) == 0) {
throw SaneException("Unknown asic for sensor");
}
auto asic_type = sensor_to_asic[sensor.sensor_id];
if (asic_type != AsicType::GL646) {
if (sensor.register_dpihw == 0) {
throw SaneException("register_dpihw is not defined");
}
if (sensor.shading_resolution == 0) {
throw SaneException("shading_resolution is not defined");
}
}
}
}
} // namespace genesys

Wyświetl plik

@ -389,7 +389,9 @@ TestResult perform_single_test(const TestConfig& config, const std::string& chec
std::vector<TestConfig> get_all_test_configs()
{
genesys::genesys_init_usb_device_tables();
genesys::genesys_init_sensor_tables();
genesys::verify_usb_device_tables();
genesys::verify_sensor_tables();
std::vector<TestConfig> configs;
std::unordered_set<std::string> model_names;