123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #include <unity.h>
- #include <iostream>
- #include <fstream>
- #include "kbf/spiffs.h"
- using std::ifstream;
- using std::ofstream;
- using std::cout;
- using std::endl;
- // TODO maybe use Kconfig? or set from CMake for DRY?
- #define MOUNT_POINT "/spiffs_test"
- #define READ_TEST_FILE MOUNT_POINT "/read_test.txt"
- #define READ_TEST_STR "read_test_success"
- #define WRITE_TEST_FILE MOUNT_POINT "/write_test.txt"
- #define WRITE_TEST_STR "write_test_success"
- TEST_CASE("SPIFFS read / write", "[kbf_spiffs]") {
- auto spiffs = kbf::SPIFFS(MOUNT_POINT);
- TEST_ASSERT_TRUE_MESSAGE(spiffs.mount(), "test configuration error: SPIFFS mount failed")
- auto readTest = ifstream(READ_TEST_FILE);
- TEST_ASSERT_MESSAGE(readTest, "read_test.txt not readable")
- string buffer;
- readTest >> buffer;
- readTest.close();
- TEST_ASSERT_EQUAL_STRING_MESSAGE(READ_TEST_STR, buffer.c_str(), "read test failed");
- auto writeTestOut = ofstream(WRITE_TEST_FILE);
- TEST_ASSERT_MESSAGE(writeTestOut, "write_test.txt not writable")
- writeTestOut << WRITE_TEST_STR;
- writeTestOut.close();
- auto writeTestIn = ifstream(WRITE_TEST_FILE);
- TEST_ASSERT_MESSAGE(writeTestIn, "write_test.txt not readable")
- writeTestIn >> buffer;
- writeTestIn.close();
- TEST_ASSERT_EQUAL_STRING_MESSAGE(WRITE_TEST_STR, buffer.c_str(), "write test failed");
- }
- TEST_CASE("SPIFFS get filesystem info", "[kbf_spiffs]") {
- auto spiffs = kbf::SPIFFS(MOUNT_POINT);
- TEST_ASSERT_TRUE_MESSAGE(spiffs.mount(), "test configuration error: SPIFFS mount failed")
- auto info = spiffs.info();
- TEST_ASSERT_GREATER_THAN(0, info.used);
- TEST_ASSERT_GREATER_THAN(0, info.free);
- TEST_ASSERT_EQUAL(info.used + info.free, info.total);
- cout << "SPIFFS info: " << endl
- << "\ttotal: " << info.total << endl
- << "\tused: " << info.used << endl
- << "\tfree: " << info.free << endl;
- }
- TEST_CASE("SPIFFS partition not found", "[kbf_spiffs]") {
- auto spiffs = kbf::SPIFFS(MOUNT_POINT, "non_existent_partition");
- TEST_ASSERT_FALSE(spiffs.mount())
- TEST_ASSERT_EQUAL(ESP_ERR_NOT_FOUND, spiffs.error);
- }
|