Files
maze32/test/host/test_config_store.c

46 lines
1.6 KiB
C

#include <assert.h>
#include <stdio.h>
#include <string.h>
#include "maze32_config_store.h"
#include "nvs.h"
#include "nvs_flash.h"
static maze32_wifi_credentials_t credentials(const char *ssid, const char *password)
{
maze32_wifi_credentials_t value = {0};
memcpy(value.ssid, ssid, strlen(ssid) + 1U);
memcpy(value.password, password, strlen(password) + 1U);
return value;
}
int main(void)
{
assert(maze32_config_store_init() == ESP_OK);
maze32_wifi_credentials_t loaded = {0};
assert(maze32_config_store_load(&loaded) == ESP_ERR_NOT_FOUND);
maze32_wifi_credentials_t saved = credentials("PersistentNetwork", "safe-passphrase");
assert(maze32_config_store_save(&saved) == ESP_OK);
assert(nvs_flash_deinit() == ESP_OK);
assert(maze32_config_store_init() == ESP_OK);
assert(maze32_config_store_load(&loaded) == ESP_OK);
assert(strcmp(loaded.ssid, saved.ssid) == 0);
assert(strcmp(loaded.password, saved.password) == 0);
maze32_wifi_credentials_t invalid = credentials("PersistentNetwork", "short");
assert(maze32_config_store_save(&invalid) == ESP_ERR_INVALID_ARG);
memset(&loaded, 0, sizeof(loaded));
assert(maze32_config_store_load(&loaded) == ESP_OK);
assert(strcmp(loaded.password, saved.password) == 0);
fake_nvs_set_schema(MAZE32_WIFI_CONFIG_SCHEMA_VERSION + 1U);
assert(maze32_config_store_load(&loaded) == ESP_ERR_INVALID_VERSION);
fake_nvs_set_schema(MAZE32_WIFI_CONFIG_SCHEMA_VERSION);
assert(maze32_config_store_clear() == ESP_OK);
assert(maze32_config_store_load(&loaded) == ESP_ERR_NOT_FOUND);
puts("configuration NVS tests: PASS");
return 0;
}