feat: implement Wi-Fi provisioning and persistent configuration
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "maze32_provisioning_protocol.h"
|
||||
|
||||
static void accept(const char *json, const char *ssid, const char *password)
|
||||
{
|
||||
maze32_wifi_credentials_t credentials;
|
||||
assert(maze32_provisioning_parse_credentials(json, strlen(json), &credentials));
|
||||
assert(strcmp(credentials.ssid, ssid) == 0);
|
||||
assert(strcmp(credentials.password, password) == 0);
|
||||
}
|
||||
|
||||
static void reject(const char *json)
|
||||
{
|
||||
maze32_wifi_credentials_t credentials;
|
||||
assert(!maze32_provisioning_parse_credentials(json, strlen(json), &credentials));
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
accept("{\"ssid\":\"Maze WiFi\",\"password\":\"password8\"}",
|
||||
"Maze WiFi", "password8");
|
||||
accept(" { \"password\" : \"quote\\\"pass\" , \"ssid\" : \"Maze\" } ",
|
||||
"Maze", "quote\"pass");
|
||||
accept("{\"ssid\":\"Open\",\"password\":\"\"}", "Open", "");
|
||||
|
||||
reject("{}");
|
||||
reject("{\"ssid\":\"Maze\"}");
|
||||
reject("{\"ssid\":\"Maze\",\"password\":\"short\"}");
|
||||
reject("{\"ssid\":\"Maze\",\"password\":\"password8\",\"extra\":1}");
|
||||
reject("{\"ssid\":12,\"password\":\"password8\"}");
|
||||
reject("{\"ssid\":\"Maze\\nBad\",\"password\":\"password8\"}");
|
||||
reject("{\"ssid\":\"Maze\",\"ssid\":\"Again\"}");
|
||||
reject("not-json");
|
||||
|
||||
puts("provisioning protocol tests: PASS");
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user