AUnit  0.5.3
Unit testing framework for Arduino platforms inspired by ArduinoUnit and Google Test.
Functions
Compare.h File Reference

This file provides overloaded compareXxx(a, b) functions which are used by the various assertXxx(a, b) macros. More...

#include <stddef.h>
Include dependency graph for Compare.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int aunit::internal::compareString (const char *a, const char *b)
 
int aunit::internal::compareString (const char *a, const String &b)
 
int aunit::internal::compareString (const char *a, const __FlashStringHelper *b)
 
int aunit::internal::compareString (const String &a, const char *b)
 
int aunit::internal::compareString (const String &a, const String &b)
 
int aunit::internal::compareString (const String &a, const __FlashStringHelper *b)
 
int aunit::internal::compareString (const __FlashStringHelper *a, const char *b)
 
int aunit::internal::compareString (const __FlashStringHelper *a, const __FlashStringHelper *b)
 
int aunit::internal::compareString (const __FlashStringHelper *a, const String &b)
 
int aunit::internal::compareString (const FCString &a, const FCString &b)
 
int aunit::internal::compareStringCase (const char *a, const char *b)
 
int aunit::internal::compareStringCase (const char *a, const String &b)
 
int aunit::internal::compareStringCase (const char *a, const __FlashStringHelper *b)
 
int aunit::internal::compareStringCase (const String &a, const char *b)
 
int aunit::internal::compareStringCase (const String &a, const String &b)
 
int aunit::internal::compareStringCase (const String &a, const __FlashStringHelper *b)
 
int aunit::internal::compareStringCase (const __FlashStringHelper *a, const char *b)
 
int aunit::internal::compareStringCase (const __FlashStringHelper *a, const __FlashStringHelper *b)
 
int aunit::internal::compareStringCase (const __FlashStringHelper *a, const String &b)
 
int aunit::internal::compareStringCase (const FCString &a, const FCString &b)
 
int aunit::internal::compareStringN (const char *a, const char *b, size_t n)
 Compare only the first n characters of 'a' or 'b'. More...
 
int aunit::internal::compareStringN (const char *a, const __FlashStringHelper *b, size_t n)
 Compare only the first n characters of 'a' or 'b'. More...
 
int aunit::internal::compareStringN (const __FlashStringHelper *a, const char *b, size_t n)
 Compare only the first n characters of 'a' or 'b'. More...
 
int aunit::internal::compareStringN (const __FlashStringHelper *a, const __FlashStringHelper *b, size_t n)
 Compare only the first n characters of 'a' or 'b'. More...
 
int aunit::internal::compareStringN (const FCString &a, const char *b, size_t n)
 Compare only the first n characters of 'a' or 'b'. More...
 
int aunit::internal::compareStringN (const FCString &a, const __FlashStringHelper *b, size_t n)
 Compare only the first n characters of 'a' or 'b'. More...
 
bool aunit::internal::compareEqual (bool a, bool b)
 
bool aunit::internal::compareEqual (char a, char b)
 
bool aunit::internal::compareEqual (int a, int b)
 
bool aunit::internal::compareEqual (unsigned int a, unsigned int b)
 
bool aunit::internal::compareEqual (long a, long b)
 
bool aunit::internal::compareEqual (unsigned long a, unsigned long b)
 
bool aunit::internal::compareEqual (double a, double b)
 
bool aunit::internal::compareEqual (const char *a, const char *b)
 
bool aunit::internal::compareEqual (const char *a, const String &b)
 
bool aunit::internal::compareEqual (const char *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareEqual (const __FlashStringHelper *a, const char *b)
 
bool aunit::internal::compareEqual (const __FlashStringHelper *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareEqual (const __FlashStringHelper *a, const String &b)
 
bool aunit::internal::compareEqual (const String &a, const char *b)
 
bool aunit::internal::compareEqual (const String &a, const String &b)
 
bool aunit::internal::compareEqual (const String &a, const __FlashStringHelper *b)
 
bool aunit::internal::compareLess (bool a, bool b)
 
bool aunit::internal::compareLess (char a, char b)
 
bool aunit::internal::compareLess (int a, int b)
 
bool aunit::internal::compareLess (unsigned int a, unsigned int b)
 
bool aunit::internal::compareLess (long a, long b)
 
bool aunit::internal::compareLess (unsigned long a, unsigned long b)
 
bool aunit::internal::compareLess (double a, double b)
 
bool aunit::internal::compareLess (const char *a, const char *b)
 
bool aunit::internal::compareLess (const char *a, const String &b)
 
bool aunit::internal::compareLess (const char *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareLess (const __FlashStringHelper *a, const char *b)
 
bool aunit::internal::compareLess (const __FlashStringHelper *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareLess (const __FlashStringHelper *a, const String &b)
 
bool aunit::internal::compareLess (const String &a, const char *b)
 
bool aunit::internal::compareLess (const String &a, const String &b)
 
bool aunit::internal::compareLess (const String &a, const __FlashStringHelper *b)
 
bool aunit::internal::compareMore (bool a, bool b)
 
bool aunit::internal::compareMore (char a, char b)
 
bool aunit::internal::compareMore (int a, int b)
 
bool aunit::internal::compareMore (unsigned int a, unsigned int b)
 
bool aunit::internal::compareMore (long a, long b)
 
bool aunit::internal::compareMore (unsigned long a, unsigned long b)
 
bool aunit::internal::compareMore (double a, double b)
 
bool aunit::internal::compareMore (const char *a, const char *b)
 
bool aunit::internal::compareMore (const char *a, const String &b)
 
bool aunit::internal::compareMore (const char *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareMore (const __FlashStringHelper *a, const char *b)
 
bool aunit::internal::compareMore (const __FlashStringHelper *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareMore (const __FlashStringHelper *a, const String &b)
 
bool aunit::internal::compareMore (const String &a, const char *b)
 
bool aunit::internal::compareMore (const String &a, const String &b)
 
bool aunit::internal::compareMore (const String &a, const __FlashStringHelper *b)
 
bool aunit::internal::compareLessOrEqual (bool a, bool b)
 
bool aunit::internal::compareLessOrEqual (char a, char b)
 
bool aunit::internal::compareLessOrEqual (int a, int b)
 
bool aunit::internal::compareLessOrEqual (unsigned int a, unsigned int b)
 
bool aunit::internal::compareLessOrEqual (long a, long b)
 
bool aunit::internal::compareLessOrEqual (unsigned long a, unsigned long b)
 
bool aunit::internal::compareLessOrEqual (double a, double b)
 
bool aunit::internal::compareLessOrEqual (const char *a, const char *b)
 
bool aunit::internal::compareLessOrEqual (const char *a, const String &b)
 
bool aunit::internal::compareLessOrEqual (const char *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareLessOrEqual (const __FlashStringHelper *a, const char *b)
 
bool aunit::internal::compareLessOrEqual (const __FlashStringHelper *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareLessOrEqual (const __FlashStringHelper *a, const String &b)
 
bool aunit::internal::compareLessOrEqual (const String &a, const char *b)
 
bool aunit::internal::compareLessOrEqual (const String &a, const String &b)
 
bool aunit::internal::compareLessOrEqual (const String &a, const __FlashStringHelper *b)
 
bool aunit::internal::compareMoreOrEqual (bool a, bool b)
 
bool aunit::internal::compareMoreOrEqual (char a, char b)
 
bool aunit::internal::compareMoreOrEqual (int a, int b)
 
bool aunit::internal::compareMoreOrEqual (unsigned int a, unsigned int b)
 
bool aunit::internal::compareMoreOrEqual (long a, long b)
 
bool aunit::internal::compareMoreOrEqual (unsigned long a, unsigned long b)
 
bool aunit::internal::compareMoreOrEqual (double a, double b)
 
bool aunit::internal::compareMoreOrEqual (const char *a, const char *b)
 
bool aunit::internal::compareMoreOrEqual (const char *a, const String &b)
 
bool aunit::internal::compareMoreOrEqual (const char *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareMoreOrEqual (const __FlashStringHelper *a, const char *b)
 
bool aunit::internal::compareMoreOrEqual (const __FlashStringHelper *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareMoreOrEqual (const __FlashStringHelper *a, const String &b)
 
bool aunit::internal::compareMoreOrEqual (const String &a, const char *b)
 
bool aunit::internal::compareMoreOrEqual (const String &a, const String &b)
 
bool aunit::internal::compareMoreOrEqual (const String &a, const __FlashStringHelper *b)
 
bool aunit::internal::compareNotEqual (bool a, bool b)
 
bool aunit::internal::compareNotEqual (char a, char b)
 
bool aunit::internal::compareNotEqual (int a, int b)
 
bool aunit::internal::compareNotEqual (unsigned int a, unsigned int b)
 
bool aunit::internal::compareNotEqual (long a, long b)
 
bool aunit::internal::compareNotEqual (unsigned long a, unsigned long b)
 
bool aunit::internal::compareNotEqual (double a, double b)
 
bool aunit::internal::compareNotEqual (const char *a, const char *b)
 
bool aunit::internal::compareNotEqual (const char *a, const String &b)
 
bool aunit::internal::compareNotEqual (const char *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareNotEqual (const __FlashStringHelper *a, const char *b)
 
bool aunit::internal::compareNotEqual (const __FlashStringHelper *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareNotEqual (const __FlashStringHelper *a, const String &b)
 
bool aunit::internal::compareNotEqual (const String &a, const char *b)
 
bool aunit::internal::compareNotEqual (const String &a, const String &b)
 
bool aunit::internal::compareNotEqual (const String &a, const __FlashStringHelper *b)
 
bool aunit::internal::compareStringCaseEqual (const char *a, const char *b)
 
bool aunit::internal::compareStringCaseEqual (const char *a, const String &b)
 
bool aunit::internal::compareStringCaseEqual (const char *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareStringCaseEqual (const __FlashStringHelper *a, const char *b)
 
bool aunit::internal::compareStringCaseEqual (const __FlashStringHelper *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareStringCaseEqual (const __FlashStringHelper *a, const String &b)
 
bool aunit::internal::compareStringCaseEqual (const String &a, const char *b)
 
bool aunit::internal::compareStringCaseEqual (const String &a, const String &b)
 
bool aunit::internal::compareStringCaseEqual (const String &a, const __FlashStringHelper *b)
 
bool aunit::internal::compareStringCaseNotEqual (const char *a, const char *b)
 
bool aunit::internal::compareStringCaseNotEqual (const char *a, const String &b)
 
bool aunit::internal::compareStringCaseNotEqual (const char *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareStringCaseNotEqual (const __FlashStringHelper *a, const char *b)
 
bool aunit::internal::compareStringCaseNotEqual (const __FlashStringHelper *a, const __FlashStringHelper *b)
 
bool aunit::internal::compareStringCaseNotEqual (const __FlashStringHelper *a, const String &b)
 
bool aunit::internal::compareStringCaseNotEqual (const String &a, const char *b)
 
bool aunit::internal::compareStringCaseNotEqual (const String &a, const String &b)
 
bool aunit::internal::compareStringCaseNotEqual (const String &a, const __FlashStringHelper *b)
 

Detailed Description

This file provides overloaded compareXxx(a, b) functions which are used by the various assertXxx(a, b) macros.

We wanted to allow users to use the assertXxx() macros with all combinations of the 3 types of strings available in the Arduino platform:

Clearly, there are 9 binary combinations these string types, so we define 9 compareString(a, b) functions.

For other primitive types, I depend on implicit conversion rules to reduce the overloaded types to 7:

Therefore, there are 16 overloaded versions of each of the compareXxx(a, b) functions.

There are 6 compareXxx() functions corresponding to (==, !=, <, >, <=, >=). Many of them are implemented using the primitive logical operators for the respective primitive types. The compare functions for string types are implemented using compareString().

The compareStringN(a, b) functions are used only to implement the TestRunner::include() and TestRunner::exclude() functions. The supported types of 'a' and 'b' only need to be (const char*) or (const __FlashStringHelper*) so we get 4 combinations. Two more versions of compareStringN() are required to support FCString types for 'a'. That makes a total of 6.

All versions of compareString() and compareStringN() accept nullptr arguments (in constrast to strcmp() and strncmp() where their behavior for nullptr are undefined by the C standard.) If both arguments are nullptr, then the strings are considered equal (returns 0). Otherwise, the nullptr is arbitrarily defined to be less than all non-null strings, including the empty string.

Definition in file Compare.h.

Function Documentation

◆ compareStringN() [1/6]

int aunit::internal::compareStringN ( const char *  a,
const char *  b,
size_t  n 
)

Compare only the first n characters of 'a' or 'b'.

Definition at line 286 of file Compare.cpp.

◆ compareStringN() [2/6]

int aunit::internal::compareStringN ( const char *  a,
const __FlashStringHelper *  b,
size_t  n 
)

Compare only the first n characters of 'a' or 'b'.

Definition at line 293 of file Compare.cpp.

◆ compareStringN() [3/6]

int aunit::internal::compareStringN ( const __FlashStringHelper *  a,
const char *  b,
size_t  n 
)

Compare only the first n characters of 'a' or 'b'.

Definition at line 300 of file Compare.cpp.

◆ compareStringN() [4/6]

int aunit::internal::compareStringN ( const __FlashStringHelper *  a,
const __FlashStringHelper *  b,
size_t  n 
)

Compare only the first n characters of 'a' or 'b'.

Definition at line 307 of file Compare.cpp.

◆ compareStringN() [5/6]

int aunit::internal::compareStringN ( const FCString a,
const char *  b,
size_t  n 
)

Compare only the first n characters of 'a' or 'b'.

Definition at line 329 of file Compare.cpp.

◆ compareStringN() [6/6]

int aunit::internal::compareStringN ( const FCString a,
const __FlashStringHelper *  b,
size_t  n 
)

Compare only the first n characters of 'a' or 'b'.

Definition at line 337 of file Compare.cpp.