summaryrefslogtreecommitdiff
path: root/test/css21.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2008-11-30 22:19:08 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2008-11-30 22:19:08 +0000
commitb9fbffbd16d6c65b3210e409d295cb478ca0f6e8 (patch)
treea2433f1446af2cc1fb67763b069c01acde180159 /test/css21.c
parent44bcf7b471d096d142c29f7f218d4f8b9c3742f8 (diff)
downloadlibcss-b9fbffbd16d6c65b3210e409d295cb478ca0f6e8.tar.gz
libcss-b9fbffbd16d6c65b3210e409d295cb478ca0f6e8.tar.bz2
Modify to allow a configurable number of iterations for profiling.
svn path=/trunk/libcss/; revision=5856
Diffstat (limited to 'test/css21.c')
-rw-r--r--test/css21.c70
1 files changed, 43 insertions, 27 deletions
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);