- struct ccl_token *token_list;
- struct ccl_rpn_node *rpn;
-
- token_list = ccl_parser_tokenize(parser, query_str[i].query);
- 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");
- (*number_of_errors)++;
- }
- 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);
- (*number_of_errors)++;
- }
- ccl_rpn_delete(rpn);
- wrbuf_free(wrbuf, 1);
- }
- else if (query_str[i].result)
- {
- printf ("Failed %s\n", query_str[i].query);
- printf (" got failure\n");
- printf (" expected:%s:\n", query_str[i].result);
- (*number_of_errors)++;
- }
- }
+ struct ccl_token *token_list;
+ struct ccl_rpn_node *rpn;
+
+ token_list = ccl_parser_tokenize(parser, query_str[i].query);
+ rpn = ccl_parser_find(parser, token_list);
+ ccl_token_del (token_list);
+ if (rpn)
+ {
+ /* parse ok. check that result is there and match */
+ WRBUF wrbuf = wrbuf_alloc();
+ ccl_pquery(wrbuf, rpn);
+
+ /* check expect a result and that it matches */
+ YAZ_CHECK(query_str[i].result);
+ if (query_str[i].result)
+ {
+ YAZ_CHECK(!strcmp(wrbuf_buf(wrbuf), query_str[i].result));
+ }
+ ccl_rpn_delete(rpn);
+ wrbuf_free(wrbuf, 1);
+ }
+ else
+ {
+ /* parse failed. So we expect no result either */
+ YAZ_CHECK(!query_str[i].result);
+ }
+ }