Author: jmb
Date: Sun Nov 30 16:19:08 2008
New Revision: 5856
URL:
http://source.netsurf-browser.org?rev=5856&view=rev
Log:
Modify to allow a configurable number of iterations for profiling.
Modified:
trunk/libcss/test/css21.c
Modified: trunk/libcss/test/css21.c
URL:
http://source.netsurf-browser.org/trunk/libcss/test/css21.c?rev=5856&...
==============================================================================
--- trunk/libcss/test/css21.c (original)
+++ trunk/libcss/test/css21.c Sun Nov 30 16:19:08 2008
@@ -5,6 +5,12 @@
#include "stylesheet.h"
#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)
{
@@ -30,45 +36,55 @@
/* 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);
+
+ fp = fopen(argv[2], "rb");
+ if (fp == NULL) {
+ printf("Failed opening %s\n", argv[2]);
+ return 1;
+ }
+
+ fseek(fp, 0, SEEK_END);
+ origlen = len = ftell(fp);
+ fseek(fp, 0, SEEK_SET);
+
+ while (len >= CHUNK_SIZE) {
+ fread(buf, 1, CHUNK_SIZE, fp);
+
+ error = css_stylesheet_append_data(sheet, buf,
+ CHUNK_SIZE);
+ assert(error == CSS_OK || error == CSS_NEEDDATA);
+
+ len -= CHUNK_SIZE;
+ }
+
+ if (len > 0) {
+ fread(buf, 1, len, fp);
+
+ error = css_stylesheet_append_data(sheet, buf, len);
+ assert(error == CSS_OK || error == CSS_NEEDDATA);
+
+ len = 0;
+ }
+
+ fclose(fp);
+
+ assert(css_stylesheet_data_done(sheet) == CSS_OK);
+
+#if DUMP_HASH
+ parserutils_hash_dump(sheet->dictionary);
+#endif
+
+#if DUMP_CSS
+ css_stylesheet_dump(sheet, stdout);
+#endif
+
+ css_stylesheet_destroy(sheet);
}
-
- fseek(fp, 0, SEEK_END);
- origlen = len = ftell(fp);
- fseek(fp, 0, SEEK_SET);
-
- while (len >= CHUNK_SIZE) {
- fread(buf, 1, CHUNK_SIZE, fp);
-
- error = css_stylesheet_append_data(sheet, buf, CHUNK_SIZE);
- assert(error == CSS_OK || error == CSS_NEEDDATA);
-
- len -= CHUNK_SIZE;
- }
-
- if (len > 0) {
- fread(buf, 1, len, fp);
-
- error = css_stylesheet_append_data(sheet, buf, len);
- assert(error == CSS_OK || error == CSS_NEEDDATA);
-
- len = 0;
- }
-
- fclose(fp);
-
- assert(css_stylesheet_data_done(sheet) == CSS_OK);
-
- css_stylesheet_dump(sheet, stdout);
-
- css_stylesheet_destroy(sheet);
assert(css_finalise(myrealloc, NULL) == CSS_OK);