test max values

This commit is contained in:
Nicu Hodos 2022-10-28 08:59:37 +02:00
parent 5284ce9b41
commit 5532582531
3 changed files with 44 additions and 4 deletions

View File

@ -26,8 +26,8 @@ steps:
- echo -n 'reset' > /dev/ttyUSB0; sleep 1s; avrdude -patmega328p -carduino -P/dev/ttyUSB0 -b115200 -D -Uflash:w:.pio/build/pro-mini/firmware.hex:i -v
- service ser2net start
when:
target:
- production
branch:
- gateway
trigger:
branch:

View File

@ -12,10 +12,46 @@ void tearDown(void) {
void test_unknown_sensor_type(void) {
StaticJsonDocument<200> jsonDoc;
unsigned long value = ID(SensorId::TEMP_SENSOR) | TYPE(0);
unsigned long value = TYPE(0);
TEST_ASSERT_EQUAL(false, buildSensorJson(value, jsonDoc));
}
void test_max_temp(void) {
StaticJsonDocument<200> jsonDoc;
unsigned long value = TEMP(1023) | TYPE(SensorType::TEMPERATURE);
TEST_ASSERT_EQUAL(true, buildSensorJson(value, jsonDoc));
JsonObject sensor = jsonDoc["sensor"];
TEST_ASSERT_EQUAL(102.3, sensor["temperature"]);
}
void test_overflow_value(void) {
StaticJsonDocument<200> jsonDoc;
unsigned long value = VALUE(1024) | TYPE(SensorType::GENERIC);
TEST_ASSERT_EQUAL(true, buildSensorJson(value, jsonDoc));
JsonObject sensor = jsonDoc["sensor"];
TEST_ASSERT_EQUAL(0, sensor["value"]);
}
void test_max_voltage(void) {
StaticJsonDocument<200> jsonDoc;
unsigned long value = VCC(8191) | TYPE(SensorType::GENERIC);
TEST_ASSERT_EQUAL(true, buildSensorJson(value, jsonDoc));
JsonObject diagnostic = jsonDoc["sensor"]["diagnostic"];
TEST_ASSERT_EQUAL(8.191, diagnostic["voltage"]);
}
void test_overflow_voltage(void) {
StaticJsonDocument<200> jsonDoc;
unsigned long value = VCC(8192) | TYPE(SensorType::GENERIC);
TEST_ASSERT_EQUAL(true, buildSensorJson(value, jsonDoc));
JsonObject diagnostic = jsonDoc["sensor"]["diagnostic"];
TEST_ASSERT_EQUAL(0, diagnostic["voltage"]);
}
void test_temp_sensor(void) {
StaticJsonDocument<200> jsonDoc;
unsigned long value = ID(SensorId::TEMP_SENSOR) | TEMP(210) | TYPE(SensorType::TEMPERATURE);
@ -65,6 +101,10 @@ void test_oil_sensor_with_voltage(void) {
void setup() {
UNITY_BEGIN();
RUN_TEST(test_unknown_sensor_type);
RUN_TEST(test_max_temp);
RUN_TEST(test_overflow_value);
RUN_TEST(test_max_voltage);
RUN_TEST(test_overflow_voltage);
RUN_TEST(test_temp_sensor);
RUN_TEST(test_temp_sensor_with_voltage);
RUN_TEST(test_oil_sensor);

View File

@ -7,7 +7,7 @@
#define MASK_TYPE 0xF
#define ID(value) (value & 0x1F)
#define VCC(value) ((value & MASK_VCC) << 5)
#define VCC(value) (((unsigned long)value & MASK_VCC) << 5)
#define TEMP(value) (((unsigned long)value & MASK_VALUE) << 18)
#define HUMIDITY(value) (((unsigned long)value & MASK_VALUE) << 18)
#define VALUE(value) (((unsigned long)value & MASK_VALUE) << 18)