Skip to content

Commit 9b5260d

Browse files
mstasiaknordicnashif
authored andcommitted
tests: boards: nrf: qdec: modify QDEC tests to match new api
Overflow errorcode is now correctly detected when expected. Subsequent sensor_channel_get() yield the same values, so the check can be no longer ignored. Added a sensor_sample_fetch() where missing for correct sensor_channel_get() calls. Signed-off-by: Michał Stasiak <[email protected]>
1 parent 2e6c83d commit 9b5260d

File tree

1 file changed

+20
-17
lines changed
  • tests/boards/nrf/qdec/src

1 file changed

+20
-17
lines changed

tests/boards/nrf/qdec/src/main.c

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ static void qenc_emulate_stop(void)
8989
}
9090

9191
static void qenc_emulate_verify_reading(int emulator_period_ms, int emulation_duration_ms,
92-
bool forward, bool overflow_possible)
92+
bool forward, bool overflow_expected)
9393
{
9494
int rc;
9595
struct sensor_value val = {0};
@@ -107,13 +107,17 @@ static void qenc_emulate_verify_reading(int emulator_period_ms, int emulation_du
107107
k_msleep(emulation_duration_ms);
108108

109109
rc = sensor_sample_fetch(qdec_dev);
110-
zassert_true(rc == 0, "Failed to fetch sample (%d)", rc);
110+
111+
if (!overflow_expected) {
112+
zassert_true(rc == 0, "Failed to fetch sample (%d)", rc);
113+
} else {
114+
zassert_true(rc == -EOVERFLOW, "Failed to detect overflow");
115+
}
111116

112117
rc = sensor_channel_get(qdec_dev, SENSOR_CHAN_ROTATION, &val);
113118
zassert_true(rc == 0, "Failed to get sample (%d)", rc);
114119

115-
TC_PRINT("QDEC reading: %d\n", val.val1);
116-
if (!overflow_possible) {
120+
if (!overflow_expected) {
117121
zassert_within(val.val1, expected_reading, delta,
118122
"Expected reading: %d, but got: %d", expected_reading, val.val1);
119123
}
@@ -197,6 +201,9 @@ ZTEST(qdec_sensor, test_sensor_trigger_set)
197201
rc = k_sem_take(&sem, K_MSEC(200));
198202
zassert_true(rc == 0, "qdec handler should be triggered (%d)", rc);
199203

204+
rc = sensor_sample_fetch(qdec_dev);
205+
zassert_true(rc == 0, "Failed to fetch sample (%d)", rc);
206+
200207
rc = sensor_channel_get(qdec_dev, SENSOR_CHAN_ROTATION, &val);
201208
zassert_true(rc == 0, "Failed to fetch sample (%d)", rc);
202209

@@ -241,7 +248,6 @@ ZTEST(qdec_sensor, test_qdec_readings)
241248
qenc_emulate_verify_reading(10, 100, true, false);
242249
qenc_emulate_verify_reading(2, 500, true, false);
243250
qenc_emulate_verify_reading(10, 200, false, false);
244-
/* may lead to overflows but currently driver does not detects that */
245251
qenc_emulate_verify_reading(1, 1000, false, true);
246252
qenc_emulate_verify_reading(1, 1000, true, true);
247253
}
@@ -313,18 +319,15 @@ ZTEST(qdec_sensor, test_sensor_channel_get)
313319
/* subsequent calls of sensor_channel_get without calling sensor_sample_fetch
314320
* should yield the same value
315321
*/
316-
/* zassert_true(val_first.val1 == val_second.val1,
317-
* "Expected the same readings: %d vs %d",
318-
* val_first.val1,
319-
* val_second.val1);
320-
*/
321-
TC_PRINT("Expected the same readings: %d vs %d - ignore!\n", val_first.val1,
322-
val_second.val1);
323-
/* zassert_true(val_first.val2 == val_second.val2, "Expected the same readings: %d vs %d",
324-
* val_first.val2, val_second.val2);
325-
*/
326-
TC_PRINT("Expected the same readings: %d vs %d - ignore!\n", val_first.val2,
327-
val_second.val2);
322+
zassert_true(val_first.val1 == val_second.val1,
323+
"Expected the same readings: %d vs %d",
324+
val_first.val1,
325+
val_second.val1);
326+
327+
zassert_true(val_first.val2 == val_second.val2,
328+
"Expected the same readings: %d vs %d",
329+
val_first.val2,
330+
val_second.val2);
328331
}
329332

330333
/**

0 commit comments

Comments
 (0)