42sh/tests/unit/utils/utils_tests.c

106 lines
2.6 KiB
C
Raw Permalink Normal View History

#include <criterion/criterion.h>
#include <criterion/new/assert.h>
#include <stddef.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include "../../../src/utils/string_utils/string_utils.h"
TestSuite(string_utils);
Test(string_utils, skipblank_basic)
{
char input[] = " Hello World";
char expected_str[] = "Hello World";
char *trimmed = trim_blank_left(input);
ssize_t offset = trimmed - input;
ssize_t expected = 2;
cr_expect(eq(str, trimmed, expected_str));
cr_expect(offset == expected);
}
Test(string_utils, skipblank_noblank)
{
char input[] = "Hello World";
char expected_str[] = "Hello World";
char *trimmed = trim_blank_left(input);
ssize_t offset = trimmed - input;
ssize_t expected = 0;
cr_expect(eq(str, trimmed, expected_str));
cr_expect(offset == expected);
}
Test(string_utils, skipblank_tab)
{
char input[] = "\tHello World";
char expected_str[] = "Hello World";
char *trimmed = trim_blank_left(input);
ssize_t offset = trimmed - input;
ssize_t expected = 1;
cr_expect(eq(str, trimmed, expected_str));
cr_expect(offset == expected);
}
Test(string_utils, skipblank_space_tab)
{
char input[] = " \tHello World";
char expected_str[] = "Hello World";
char *trimmed = trim_blank_left(input);
ssize_t offset = trimmed - input;
ssize_t expected = 2;
cr_expect(eq(str, trimmed, expected_str));
cr_expect(offset == expected);
}
Test(string_utils, skipblank_2tab_1space)
{
char input[] = "\t \tHello World";
char expected_str[] = "Hello World";
char *trimmed = trim_blank_left(input);
ssize_t offset = trimmed - input;
ssize_t expected = 3;
cr_expect(eq(str, trimmed, expected_str));
cr_expect(offset == expected);
}
Test(string_utils, skipblank_a_lot)
{
char input[] = "\t \t \tHello World";
char expected_str[] = "Hello World";
char *trimmed = trim_blank_left(input);
ssize_t offset = trimmed - input;
ssize_t expected = 8;
cr_expect(eq(str, trimmed, expected_str));
cr_expect(offset == expected);
}
Test(string_utils, skipblank_newline)
{
char input[] = "\nHello World";
char expected_str[] = "\nHello World";
char *trimmed = trim_blank_left(input);
ssize_t offset = trimmed - input;
ssize_t expected = 0;
cr_expect(eq(str, trimmed, expected_str));
cr_expect(offset == expected);
}
Test(string_utils, skipblank_nul)
{
char *input = NULL;
char *trimmed = trim_blank_left(input);
ssize_t offset = trimmed - input;
ssize_t expected = 0;
cr_expect(input == NULL);
cr_expect(offset == expected);
}