diff options
Diffstat (limited to 'test/tree.c')
-rw-r--r-- | test/tree.c | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/test/tree.c b/test/tree.c index 9a5bf8c..8a5a5b1 100644 --- a/test/tree.c +++ b/test/tree.c @@ -117,26 +117,20 @@ static int run_test(int argc, char **argv, unsigned int CHUNK_SIZE) origlen = len = ftell(fp); fseek(fp, 0, SEEK_SET); - while (len >= CHUNK_SIZE) { - fread(buf, 1, CHUNK_SIZE, fp); - - assert(hubbub_parser_parse_chunk(parser, - buf, CHUNK_SIZE) == HUBBUB_OK); - - len -= CHUNK_SIZE; - } - - if (len > 0) { - fread(buf, 1, len, fp); - + while (len > 0) { + ssize_t bytes_read = fread(buf, 1, CHUNK_SIZE, fp); + + if (bytes_read < 1) + break; + assert(hubbub_parser_parse_chunk(parser, - buf, len) == HUBBUB_OK); + buf, bytes_read) == HUBBUB_OK); - len = 0; - - assert(hubbub_parser_completed(parser) == HUBBUB_OK); + len -= bytes_read; } - + + assert(len == 0); + fclose(fp); charset = hubbub_parser_read_charset(parser, &cssource); |