summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2008-11-27 12:14:07 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2008-11-27 12:14:07 +0000
commit7adaf92154adc7f3455769ca197f906e3d4cddaa (patch)
treeae172720c8e44a35b87b5506602768db19ec538f /test
parent79c0f3bc5c1581a6f2f6568a50e3b4f64b452541 (diff)
downloadlibcss-7adaf92154adc7f3455769ca197f906e3d4cddaa.tar.gz
libcss-7adaf92154adc7f3455769ca197f906e3d4cddaa.tar.bz2
css_string is now the same as a parserutils_dict_entry. This allows us to use dict entries directly as strings.
iChange the way in which selectors are represented. This significantly reduces memory requirements -- reducing the approximate usage count (excludes the string dictionary, which is about 360k) of allzengarden.css from 4,535,400 bytes to 2,414,312 bytes on a 64bit platform. The string dictionary is now created and owned by the stylesheet object. The parser is just given access to this so that it can store strings in it. svn path=/trunk/libcss/; revision=5809
Diffstat (limited to 'test')
-rw-r--r--test/lex-auto.c8
-rw-r--r--test/lex.c30
-rw-r--r--test/number.c2
-rw-r--r--test/parse.c16
4 files changed, 31 insertions, 25 deletions
diff --git a/test/lex-auto.c b/test/lex-auto.c
index d336480..10f097c 100644
--- a/test/lex-auto.c
+++ b/test/lex-auto.c
@@ -41,11 +41,11 @@ static css_token_type string_to_type(const char *data, size_t len);
static void run_test(const uint8_t *data, size_t len,
exp_entry *exp, size_t explen);
-static void *myrealloc(void *ptr, size_t len, void *pw)
+static void *myrealloc(void *data, size_t len, void *pw)
{
UNUSED(pw);
- return realloc(ptr, len);
+ return realloc(data, len);
}
int main(int argc, char **argv)
@@ -302,11 +302,11 @@ void run_test(const uint8_t *data, size_t len, exp_entry *exp, size_t explen)
assert(0 && "Text lengths differ");
}
- if (strncmp((char *) tok->data.ptr, exp[e].text,
+ if (strncmp((char *) tok->data.data, exp[e].text,
tok->data.len) != 0) {
printf("%d: Got data '%.*s', Expected '%.*s'\n",
testnum,
- (int) tok->data.len, tok->data.ptr,
+ (int) tok->data.len, tok->data.data,
(int) exp[e].textLen, exp[e].text);
assert(0 && "Text differs");
}
diff --git a/test/lex.c b/test/lex.c
index 86c1c01..a95ba08 100644
--- a/test/lex.c
+++ b/test/lex.c
@@ -13,11 +13,11 @@
#include "testutils.h"
-static void *myrealloc(void *ptr, size_t len, void *pw)
+static void *myrealloc(void *data, size_t len, void *pw)
{
UNUSED(pw);
- return realloc(ptr, len);
+ return realloc(data, len);
}
static void printToken(const css_token *token)
@@ -30,42 +30,42 @@ static void printToken(const css_token *token)
switch (token->type) {
case CSS_TOKEN_IDENT:
printf("IDENT(%.*s)",
- (int) token->data.len, token->data.ptr);
+ (int) token->data.len, token->data.data);
break;
case CSS_TOKEN_ATKEYWORD:
printf("ATKEYWORD(%.*s)",
- (int) token->data.len, token->data.ptr);
+ (int) token->data.len, token->data.data);
break;
case CSS_TOKEN_STRING:
printf("STRING(%.*s)",
- (int) token->data.len, token->data.ptr);
+ (int) token->data.len, token->data.data);
break;
case CSS_TOKEN_INVALID_STRING:
printf("INVALID(%.*s)",
- (int) token->data.len, token->data.ptr);
+ (int) token->data.len, token->data.data);
break;
case CSS_TOKEN_HASH:
printf("HASH(%.*s)",
- (int) token->data.len, token->data.ptr);
+ (int) token->data.len, token->data.data);
break;
case CSS_TOKEN_NUMBER:
printf("NUMBER(%.*s)",
- (int) token->data.len, token->data.ptr);
+ (int) token->data.len, token->data.data);
break;
case CSS_TOKEN_PERCENTAGE:
printf("PERCENTAGE(%.*s)",
- (int) token->data.len, token->data.ptr);
+ (int) token->data.len, token->data.data);
break;
case CSS_TOKEN_DIMENSION:
printf("DIMENSION(%.*s)",
- (int) token->data.len, token->data.ptr);
+ (int) token->data.len, token->data.data);
break;
case CSS_TOKEN_URI:
- printf("URI(%.*s)", (int) token->data.len, token->data.ptr);
+ printf("URI(%.*s)", (int) token->data.len, token->data.data);
break;
case CSS_TOKEN_UNICODE_RANGE:
printf("UNICODE-RANGE(%.*s)",
- (int) token->data.len, token->data.ptr);
+ (int) token->data.len, token->data.data);
break;
case CSS_TOKEN_CDO:
printf("CDO");
@@ -77,11 +77,11 @@ static void printToken(const css_token *token)
printf("S");
break;
case CSS_TOKEN_COMMENT:
- printf("COMMENT(%.*s)", (int) token->data.len, token->data.ptr);
+ printf("COMMENT(%.*s)", (int) token->data.len, token->data.data);
break;
case CSS_TOKEN_FUNCTION:
printf("FUNCTION(%.*s)",
- (int) token->data.len, token->data.ptr);
+ (int) token->data.len, token->data.data);
break;
case CSS_TOKEN_INCLUDES:
printf("INCLUDES");
@@ -99,7 +99,7 @@ static void printToken(const css_token *token)
printf("SUBSTRINGMATCH");
break;
case CSS_TOKEN_CHAR:
- printf("CHAR(%.*s)", (int) token->data.len, token->data.ptr);
+ printf("CHAR(%.*s)", (int) token->data.len, token->data.data);
break;
case CSS_TOKEN_EOF:
printf("EOF");
diff --git a/test/number.c b/test/number.c
index 7e793a2..8ef839e 100644
--- a/test/number.c
+++ b/test/number.c
@@ -107,7 +107,7 @@ bool handle_line(const char *data, size_t datalen, void *pw)
void run_test(const uint8_t *data, size_t len, const char *exp, size_t explen)
{
- css_string in = { (uint8_t *) data, len };
+ css_string in = { len, (uint8_t *) data };
size_t consumed;
fixed result;
char buf[256];
diff --git a/test/parse.c b/test/parse.c
index 4ff9a6e..33dfe5f 100644
--- a/test/parse.c
+++ b/test/parse.c
@@ -24,11 +24,11 @@ static const char *event_names[] = {
"DECLARATION"
};
-static void *myrealloc(void *ptr, size_t len, void *pw)
+static void *myrealloc(void *data, size_t len, void *pw)
{
UNUSED(pw);
- return realloc(ptr, len);
+ return realloc(data, len);
}
static css_error event_handler(css_parser_event type,
@@ -58,8 +58,8 @@ static css_error event_handler(css_parser_event type,
printf("\n %d", token->type);
- if (token->data.ptr != NULL)
- printf(" %.*s", (int) token->data.len, token->data.ptr);
+ if (token->data.data != NULL)
+ printf(" %.*s", (int) token->data.len, token->data.data);
} while (token != NULL);
printf("\n");
@@ -71,6 +71,7 @@ static css_error event_handler(css_parser_event type,
int main(int argc, char **argv)
{
css_parser_optparams params;
+ parserutils_dict *dict;
css_parser *parser;
FILE *fp;
size_t len, origlen;
@@ -86,7 +87,10 @@ int main(int argc, char **argv)
/* Initialise library */
assert(css_initialise(argv[1], myrealloc, NULL) == CSS_OK);
- assert(css_parser_create("UTF-8", CSS_CHARSET_DICTATED,
+ assert(parserutils_dict_create(myrealloc, NULL, &dict) ==
+ PARSERUTILS_OK);
+
+ assert(css_parser_create("UTF-8", CSS_CHARSET_DICTATED, dict,
myrealloc, NULL, &parser) == CSS_OK);
params.event_handler.handler = event_handler;
@@ -128,6 +132,8 @@ int main(int argc, char **argv)
css_parser_destroy(parser);
+ parserutils_dict_destroy(dict);
+
assert(css_finalise(myrealloc, NULL) == CSS_OK);
printf("PASS\n");