mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-09-13 10:52:08 +02:00
81 lines
3.1 KiB
C
81 lines
3.1 KiB
C
|
|
#include "common/format.h"
|
||
|
|
#include "util/textModifier.h"
|
||
|
|
#include "fastfetch.h"
|
||
|
|
|
||
|
|
static void verify(const char* format, const char* arg, const char* expected, int lineNo)
|
||
|
|
{
|
||
|
|
FF_STRBUF_AUTO_DESTROY result = ffStrbufCreate();
|
||
|
|
FF_STRBUF_AUTO_DESTROY formatter = ffStrbufCreateStatic(format);
|
||
|
|
const FFformatarg arguments[] = {
|
||
|
|
{ .type = FF_FORMAT_ARG_TYPE_STRING, arg }
|
||
|
|
};
|
||
|
|
ffParseFormatString(&result, &formatter, 1, arguments);
|
||
|
|
if (!ffStrbufEqualS(&result, expected))
|
||
|
|
{
|
||
|
|
fprintf(stderr, FASTFETCH_TEXT_MODIFIER_ERROR "[%d] %s: expected \"%s\", got \"%s\"\n" FASTFETCH_TEXT_MODIFIER_RESET, lineNo, format, expected, result.chars);
|
||
|
|
exit(1);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
#define VERIFY(format, argument, expected) verify((format), (argument), (expected), __LINE__)
|
||
|
|
|
||
|
|
int main(void)
|
||
|
|
{
|
||
|
|
instance.config.display.pipe = true;
|
||
|
|
|
||
|
|
{
|
||
|
|
VERIFY("output({})", "12345 67890", "output(12345 67890)");
|
||
|
|
VERIFY("output({1})", "12345 67890", "output(12345 67890)");
|
||
|
|
VERIFY("output({})", "", "output()");
|
||
|
|
VERIFY("output({1})", "", "output()");
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
VERIFY("output({1:20})", "12345 67890", "output(12345 67890)");
|
||
|
|
VERIFY("output({1:11})", "12345 67890", "output(12345 67890)");
|
||
|
|
VERIFY("output({1:-11})", "12345 67890", "output(12345 67890)");
|
||
|
|
VERIFY("output({1:6})", "12345 67890", "output(12345)");
|
||
|
|
VERIFY("output({:6})", "12345 67890", "output(12345)");
|
||
|
|
VERIFY("output({:-6})", "12345 67890", "output(12345…)");
|
||
|
|
VERIFY("output({:0})", "12345 67890", "output()");
|
||
|
|
VERIFY("output({:})", "12345 67890", "output()");
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
VERIFY("output({1<20})", "12345 67890", "output(12345 67890 )");
|
||
|
|
VERIFY("output({1<-20})", "12345 67890", "output(12345 67890 )");
|
||
|
|
VERIFY("output({1<11})", "12345 67890", "output(12345 67890)");
|
||
|
|
VERIFY("output({1<-11})", "12345 67890", "output(12345 67890)");
|
||
|
|
VERIFY("output({1<6})", "12345 67890", "output(12345 )");
|
||
|
|
VERIFY("output({<6})", "12345 67890", "output(12345 )");
|
||
|
|
VERIFY("output({<-6})", "12345 67890", "output(12345…)");
|
||
|
|
VERIFY("output({<0})", "12345 67890", "output()");
|
||
|
|
VERIFY("output({<})", "12345 67890", "output()");
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
VERIFY("output({1>20})", "12345 67890", "output( 12345 67890)");
|
||
|
|
VERIFY("output({1>-20})", "12345 67890", "output( 12345 67890)");
|
||
|
|
VERIFY("output({1>11})", "12345 67890", "output(12345 67890)");
|
||
|
|
VERIFY("output({1>-11})", "12345 67890", "output(12345 67890)");
|
||
|
|
VERIFY("output({1>6})", "12345 67890", "output(12345 )");
|
||
|
|
VERIFY("output({>6})", "12345 67890", "output(12345 )");
|
||
|
|
VERIFY("output({>-6})", "12345 67890", "output(12345…)");
|
||
|
|
VERIFY("output({>0})", "12345 67890", "output()");
|
||
|
|
VERIFY("output({>})", "12345 67890", "output()");
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
VERIFY("output({1n>20})", "12345 67890", "output({1n>20})");
|
||
|
|
VERIFY("output({120})", "12345 67890", "output({120})");
|
||
|
|
VERIFY("output({1:11})", "", "output()");
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
VERIFY("output({1:20}{1<20}{1>20})", "12345 67890", "output(12345 6789012345 67890 12345 67890)");
|
||
|
|
}
|
||
|
|
|
||
|
|
//Success
|
||
|
|
puts("\033[32mAll tests passed!" FASTFETCH_TEXT_MODIFIER_RESET);
|
||
|
|
}
|