* Copyright (C) 1995-2007, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: tstccl.c,v 1.12 2007-01-03 08:42:16 adam Exp $
+ * $Id: tstccl.c,v 1.17 2007-04-27 09:48:28 adam Exp $
*/
/* CCL test */
#include <string.h>
-#include <yaz/ccl.h>
+#include <yaz/ccl_xml.h>
#include <yaz/test.h>
const char *query,
const char *result)
{
- CCL_parser parser = ccl_parser_create();
+ CCL_parser parser = ccl_parser_create(bibset);
int ret = 0;
if (parser && bibset)
{
- struct ccl_token *token_list;
struct ccl_rpn_node *rpn;
- parser->bibset = bibset;
-
- token_list = ccl_parser_tokenize(parser, query);
- rpn = ccl_parser_find(parser, token_list);
- ccl_token_del(token_list);
+ rpn = ccl_parser_find_str(parser, query);
if (rpn)
{
/* parse ok. check that result is there and match */
ccl_pquery(wrbuf, rpn);
/* check expect a result and that it matches */
- if (result && !strcmp(wrbuf_buf(wrbuf), result))
+ if (result && !strcmp(wrbuf_cstr(wrbuf), result))
ret = 1;
else
ret = 0;
ccl_rpn_delete(rpn);
- wrbuf_free(wrbuf, 1);
+ wrbuf_destroy(wrbuf);
}
else
{
"x r=o\n"
);
break;
+ case 3:
+#if YAZ_HAVE_XML2
+ if (1)
+ {
+ xmlDocPtr doc;
+ int r;
+ const char *addinfo = 0;
+ const char *xml_str =
+ "<cclmap>\n"
+ " <qual name=\"ti\">\n"
+ " <attr type=\"u\" value=\"4\"/>\n"
+ " <attr type=\"s\" value=\"pw\"/>\n"
+ " <attr type=\"t\" value=\"l,r\"/>\n"
+ " </qual>\n"
+ " <qual name=\"term\">\n"
+ " <attr type=\"1\" value=\"1016\"/>\n"
+ " <attr type=\"s\" value=\"al,pw\"/>\n"
+ " </qual>\n"
+ " <qual name=\"dc.title\">\n"
+ " <attr type=\"1\" value=\"/my/title\"/>\n"
+ " </qual>\n"
+ " <qual name=\"date\">\n"
+ " <attr type=\"r\" value=\"r\"/>\n"
+ " </qual>\n"
+ " <qual name=\"x\">\n"
+ " <attr type=\"r\" value=\"o\"/>\n"
+ " </qual>\n"
+ "</cclmap>\n";
+
+ doc = xmlParseMemory(xml_str, strlen(xml_str));
+ YAZ_CHECK(doc);
+
+ r = ccl_xml_config(bibset, xmlDocGetRootElement(doc), &addinfo);
+ YAZ_CHECK_EQ(r, 0);
+
+ xmlFreeDoc(doc);
+ }
+ break;
+#else
+ return;
+#endif
default:
YAZ_CHECK(0);
return;
int main(int argc, char **argv)
{
YAZ_CHECK_INIT(argc, argv);
+ YAZ_CHECK_LOG();
tst1(0);
tst1(1);
tst1(2);
+ tst1(3);
YAZ_CHECK_TERM;
}
/*