#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(); }