Added "strrchr" optimizaion a matching unit test and tiny unit test framework. (Documentation for that will follow later)

This commit is contained in:
IrgendwerA8
2017-02-26 20:03:05 +01:00
parent 6afcc370ed
commit c240d42a9e
4 changed files with 167 additions and 83 deletions

View File

@@ -0,0 +1,38 @@
#include <unittest.h>
#include <string.h>
static char TestString[] = "01234567890123456789"; // two times the same string
static char Found[256];
TEST
{
unsigned len;
unsigned i;
char* p;
len = strlen(TestString)/2; // test only one half of the string, to find last appearance
/* Search for all characters in the string, including the terminator */
for (i = 0; i < len; ++i)
{
/* Search for this char */
p = strrchr (TestString, TestString[i]);
ASSERT_AreEqual(i+len, p-TestString, "%u", "Unexpected location of character '%c' found!" COMMA TestString[i]);
/* Mark the char as checked */
Found[TestString[i]] = 1;
}
/* Search for all other characters and make sure they aren't found */
for (i = 0; i < 256; ++i)
{
if (!Found[i])
{
p = strrchr (TestString, i);
ASSERT_IsFalse(p, "Unexpected location of character '%c' found!" COMMA TestString[i]);
}
}
}
ENDTEST