Skip to content

Commit b2ecf7f

Browse files
committed
feat: add tests with ceedling
1 parent ecbac74 commit b2ecf7f

File tree

9 files changed

+549
-137
lines changed

9 files changed

+549
-137
lines changed

app/src/bme280.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ int16_t bme280_get_temperature(void) {
4444
LOG_ERR("get temperature failed (%d)", ret);
4545
return -1;
4646
}
47-
return sensor_value_to_temperature(t);
47+
return sensor_value_to_temperature(&t);
4848
}
4949

5050
uint32_t bme280_get_pressure(void) {
@@ -60,7 +60,7 @@ uint32_t bme280_get_pressure(void) {
6060
return (uint32_t)-1;
6161
}
6262

63-
return sensor_value_to_pressure(p);
63+
return sensor_value_to_pressure(&p);
6464
}
6565

6666
/* Return humidity in centi-%RH (e.g., 4567 => 45.67%) */
@@ -77,5 +77,5 @@ uint16_t bme280_get_humidity(void) {
7777
return (uint16_t)-1;
7878
}
7979

80-
return sensor_value_to_humidity(h);
80+
return sensor_value_to_humidity(&h);
8181
}

app/src/conversions.c

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
11
#include "conversions.h"
22

33
/* conversions */
4-
uint32_t sensor_value_to_pressure(struct sensor_value value) {
4+
uint32_t sensor_value_to_pressure(void *val) {
5+
/* this hack to allow testing in ceedling without reliance on the
6+
<zephyr/drivers/sensor.h> library
7+
*/
8+
struct sensor_value {
9+
int32_t val1;
10+
int32_t val2;
11+
};
12+
13+
if (!val) {
14+
return 0;
15+
}
16+
17+
struct sensor_value value = *(struct sensor_value *)val;
518
/* Zephyr pressure: val1 in kPa, val2 in micro-kPa */
619
/* Convert to Pa: kPa * 1000 + microkPa * 0.001 */
720
int64_t pa = (int64_t)value.val1 * 1000 + (int64_t)(value.val2 / 1000);
@@ -11,7 +24,17 @@ uint32_t sensor_value_to_pressure(struct sensor_value value) {
1124
return (uint32_t)pa;
1225
}
1326

14-
uint16_t sensor_value_to_humidity(struct sensor_value value) {
27+
uint16_t sensor_value_to_humidity(void *val) {
28+
struct sensor_value {
29+
int32_t val1;
30+
int32_t val2;
31+
};
32+
33+
if (!val) {
34+
return 0;
35+
}
36+
37+
struct sensor_value value = *(struct sensor_value *)val;
1538
/* %RH: val1 in %, val2 in micro-% */
1639
int32_t cpermil = (int32_t)value.val1 * 100 + (int32_t)(value.val2 / 10000);
1740
if (cpermil < 0)
@@ -21,7 +44,17 @@ uint16_t sensor_value_to_humidity(struct sensor_value value) {
2144
return (uint16_t)cpermil;
2245
}
2346

24-
int16_t sensor_value_to_temperature(struct sensor_value value) {
47+
int16_t sensor_value_to_temperature(void *val) {
48+
struct sensor_value {
49+
int32_t val1;
50+
int32_t val2;
51+
};
52+
53+
if (!val) {
54+
return 0;
55+
}
56+
57+
struct sensor_value value = *(struct sensor_value *)val;
2558
/* t.val1 in °C, t.val2 in 1e-6 °C */
2659
int32_t cdeg = (int32_t)value.val1 * 100 +
2760
(int32_t)(value.val2 / 10000); // 1e-6 / 1e4 = 1e-2

app/src/conversions.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@
33

44
#include <stdint.h>
55

6-
#include <zephyr/drivers/sensor.h>
7-
8-
uint32_t sensor_value_to_pressure(struct sensor_value value);
9-
uint16_t sensor_value_to_humidity(struct sensor_value value);
10-
int16_t sensor_value_to_temperature(struct sensor_value value);
6+
uint32_t sensor_value_to_pressure(void *value);
7+
uint16_t sensor_value_to_humidity(void *value);
8+
int16_t sensor_value_to_temperature(void *value);
119

1210
#endif

app/src/sensors.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ int16_t sensor_get_temperature(void) {
5454
return (int16_t)-1;
5555
}
5656

57-
return sensor_value_to_temperature(temp);
57+
return sensor_value_to_temperature(&temp);
5858
#else
5959
return bme280_get_temperature();
6060
#endif
@@ -74,7 +74,7 @@ uint32_t sensor_get_pressure(void) {
7474
return (int16_t)-1;
7575
}
7676

77-
return sensor_value_to_pressure(press);
77+
return sensor_value_to_pressure(&press);
7878
#else
7979
return bme280_get_pressure();
8080
#endif
@@ -93,7 +93,7 @@ uint16_t sensor_get_humidity(void) {
9393
return (int16_t)-1;
9494
}
9595

96-
return sensor_value_to_humidity(humid);
96+
return sensor_value_to_humidity(&humid);
9797
#else
9898
return bme280_get_humidity();
9999
#endif

app/tests/CMakeLists.txt

Lines changed: 0 additions & 15 deletions
This file was deleted.

app/tests/prj.conf

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)