tests: drivers: sensor: add test case for getting a sensor attribute

Add test case for getting the value of a sensor attribute.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
This commit is contained in:
Henrik Brix Andersen 2020-06-13 21:03:15 +02:00 committed by Carles Cufí
commit 0997265111
2 changed files with 34 additions and 2 deletions

View file

@ -104,11 +104,31 @@ int dummy_sensor_attr_set(struct device *dev,
{
struct dummy_sensor_data *data = dev->driver_data;
if (chan == SENSOR_CHAN_PROX) {
if (chan == SENSOR_CHAN_PROX &&
attr == SENSOR_ATTR_UPPER_THRESH) {
data->val[4].val1 = val->val1;
data->val[4].val2 = val->val2;
return 0;
}
return 0;
return -ENOTSUP;
}
int dummy_sensor_attr_get(struct device *dev,
enum sensor_channel chan,
enum sensor_attribute attr,
struct sensor_value *val)
{
struct dummy_sensor_data *data = dev->driver_data;
if (chan == SENSOR_CHAN_PROX &&
attr == SENSOR_ATTR_UPPER_THRESH) {
val->val1 = data->val[4].val1;
val->val2 = data->val[4].val2;
return 0;
}
return -ENOTSUP;
}
int dummy_sensor_trigger_set(struct device *dev,
@ -140,6 +160,7 @@ static const struct sensor_driver_api dummy_sensor_api = {
.sample_fetch = &dummy_sensor_sample_fetch,
.channel_get = &dummy_sensor_channel_get,
.attr_set = dummy_sensor_attr_set,
.attr_get = dummy_sensor_attr_get,
.trigger_set = dummy_sensor_trigger_set,
};

View file

@ -141,6 +141,17 @@ void test_sensor_handle_triggers(void)
&trigger_elements[i].data),
RETURN_SUCCESS, "fail to set attributes");
/* read-back attributes for trigger */
zassert_equal(sensor_attr_get(dev,
trigger_elements[i].trig.chan,
trigger_elements[i].attr,
&data),
RETURN_SUCCESS, "fail to get attributes");
zassert_equal(trigger_elements[i].data.val1,
data.val1, "read-back returned wrong val1");
zassert_equal(trigger_elements[i].data.val2,
data.val2, "read-back returned wrong val2");
/* setting a sensors trigger and handler */
zassert_equal(sensor_trigger_set(dev,
&trigger_elements[i].trig,