libscomp/test/input.c

46 lines
843 B
C

#include "greatest.h"
#include "../input.h"
#define s(x) {x, sizeof(x) - 1}
TEST one_pass(void) {
struct libscomm_input in;
char s[] = "Arg 1\tArg \r\v\t!\n";
char *p = s;
struct libscomm_line l;
libscomm_reset(&in);
ASSERT_EQ(libscomm_read(&in, &p, &l), LIBSCOMM_COMPLETE);
ASSERT_EQ(l.len, 3);
ASSERT_EQ(l.name, 0);
ASSERT_EQ(*p, 0);
ASSERT_EQ(p, &s[sizeof s - 1]);
ASSERT_STR_EQ(l.buf[0], "Arg 1");
ASSERT_STR_EQ(l.buf[1], "Arg \r\v");
ASSERT_STR_EQ(l.buf[2], "!");
PASS();
}
#if 0
TEST single_arg_too_large(void) {
struct libscomm_input in;
struct libscomm_inbuf b;
struct libscomm_line l;
char s[LIBSCOMM_MAXBUF + 12];
size_t i;
for (i = 0; i < sizeof s; i++)
s[i] = 'a';
}
#endif
GREATEST_MAIN_DEFS();
int main(int argc, char *argv[]) {
GREATEST_MAIN_BEGIN();
RUN_TEST(one_pass);
GREATEST_MAIN_END();
}