Skip to content

Commit 6bd579c

Browse files
committed
Unit test saveAllCalibrationTables
1 parent 74ea4f7 commit 6bd579c

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

test/test_storage/test_storage.cpp

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,18 +243,21 @@ struct infinite_eeprom_t
243243
char readValue;
244244
uint16_t _length;
245245
uint16_t _blockSize;
246+
bool wasRead;
247+
bool wasWritten;
246248
};
247249

248250
static infinite_eeprom_t infiniteBuffer;
249251

250252
static byte infiniteRead(uint16_t)
251253
{
254+
infiniteBuffer.wasRead = true;
252255
return infiniteBuffer.readValue;
253256
}
254257

255258
void infniteWrite(uint16_t, byte)
256259
{
257-
// Do nothing
260+
infiniteBuffer.wasWritten = true;
258261
}
259262

260263
uint16_t infniteLength(void)
@@ -272,6 +275,8 @@ static void setupInfniteStorageApi(uint16_t length, uint16_t blockSize, char rea
272275
infiniteBuffer.readValue = readValue;
273276
infiniteBuffer._length = length;
274277
infiniteBuffer._blockSize = blockSize;
278+
infiniteBuffer.wasRead = false;
279+
infiniteBuffer.wasWritten = false;
275280
storage_api_t storage = { .read = infiniteRead, .write = infniteWrite, .length = infniteLength, .getMaxWriteBlockSize = infiniteGetMaxWriteBlockSize };
276281
setStorageAPI(storage);
277282
}
@@ -338,6 +343,36 @@ static void test_loadAllCalibrationTables(void)
338343
assert_2dtable(cltCalibrationTable, U16_MARKER, U16_MARKER);
339344
}
340345

346+
template <typename axis_t, typename value_t, uint8_t sizeT>
347+
static void load_2dtable(table2D<axis_t, value_t, sizeT> &table, axis_t axis, value_t value)
348+
{
349+
for (uint16_t index=0; index<sizeT; ++index)
350+
{
351+
table.axis[index] = axis;
352+
table.values[index] = value;
353+
}
354+
}
355+
356+
static void test_saveAllCalibrationTables(void)
357+
{
358+
uint16_t U16_MARKER = word(WRITE_MARKER, WRITE_MARKER);
359+
constexpr uint8_t U8_MARKER = WRITE_MARKER;
360+
361+
load_2dtable(o2CalibrationTable, U16_MARKER, U8_MARKER);
362+
load_2dtable(iatCalibrationTable, U16_MARKER, U16_MARKER);
363+
load_2dtable(cltCalibrationTable, U16_MARKER, U16_MARKER);
364+
365+
setupInfniteStorageApi(8192, 8192, BUFFER_MARKER);
366+
saveAllCalibrationTables();
367+
TEST_ASSERT_TRUE(infiniteBuffer.wasRead);
368+
TEST_ASSERT_TRUE(infiniteBuffer.wasWritten);
369+
370+
setupInfniteStorageApi(8192, 8192, BUFFER_MARKER);
371+
saveCalibrationTable((SensorCalibrationTable)-1);
372+
TEST_ASSERT_FALSE(infiniteBuffer.wasRead);
373+
TEST_ASSERT_FALSE(infiniteBuffer.wasWritten);
374+
}
375+
341376
void test_storage(void) {
342377
SET_UNITY_FILENAME() {
343378
RUN_TEST_P(test_writeEntity_raw);
@@ -351,5 +386,6 @@ void test_storage(void) {
351386
RUN_TEST_P(test_saveAllPages);
352387
RUN_TEST_P(test_loadAllPages);
353388
RUN_TEST_P(test_loadAllCalibrationTables);
389+
RUN_TEST_P(test_saveAllCalibrationTables);
354390
}
355391
}

0 commit comments

Comments
 (0)