diff options
author | Daniel Silverstone <dsilvers@netsurf-browser.org> | 2009-02-14 22:55:32 +0000 |
---|---|---|
committer | Daniel Silverstone <dsilvers@netsurf-browser.org> | 2009-02-14 22:55:32 +0000 |
commit | f1f3155ef6f28fb8595920e5423336b39bba4ed0 (patch) | |
tree | f7016ea23c888285ac255d06a42a7205ecca48fe /test/parse-auto.c | |
parent | d0d70a21234ce34ab606c403cdb205897ace0cbb (diff) | |
download | libcss-f1f3155ef6f28fb8595920e5423336b39bba4ed0.tar.gz |
Port libcss to libwapcaplet.
It passes the tests, perhaps we need more of them.
Lifetimes of lwc_string objects really need attention before we can consider
this finished.
svn path=/trunk/libcss/; revision=6517
Diffstat (limited to 'test/parse-auto.c')
-rw-r--r-- | test/parse-auto.c | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/test/parse-auto.c b/test/parse-auto.c index 4c42359..5ed0f55 100644 --- a/test/parse-auto.c +++ b/test/parse-auto.c @@ -59,7 +59,7 @@ static void validate_rule_import(css_rule_import *s, exp_entry *e, static void dump_selector_list(css_selector *list, char **ptr); static void dump_selector(css_selector *selector, char **ptr); static void dump_selector_detail(css_selector_detail *detail, char **ptr); -static void dump_string(const parserutils_hash_entry *string, char **ptr); +static void dump_string(lwc_string *string, char **ptr); static void *myrealloc(void *data, size_t len, void *pw) { @@ -306,9 +306,13 @@ void run_test(const uint8_t *data, size_t len, exp_entry *exp, size_t explen) css_error error; size_t e; static int testnum; - + lwc_context *ctx; + + assert(lwc_create_context(myrealloc, NULL, &ctx) == lwc_error_ok); + lwc_context_ref(ctx); + assert(css_stylesheet_create(CSS_LEVEL_21, "UTF-8", "foo", NULL, - CSS_ORIGIN_AUTHOR, CSS_MEDIA_ALL, + CSS_ORIGIN_AUTHOR, CSS_MEDIA_ALL, ctx, myrealloc, NULL, &sheet) == CSS_OK); error = css_stylesheet_append_data(sheet, data, len); @@ -321,7 +325,7 @@ void run_test(const uint8_t *data, size_t len, exp_entry *exp, size_t explen) assert(error == CSS_OK || error == CSS_IMPORTS_PENDING); while (error == CSS_IMPORTS_PENDING) { - css_string url; + lwc_string *url; uint64_t media; error = css_stylesheet_next_pending_import(sheet, @@ -330,14 +334,14 @@ void run_test(const uint8_t *data, size_t len, exp_entry *exp, size_t explen) if (error == CSS_OK) { css_stylesheet *import; - char buf[url.len + 1]; + char buf[lwc_string_length(url) + 1]; - memcpy(buf, url.data, url.len); - buf[url.len] = '\0'; + memcpy(buf, lwc_string_data(url), lwc_string_length(url)); + buf[lwc_string_length(url)] = '\0'; assert(css_stylesheet_create(CSS_LEVEL_21, "UTF-8", buf, NULL, CSS_ORIGIN_AUTHOR, - media, myrealloc, NULL, &import) == + media, ctx, myrealloc, NULL, &import) == CSS_OK); assert(css_stylesheet_register_import(sheet, @@ -388,6 +392,7 @@ void run_test(const uint8_t *data, size_t len, exp_entry *exp, size_t explen) css_stylesheet_destroy(sheet); printf("Test %d: PASS\n", testnum); + lwc_context_unref(ctx); } void validate_rule_selector(css_rule_selector *s, exp_entry *e, int testnum) @@ -438,18 +443,18 @@ void validate_rule_selector(css_rule_selector *s, exp_entry *e, int testnum) } if (j != e->stused) { - const parserutils_hash_entry **p = + lwc_string **p = (void *) ((uint8_t *) s->style->bytecode + i); - if ((*p)->len != + if (lwc_string_length(*p) != strlen(e->stringtab[j].string) || - memcmp((*p)->data, + memcmp(lwc_string_data(*p), e->stringtab[j].string, - (*p)->len) != 0) { + lwc_string_length(*p)) != 0) { printf("%d: Got string '%.*s'. Expected '%s'\n", - testnum, (int) (*p)->len, - (char *) (*p)->data, + testnum, (int) lwc_string_length(*p), + lwc_string_data(*p), e->stringtab[j].string); assert(0 && "Strings differ"); } @@ -488,10 +493,10 @@ void validate_rule_charset(css_rule_charset *s, exp_entry *e, int testnum) void validate_rule_import(css_rule_import *s, exp_entry *e, int testnum) { - if (strncmp((const char *) s->url->data, e->name, - (int) s->url->len) != 0) { + if (strncmp(lwc_string_data(s->url), e->name, + lwc_string_length(s->url)) != 0) { printf("%d: Got URL '%.*s'. Expected '%s'\n", - testnum, (int) s->url->len, (const char *) s->url->data, + testnum, (int) lwc_string_length(s->url), lwc_string_data(s->url), e->name); assert(0 && "Mismatched URLs"); } @@ -542,11 +547,11 @@ void dump_selector_detail(css_selector_detail *detail, char **ptr) { switch (detail->type) { case CSS_SELECTOR_ELEMENT: - if (detail->name->len == 1 && detail->name->data[0] == '*' && + if (lwc_string_length(detail->name) == 1 && lwc_string_data(detail->name)[0] == '*' && detail->next == 0) { dump_string(detail->name, ptr); - } else if (detail->name->len != 1 || - detail->name->data[0] != '*') { + } else if (lwc_string_length(detail->name) != 1 || + lwc_string_data(detail->name)[0] != '*') { dump_string(detail->name, ptr); } break; @@ -621,8 +626,8 @@ void dump_selector_detail(css_selector_detail *detail, char **ptr) } } -void dump_string(const parserutils_hash_entry *string, char **ptr) +void dump_string(lwc_string *string, char **ptr) { - *ptr += sprintf(*ptr, "%.*s", (int) string->len, string->data); + *ptr += sprintf(*ptr, "%.*s", (int) lwc_string_length(string), lwc_string_data(string)); } |