We need this, I think
[people/xl0/gpxe.git] / src / tests / linebuf_test.c
index 9ddbb75..8ba88c5 100644 (file)
@@ -1,12 +1,12 @@
 #include <stdint.h>
 #include <string.h>
-#include <vsprintf.h>
+#include <stdio.h>
 #include <gpxe/linebuf.h>
 
 static const char data1[] = 
 "Hello world\r\n"
-"This is a particularly mean set of lines\n"
-"with a mixture of terminators\r\r\n"
+"This is a reasonably nice set of lines\n"
+"with not many different terminators\r\n\r\n"
 "There should be exactly one blank line above\n"
 "and this line should never appear at all since it has no terminator";
 
@@ -14,13 +14,18 @@ void linebuf_test ( void ) {
        struct line_buffer linebuf;
        const char *data = data1;
        size_t len = ( sizeof ( data1 ) - 1 /* be mean; strip the NUL */ );
-       size_t buffered;
+       char *line;
+       int rc;
 
        memset ( &linebuf, 0, sizeof ( linebuf ) );
-       while ( ( buffered = line_buffer ( &linebuf, data, len ) ) != len ) {
-               printf ( "\"%s\"\n", buffered_line ( &linebuf ) );
-               data += buffered;
-               len -= buffered;
+       while ( len ) {
+               if ( ( rc = line_buffer ( &linebuf, &data, &len ) ) != 0 ) {
+                       printf ( "line_buffer() failed: %s\n",
+                                strerror ( rc ) );
+                       return;
+               }
+               if ( ( line = buffered_line ( &linebuf ) ) )
+                       printf ( "\"%s\"\n", line );
        }
 
        empty_line_buffer ( &linebuf );