X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Ftst_record_conv.c;h=3606db2f61378048c071ef9a32cfe0b08aaa4c1c;hb=c168cffc46e3b2b66e66e48f94f8e87b6566702b;hp=c6d9ac0f4af0c5df21247a94a9464bfaf1c12f44;hpb=0de95154d8512ee46d6b706fe019f8d1ffc18827;p=yaz-moved-to-github.git diff --git a/test/tst_record_conv.c b/test/tst_record_conv.c index c6d9ac0..3606db2 100644 --- a/test/tst_record_conv.c +++ b/test/tst_record_conv.c @@ -2,19 +2,21 @@ * Copyright (C) 2005-2006, Index Data ApS * See the file LICENSE for details. * - * $Id: tst_record_conv.c,v 1.5 2006-05-05 18:37:08 adam Exp $ + * $Id: tst_record_conv.c,v 1.10 2006-08-01 09:28:04 adam Exp $ * */ #include #include #include #include +#include +#include #if HAVE_CONFIG_H #include #endif -#if HAVE_XSLT +#if YAZ_HAVE_XML2 #include #include @@ -111,6 +113,7 @@ static void tst_configure() YAZ_CHECK(conv_configure_test("", "Bad element 'bad'." "Expected marc, xslt, ..", 0)); +#if YAZ_HAVE_XSLT YAZ_CHECK(conv_configure_test("" "" "", "Attribute 'inputformat' required", 0)); YAZ_CHECK(conv_configure_test("" + "" + "", + "Missing attribute 'stylesheet'", 0)); + YAZ_CHECK(conv_configure_test("" "" "" "", 0, 0)); +#else + YAZ_CHECK(conv_configure_test("" + "" + "", + "xslt unsupported." + " YAZ compiled without XSLT support", 0)); +#endif } static int conv_convert_test(yaz_record_conv_t p, @@ -143,7 +157,8 @@ static int conv_convert_test(yaz_record_conv_t p, else { WRBUF output_record = wrbuf_alloc(); - int r = yaz_record_conv_record(p, input_record, output_record); + int r = yaz_record_conv_record(p, input_record, strlen(input_record), + output_record); if (r) { if (output_expect_record) @@ -191,7 +206,7 @@ static int conv_convert_test(yaz_record_conv_t p, return ret; } -static void tst_convert() +static void tst_convert1() { yaz_record_conv_t p = 0; const char *marcxml_rec = @@ -274,14 +289,49 @@ static void tst_convert() yaz_record_conv_destroy(p); } +static void tst_convert2() +{ + yaz_record_conv_t p = 0; + const char *marcxml_rec = + "\n" + " 00080nam a22000498a 4500\n" + " 11224466 \n" + " \n" + " københavn\n" + " \n" + "\n"; + const char *iso2709_rec = + "\x30\x30\x30\x37\x37\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\x34\x30\x30\x30\x31\x33" + "\x1E\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20\x1E\x20\x20" + "\x1F\x61\x6b\xb2\x62\x65\x6e\x68\x61\x76\x6e\x1E\x1D"; + + YAZ_CHECK(conv_configure_test("" + "" + "", + 0, &p)); + YAZ_CHECK(conv_convert_test(p, marcxml_rec, iso2709_rec)); + yaz_record_conv_destroy(p); +} + #endif int main(int argc, char **argv) { YAZ_CHECK_INIT(argc, argv); -#if HAVE_XSLT + libxml2_error_to_yazlog(0 /* disable log */, 0); +#if YAZ_HAVE_XML2 tst_configure(); - tst_convert(); +#endif +#if YAZ_HAVE_XSLT + tst_convert1(); + tst_convert2(); #endif YAZ_CHECK_TERM; }