From b9fbffbd16d6c65b3210e409d295cb478ca0f6e8 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sun, 30 Nov 2008 22:19:08 +0000 Subject: Modify to allow a configurable number of iterations for profiling. svn path=/trunk/libcss/; revision=5856 --- test/css21.c | 70 +++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 43 insertions(+), 27 deletions(-) (limited to 'test/css21.c') diff --git a/test/css21.c b/test/css21.c index 17e95b4..5961f4b 100644 --- a/test/css21.c +++ b/test/css21.c @@ -6,6 +6,12 @@ #include "testutils.h" +#define ITERATIONS (1) +#define DUMP_HASH (0) +#define DUMP_CSS (1) + +extern void parserutils_hash_dump(parserutils_hash *hash); + static void *myrealloc(void *ptr, size_t len, void *pw) { UNUSED(pw); @@ -30,45 +36,55 @@ int main(int argc, char **argv) /* Initialise library */ assert(css_initialise(argv[1], myrealloc, NULL) == CSS_OK); - assert(css_stylesheet_create(CSS_LEVEL_21, "UTF-8", argv[2], NULL, - CSS_ORIGIN_AUTHOR, CSS_MEDIA_ALL, NULL, NULL, - myrealloc, NULL, &sheet) == CSS_OK); + for (int count = 0; count < ITERATIONS; count++) { - fp = fopen(argv[2], "rb"); - if (fp == NULL) { - printf("Failed opening %s\n", argv[2]); - return 1; - } + assert(css_stylesheet_create(CSS_LEVEL_21, "UTF-8", argv[2], + NULL, CSS_ORIGIN_AUTHOR, CSS_MEDIA_ALL, NULL, + NULL, myrealloc, NULL, &sheet) == CSS_OK); - fseek(fp, 0, SEEK_END); - origlen = len = ftell(fp); - fseek(fp, 0, SEEK_SET); + fp = fopen(argv[2], "rb"); + if (fp == NULL) { + printf("Failed opening %s\n", argv[2]); + return 1; + } - while (len >= CHUNK_SIZE) { - fread(buf, 1, CHUNK_SIZE, fp); + fseek(fp, 0, SEEK_END); + origlen = len = ftell(fp); + fseek(fp, 0, SEEK_SET); - error = css_stylesheet_append_data(sheet, buf, CHUNK_SIZE); - assert(error == CSS_OK || error == CSS_NEEDDATA); + while (len >= CHUNK_SIZE) { + fread(buf, 1, CHUNK_SIZE, fp); - len -= CHUNK_SIZE; - } + error = css_stylesheet_append_data(sheet, buf, + CHUNK_SIZE); + assert(error == CSS_OK || error == CSS_NEEDDATA); - if (len > 0) { - fread(buf, 1, len, fp); + len -= CHUNK_SIZE; + } - error = css_stylesheet_append_data(sheet, buf, len); - assert(error == CSS_OK || error == CSS_NEEDDATA); + if (len > 0) { + fread(buf, 1, len, fp); - len = 0; - } + error = css_stylesheet_append_data(sheet, buf, len); + assert(error == CSS_OK || error == CSS_NEEDDATA); + + len = 0; + } - fclose(fp); + fclose(fp); - assert(css_stylesheet_data_done(sheet) == CSS_OK); + assert(css_stylesheet_data_done(sheet) == CSS_OK); - css_stylesheet_dump(sheet, stdout); +#if DUMP_HASH + parserutils_hash_dump(sheet->dictionary); +#endif - css_stylesheet_destroy(sheet); +#if DUMP_CSS + css_stylesheet_dump(sheet, stdout); +#endif + + css_stylesheet_destroy(sheet); + } assert(css_finalise(myrealloc, NULL) == CSS_OK); -- cgit v1.2.3