AUnit
0.5.3
Unit testing framework for Arduino platforms inspired by ArduinoUnit and Google Test.
|
A union of (const char*) and (const __FlashStringHelper*) with a discriminator. More...
#include <FCString.h>
Public Member Functions | |
FCString () | |
Default constructor initializes to a nullptr of kCStringType. More... | |
FCString (const char *s) | |
Construct with a c-string. More... | |
FCString (const __FlashStringHelper *s) | |
Construct with a flash string. More... | |
uint8_t | getType () const |
Get the internal type of string. More... | |
const char * | getCString () const |
Get the c-string pointer. More... | |
const __FlashStringHelper * | getFString () const |
Get the flash string pointer. More... | |
void | print (Print *printer) const |
Convenience method for printing an FCString. More... | |
void | println (Print *printer) const |
Convenience method for printing an FCString. More... | |
Static Public Attributes | |
static const uint8_t | kCStringType = 0 |
static const uint8_t | kFStringType = 1 |
A union of (const char*) and (const __FlashStringHelper*) with a discriminator.
This allows us to treat these 2 strings like a single object. The major reason this class is needed is because the F() cannot be used outside a function, it can only be used inside a function, so we are forced to use normal c-strings instead of F() strings when manually creating Test or TestOnce instances.
I deliberately decided not to inherit from Printable. While it is convenient to be able to call Print::print() with an instance of this class, the cost is 2 (AVR) or 4 (Teensy-ARM or ESP8266) extra bytes of static memory for the v-table pointer for each instance. But each instance is only 3 (AVR) or 5 (Teensy-ARM or ESP8266) bytes big, so the cost of 50-100 bytes of static memory for a large suite of 25 unit tests does not seem worth the minor convenience.
Instead, the print() and println() methods invert the dependency and accept a pointer to 'Print'.
Definition at line 55 of file FCString.h.
|
inline |
Default constructor initializes to a nullptr of kCStringType.
Definition at line 61 of file FCString.h.
|
inlineexplicit |
Construct with a c-string.
Definition at line 64 of file FCString.h.
|
inlineexplicit |
Construct with a flash string.
Definition at line 70 of file FCString.h.
|
inline |
Get the c-string pointer.
Definition at line 79 of file FCString.h.
|
inline |
Get the flash string pointer.
Definition at line 82 of file FCString.h.
|
inline |
Get the internal type of string.
Definition at line 76 of file FCString.h.
void aunit::internal::FCString::print | ( | Print * | printer | ) | const |
Convenience method for printing an FCString.
Definition at line 31 of file FCString.cpp.
void aunit::internal::FCString::println | ( | Print * | printer | ) | const |
Convenience method for printing an FCString.
Definition at line 39 of file FCString.cpp.