X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=test%2Ftest_record_conv.c;h=fa65224a52801a4849eb49b37b7708acb3be1e5f;hp=9978fda19feab913a6138f7bdfd25e4a2f2bcd49;hb=527dee673a04d80bd3002e4d7db7e754bb3b2eca;hpb=8e4e5fd8b258f7e3db8a5356cfc8ccddddebd150 diff --git a/test/test_record_conv.c b/test/test_record_conv.c index 9978fda..fa65224 100644 --- a/test/test_record_conv.c +++ b/test/test_record_conv.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2011 Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ #if HAVE_CONFIG_H @@ -11,12 +11,18 @@ #include #include #include - +#include +#include +#include #if YAZ_HAVE_XML2 #include #include +#if YAZ_HAVE_XSLT +#include +#endif + yaz_record_conv_t conv_configure(const char *xmlstring, WRBUF w) { xmlDocPtr doc = xmlParseMemory(xmlstring, strlen(xmlstring)); @@ -51,7 +57,7 @@ yaz_record_conv_t conv_configure(const char *xmlstring, WRBUF w) int r = yaz_record_conv_configure(p, ptr); - + if (r) { wrbuf_puts(w, yaz_record_conv_get_error(p)); @@ -61,7 +67,7 @@ yaz_record_conv_t conv_configure(const char *xmlstring, WRBUF w) } xmlFreeDoc(doc); return p; - } + } } int conv_configure_test(const char *xmlstring, const char *expect_error, @@ -144,7 +150,7 @@ static void tst_configure(void) "", "xslt unsupported." " YAZ compiled without XSLT support", 0)); -#endif +#endif } static int conv_convert_test(yaz_record_conv_t p, @@ -181,7 +187,7 @@ static int conv_convert_test(yaz_record_conv_t p, else if (strcmp(output_expect_record, wrbuf_cstr(output_record))) { ret = 0; - printf("got-output_record len=%ld: %s\n", + printf("got-output_record len=%ld: %s\n", (long) wrbuf_len(output_record), wrbuf_cstr(output_record)); printf("output_expect_record len=%ld %s\n", @@ -240,6 +246,21 @@ static void tst_convert1(void) "\x1E\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20\x1E\x20\x20" "\x1F\x61\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20\x1E\x1D"; + const char *solrmarc_rec = + "\x30\x30\x30\x38\x30\x6E\x61\x6D\x20\x61\x32\x32\x30\x30\x30\x34" + "\x39\x38\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30" + "\x30\x30\x30\x30\x30\x31\x30\x30\x30\x31\x37\x30\x30\x30\x31\x33" + "#30;\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20#30;\x20\x20" + "#31;\x61\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20#30;#29;"; + const char *raw_rec = /* raw is xml-string of marcxml_rec */ + "<record xmlns=\"http://www.loc.gov/MARC21/slim\">\n" + " <leader>00080nam a22000498a 4500</leader>\n" + " <controlfield tag=\"001\"> 11224466 </controlfield>\n" + " <datafield tag=\"010\" ind1=\" \" ind2=\" \">\n" + " <subfield code=\"a\"> 11224466 </subfield>\n" + " </datafield>\n" + "</record>\n\n"; + YAZ_CHECK(conv_configure_test("" "" + "" + "" + "", + 0, &p)); + YAZ_CHECK(conv_convert_test(p, solrmarc_rec, marcxml_rec)); + yaz_record_conv_destroy(p); YAZ_CHECK(conv_configure_test("" "" @@ -304,6 +337,13 @@ static void tst_convert1(void) 0, &p)); YAZ_CHECK(conv_convert_test(p, marcxml_rec, marcxml_rec)); yaz_record_conv_destroy(p); + + YAZ_CHECK(conv_configure_test("" + "