Files
fastfetch/tests/strbuf.c
T

135 lines
3.2 KiB
C
Raw Normal View History

2022-01-12 01:02:14 +01:00
#include "fastfetch.h"
#include <string.h>
#include <stdarg.h>
2022-07-25 19:54:33 +02:00
#include <stdlib.h>
2022-01-12 01:02:14 +01:00
static void testFailed(const FFstrbuf* strbuf, const char* message, ...)
{
va_list args;
va_start(args, message);
fputs(FASTFETCH_TEXT_MODIFIER_ERROR, stderr);
vfprintf(stderr, message, args);
fputs(", strbuf: ", stderr);
ffStrbufWriteTo(strbuf, stderr);
fputs(FASTFETCH_TEXT_MODIFIER_RESET, stderr);
fputc('\n', stderr);
va_end(args);
exit(1);
}
int main(int argc, char** argv)
{
FF_UNUSED(argc, argv)
FFstrbuf strbuf;
2022-09-04 12:43:30 +02:00
2022-09-23 15:10:50 +08:00
//destroy 0
ffStrbufInitA(&strbuf, 0);
ffStrbufDestroy(&strbuf);
2022-09-04 12:43:30 +02:00
//initA
ffStrbufInitA(&strbuf, 0);
2022-01-12 01:02:14 +01:00
if(strbuf.chars[0] != 0) //make sure chars[0] is accessable
testFailed(&strbuf, "strbuf.chars[0] != 0");
if(strbuf.allocated != 0)
testFailed(&strbuf, "strbuf.allocated != 0");
2022-01-12 01:02:14 +01:00
if(strbuf.length != 0)
testFailed(&strbuf, "strbuf.length != 0");
2022-01-12 01:02:14 +01:00
2022-09-04 12:43:30 +02:00
//appendS
ffStrbufAppendS(&strbuf, "12345");
if(strbuf.length != 5)
testFailed(&strbuf, "strbuf.length != 5");
if(strbuf.allocated < 6)
testFailed(&strbuf, "strbuf.allocated < 6");
if(ffStrbufCompS(&strbuf, "12345") != 0)
testFailed(&strbuf, "strbuf.data != \"12345\"");
//appendNS
ffStrbufAppendNS(&strbuf, 4, "67890");
2022-01-12 01:02:14 +01:00
if(strbuf.length != 9)
testFailed(&strbuf, "strbuf.length != 9");
if(strbuf.allocated < 10)
testFailed(&strbuf, "strbuf.allocated < 10");
if(ffStrbufCompS(&strbuf, "123456789") != 0)
2022-01-12 01:02:14 +01:00
testFailed(&strbuf, "strbuf.data != \"123456789\"");
//appendS long
ffStrbufAppendS(&strbuf, "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890");
if(strbuf.length != 109)
testFailed(&strbuf, "strbuf.length != 109");
if(strbuf.allocated < 110)
testFailed(&strbuf, "strbuf.allocated < 110");
if(strbuf.chars[strbuf.length] != 0)
testFailed(&strbuf, "strbuf.chars[strbuf.length] != 0");
strbuf.length = 9;
2022-09-04 12:43:30 +02:00
//startsWithS
2022-01-12 01:02:14 +01:00
if(!ffStrbufStartsWithS(&strbuf, "123"))
testFailed(&strbuf, "!ffStrbufStartsWithS(&strbuf, \"123\")");
2022-09-04 12:43:30 +02:00
//removeS
2022-01-12 01:02:14 +01:00
ffStrbufRemoveS(&strbuf, "78");
if(strbuf.length != 7)
testFailed(&strbuf, "strbuf.length != 7");
if(strcmp(strbuf.chars, "1234569") != 0)
testFailed(&strbuf, "strcmp(strbuf.chars, \"123469\") != 0");
2022-09-04 12:43:30 +02:00
//removeStrings
2022-01-12 01:02:14 +01:00
ffStrbufRemoveStrings(&strbuf, 3, "23", "45", "9");
if(strbuf.length != 2)
testFailed(&strbuf, "strbuf.length != 2");
if(strcmp(strbuf.chars, "16") != 0)
testFailed(&strbuf, "strbuf.chars != \"126\"");
2022-09-04 12:43:30 +02:00
//PrependS
ffStrbufPrependS(&strbuf, "123");
if(strbuf.length != 5)
testFailed(&strbuf, "strbuf.length != 5");
if(strcmp(strbuf.chars, "12316") != 0)
testFailed(&strbuf, "strbuf.chars != \"12316\"");
//Destroy
ffStrbufDestroy(&strbuf);
if(strbuf.allocated != 0)
testFailed(&strbuf, "strbuf.allocated != 0");
if(strbuf.length != 0)
testFailed(&strbuf, "strbuf.length != 0");
if(strbuf.chars != NULL)
testFailed(&strbuf, "strbuf.chars != NULL");
2022-09-04 12:43:30 +02:00
//Success
2022-01-12 01:02:14 +01:00
puts("\033[32mAll tests passed!"FASTFETCH_TEXT_MODIFIER_RESET);
}