mirror of https://github.com/meshcore-dev/MeshCore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.0 KiB
58 lines
2.0 KiB
#pragma once
|
|
|
|
// Minimal Arduino.h shim for native (host) unit tests.
|
|
// Only provides what the headers pulled in by RegionMap / TransportKeyStore /
|
|
// IdentityStore need to compile off-device. File / FILESYSTEM are inert stubs:
|
|
// the region-gating tests exercise in-memory logic and never touch the filesystem.
|
|
|
|
#include <cstdint>
|
|
#include <cstddef>
|
|
#include <cstring>
|
|
#include <cstdio>
|
|
#include <cstdlib>
|
|
#include <cmath>
|
|
#include <string>
|
|
|
|
#include "Stream.h"
|
|
|
|
// ---- Arduino string helpers not present in the host libc --------------------
|
|
static inline char* ltoa(long value, char* result, int base) {
|
|
if (base < 2 || base > 36) { *result = '\0'; return result; }
|
|
char* ptr = result;
|
|
char* low = result;
|
|
if (value < 0 && base == 10) { *ptr++ = '-'; low = ptr; }
|
|
unsigned long uval = (value < 0 && base == 10) ? (unsigned long)(-value) : (unsigned long)value;
|
|
do {
|
|
int digit = (int)(uval % (unsigned long)base);
|
|
*ptr++ = (char)(digit < 10 ? '0' + digit : 'a' + digit - 10);
|
|
uval /= (unsigned long)base;
|
|
} while (uval);
|
|
*ptr-- = '\0';
|
|
while (low < ptr) { char t = *low; *low++ = *ptr; *ptr-- = t; }
|
|
return result;
|
|
}
|
|
|
|
// ---- filesystem stubs -------------------------------------------------------
|
|
class File {
|
|
public:
|
|
operator bool() const { return false; }
|
|
int read(uint8_t* buf, size_t len) { (void)buf; (void)len; return 0; }
|
|
size_t write(const uint8_t* buf, size_t len) { (void)buf; (void)len; return 0; }
|
|
void close() {}
|
|
};
|
|
|
|
class FsMock {
|
|
public:
|
|
bool exists(const char* path) { (void)path; return false; }
|
|
bool remove(const char* path) { (void)path; return false; }
|
|
bool mkdir(const char* path) { (void)path; return false; }
|
|
File open(const char* path) { (void)path; return File(); }
|
|
File open(const char* path, const char* mode) { (void)path; (void)mode; return File(); }
|
|
File open(const char* path, const char* mode, bool create) {
|
|
(void)path; (void)mode; (void)create; return File();
|
|
}
|
|
};
|
|
|
|
#ifndef FILESYSTEM
|
|
#define FILESYSTEM FsMock
|
|
#endif
|
|
|