X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=ccl%2Ftstccl.c;h=6ae30a43503dfcfd176dc28896ae1de42a2c728b;hb=cf273cb8a7f73124935713928cd5df5b537f8b9c;hp=e46cad255fb58e9124188b3f5e203ea9bc07c5e9;hpb=79135288365437a3b1ee89ba36059dcec9f52a70;p=yaz-moved-to-github.git diff --git a/ccl/tstccl.c b/ccl/tstccl.c index e46cad2..6ae30a4 100644 --- a/ccl/tstccl.c +++ b/ccl/tstccl.c @@ -2,19 +2,27 @@ * Copyright (c) 2002-2003, Index Data * See the file LICENSE for details. * - * $Id: tstccl.c,v 1.1 2003-06-23 10:22:21 adam Exp $ + * $Id: tstccl.c,v 1.2 2003-06-24 23:03:04 adam Exp $ */ /* CCL test */ #include -static char *query_str[] = { - "x1", - "x1 and x2", - "ti=x3", - "dc.title=x4", - 0 +struct ccl_tst { + char *query; + char *result; +}; + +static struct ccl_tst query_str[] = { + { "x1", "@attr 4=2 @attr 1=1016 x1 "}, + { "(((((x1)))))", "@attr 4=2 @attr 1=1016 x1 "}, + {"x1 and x2", "@and @attr 4=2 @attr 1=1016 x1 @attr 4=2 @attr 1=1016 x2 "}, + { "ti=x3", "@attr 4=2 @attr 1=4 x3 "}, + { "dc.title=x4", "@attr 1=/my/title x4 "}, + { "x1 and", 0}, + { "tix=x5", 0}, + {0, 0} }; void tst1(void) @@ -29,20 +37,40 @@ void tst1(void) parser->bibset = bibset; - for (i = 0; query_str[i]; i++) + for (i = 0; query_str[i].query; i++) { struct ccl_token *token_list = - ccl_parser_tokenize(parser, query_str[i]); + ccl_parser_tokenize(parser, query_str[i].query); struct ccl_rpn_node *rpn = ccl_parser_find(parser, token_list); ccl_token_del (token_list); if (rpn) { + WRBUF wrbuf = wrbuf_alloc(); + ccl_pquery(wrbuf, rpn); + + if (!query_str[i].result) + { + printf ("Failed %s\n", query_str[i].query); + printf (" got:%s:\n", wrbuf_buf(wrbuf)); + printf (" expected failure\n"); + exit(3); + } + else if (strcmp(wrbuf_buf(wrbuf), query_str[i].result)) + { + printf ("Failed %s\n", query_str[i].query); + printf (" got:%s:\n", wrbuf_buf(wrbuf)); + printf (" expected:%s:\n", query_str[i].result); + exit(2); + } ccl_rpn_delete(rpn); + wrbuf_free(wrbuf, 1); } - else + else if (query_str[i].result) { - printf ("failed %s\n", query_str[i]); - exit(1+i); + printf ("Failed %s\n", query_str[i].query); + printf (" got failure\n"); + printf (" expected:%s:\n", query_str[i].result); + exit(4); } } ccl_parser_destroy (parser);