mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-07-29 11:41:22 +03:00
added entities testing to the Thread test make the test reasonable fix the
* test/threads/*: added entities testing to the Thread test * testThreads.c: make the test reasonable * DOCBparser.c: fix the DTD public and system ID * xmllint.c: added --sgml for SGML DocBook importing * Makefile.am: added Docbtests target Daniel
This commit is contained in:
@ -1,3 +1,11 @@
|
|||||||
|
Mon Oct 22 11:32:36 CEST 2001 Daniel Veillard <daniel@veillard.com>
|
||||||
|
|
||||||
|
* test/threads/*: added entities testing to the Thread test
|
||||||
|
* testThreads.c: make the test reasonable
|
||||||
|
* DOCBparser.c: fix the DTD public and system ID
|
||||||
|
* xmllint.c: added --sgml for SGML DocBook importing
|
||||||
|
* Makefile.am: added Docbtests target
|
||||||
|
|
||||||
Fri Oct 19 11:47:13 CEST 2001 Daniel Veillard <daniel@veillard.com>
|
Fri Oct 19 11:47:13 CEST 2001 Daniel Veillard <daniel@veillard.com>
|
||||||
|
|
||||||
* nanoftp.c: use only "anonymous@" string for anonymous passwds
|
* nanoftp.c: use only "anonymous@" string for anonymous passwds
|
||||||
|
26
DOCBparser.c
26
DOCBparser.c
@ -47,6 +47,15 @@
|
|||||||
#include <libxml/uri.h>
|
#include <libxml/uri.h>
|
||||||
#include <libxml/globals.h>
|
#include <libxml/globals.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* DocBook XML current versions
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define XML_DOCBOOK_XML_PUBLIC (const xmlChar *) \
|
||||||
|
"-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||||
|
#define XML_DOCBOOK_XML_SYSTEM (const xmlChar *) \
|
||||||
|
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Internal description of an SGML entity
|
* Internal description of an SGML entity
|
||||||
*/
|
*/
|
||||||
@ -3554,17 +3563,20 @@ docbParseDocTypeDecl(docbParserCtxtPtr ctxt) {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Create or update the document accordingly to the DOCTYPE
|
* Create or update the document accordingly to the DOCTYPE
|
||||||
|
* But use the predefined PUBLIC and SYSTEM ID of DocBook XML
|
||||||
*/
|
*/
|
||||||
if ((ctxt->sax != NULL) && (ctxt->sax->internalSubset != NULL) &&
|
if ((ctxt->sax != NULL) && (ctxt->sax->internalSubset != NULL) &&
|
||||||
(!ctxt->disableSAX))
|
(!ctxt->disableSAX))
|
||||||
ctxt->sax->internalSubset(ctxt->userData, name, ExternalID, URI);
|
ctxt->sax->internalSubset(ctxt->userData, name,
|
||||||
|
XML_DOCBOOK_XML_PUBLIC,
|
||||||
|
XML_DOCBOOK_XML_SYSTEM);
|
||||||
|
|
||||||
/*
|
if (RAW != '>') {
|
||||||
* Is there any internal subset declarations ?
|
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
|
||||||
* they are handled separately in docbParseInternalSubset()
|
ctxt->sax->error(ctxt->userData,
|
||||||
*/
|
"docbParseDocTypeDecl : internal subset not handled\n");
|
||||||
if (RAW != '[') {
|
} else {
|
||||||
return;
|
NEXT;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
23
Makefile.am
23
Makefile.am
@ -1,8 +1,5 @@
|
|||||||
## Process this file with automake to produce Makefile.in
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
# Dependancies are fucked in make distcheck could not find why :-(
|
|
||||||
AUTOMAKE_OPTIONS=no-dependencies
|
|
||||||
|
|
||||||
SUBDIRS = include . doc example
|
SUBDIRS = include . doc example
|
||||||
|
|
||||||
INCLUDES = -I@srcdir@/include -I$(top_builddir)/include @THREAD_CFLAGS@ @Z_CFLAGS@
|
INCLUDES = -I@srcdir@/include -I$(top_builddir)/include @THREAD_CFLAGS@ @Z_CFLAGS@
|
||||||
@ -226,6 +223,26 @@ XMLtests : xmllint
|
|||||||
rm result.$$name result2.$$name ; \
|
rm result.$$name result2.$$name ; \
|
||||||
fi ; fi ; done)
|
fi ; fi ; done)
|
||||||
|
|
||||||
|
Docbtests : xmllint
|
||||||
|
@(echo > .memdump)
|
||||||
|
@echo "##"
|
||||||
|
@echo "## SGML DocBook regression tests"
|
||||||
|
@echo "##"
|
||||||
|
@(for i in $(srcdir)/test/DocBook/*.sgm ; do \
|
||||||
|
name=`basename $$i .sgm`; \
|
||||||
|
if [ ! -d $$i ] ; then \
|
||||||
|
if [ ! -f $(srcdir)/result/DocBook/$$name.xml ] ; then \
|
||||||
|
echo New test file $$name ; \
|
||||||
|
$(top_builddir)/xmllint --sgml $$i > $(srcdir)/result/DocBook/$$name.xml ; \
|
||||||
|
$(top_builddir)/xmllint --valid --noout $(srcdir)/result/DocBook/$$name.xml ; \
|
||||||
|
else \
|
||||||
|
echo Testing $$name ; \
|
||||||
|
$(top_builddir)/xmllint --sgml $$i > result.$$name ; \
|
||||||
|
diff $(srcdir)/result/DocBook/$$name.xml result.$$name ; \
|
||||||
|
$(top_builddir)/xmllint --valid --noout result.$$name ; \
|
||||||
|
rm result.$$name ; \
|
||||||
|
fi ; fi ; done)
|
||||||
|
|
||||||
XMLenttests : xmllint
|
XMLenttests : xmllint
|
||||||
@(echo > .memdump)
|
@(echo > .memdump)
|
||||||
@echo "##"
|
@echo "##"
|
||||||
|
@ -1 +1 @@
|
|||||||
<!ELEMENT a EMPTY>
|
<!ELEMENT a (#PCDATA)>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE abc SYSTEM "http://example.org/abc.dtd">
|
<!DOCTYPE abc SYSTEM "http://example.org/abc.dtd">
|
||||||
<abc>
|
<abc>
|
||||||
<a/>
|
<a>Let's use predefined entites & < ></a>
|
||||||
<b/>
|
<b>Let's use a DTD defined entity &bent;</b>
|
||||||
<c/>
|
<c/>
|
||||||
</abc>
|
</abc>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE acb SYSTEM "http://example.org/acb.dtd">
|
<!DOCTYPE acb SYSTEM "http://example.org/acb.dtd">
|
||||||
<acb>
|
<acb>
|
||||||
<a/>
|
<a>Let's use predefined entites & < ></a>
|
||||||
<c/>
|
<c/>
|
||||||
<b/>
|
<b>Let's use a DTD defined entity &bent;</b>
|
||||||
</acb>
|
</acb>
|
||||||
|
|
||||||
|
@ -1 +1,2 @@
|
|||||||
<!ELEMENT b EMPTY>
|
<!ELEMENT b (#PCDATA)>
|
||||||
|
<!ENTITY bent "the b entity">
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE bac SYSTEM "http://example.org/bac.dtd">
|
<!DOCTYPE bac SYSTEM "http://example.org/bac.dtd">
|
||||||
<bac>
|
<bac>
|
||||||
<b/>
|
<b>Let's use a DTD defined entity &bent;</b>
|
||||||
<a/>
|
<a>Let's use predefined entites & < ></a>
|
||||||
<c/>
|
<c/>
|
||||||
</bac>
|
</bac>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE bca SYSTEM "http://example.org/bca.dtd">
|
<!DOCTYPE bca SYSTEM "http://example.org/bca.dtd">
|
||||||
<bca>
|
<bca>
|
||||||
<b/>
|
<b>Let's use a DTD defined entity &bent;</b>
|
||||||
<c/>
|
<c/>
|
||||||
<a/>
|
<a>Let's use predefined entites & < ></a>
|
||||||
</bca>
|
</bca>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE cab SYSTEM "http://example.org/cab.dtd">
|
<!DOCTYPE cab SYSTEM "http://example.org/cab.dtd">
|
||||||
<cab>
|
<cab>
|
||||||
<c/>
|
<c/>
|
||||||
<a/>
|
<a>Let's use predefined entites & < ></a>
|
||||||
<b/>
|
<b>Let's use a DTD defined entity &bent;</b>
|
||||||
</cab>
|
</cab>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE cba SYSTEM "http://example.org/cba.dtd">
|
<!DOCTYPE cba SYSTEM "http://example.org/cba.dtd">
|
||||||
<cba>
|
<cba>
|
||||||
<c/>
|
<c/>
|
||||||
<b/>
|
<b>Let's use a DTD defined entity &bent;</b>
|
||||||
<a/>
|
<a>Let's use predefined entites & < ></a>
|
||||||
</cba>
|
</cba>
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ main()
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
xmlInitParser();
|
xmlInitParser();
|
||||||
for (repeat = 0;repeat < 10000;repeat++) {
|
for (repeat = 0;repeat < 500;repeat++) {
|
||||||
xmlLoadCatalog(catalog);
|
xmlLoadCatalog(catalog);
|
||||||
|
|
||||||
for (i = 0; i < num_threads; i++) {
|
for (i = 0; i < num_threads; i++) {
|
||||||
|
47
xmllint.c
47
xmllint.c
@ -68,6 +68,9 @@
|
|||||||
#ifdef LIBXML_CATALOG_ENABLED
|
#ifdef LIBXML_CATALOG_ENABLED
|
||||||
#include <libxml/catalog.h>
|
#include <libxml/catalog.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef LIBXML_DOCB_ENABLED
|
||||||
|
#include <libxml/DOCBparser.h>
|
||||||
|
#endif
|
||||||
#include <libxml/globals.h>
|
#include <libxml/globals.h>
|
||||||
|
|
||||||
#ifdef LIBXML_DEBUG_ENABLED
|
#ifdef LIBXML_DEBUG_ENABLED
|
||||||
@ -86,6 +89,9 @@ static char * dtdvalid = NULL;
|
|||||||
static int repeat = 0;
|
static int repeat = 0;
|
||||||
static int insert = 0;
|
static int insert = 0;
|
||||||
static int compress = 0;
|
static int compress = 0;
|
||||||
|
#ifdef LIBXML_DOCB_ENABLED
|
||||||
|
static int sgml = 0;
|
||||||
|
#endif
|
||||||
static int html = 0;
|
static int html = 0;
|
||||||
static int htmlout = 0;
|
static int htmlout = 0;
|
||||||
static int push = 0;
|
static int push = 0;
|
||||||
@ -412,6 +418,38 @@ static void parseAndPrintFile(char *filename) {
|
|||||||
xmlDocSetRootElement(doc, n);
|
xmlDocSetRootElement(doc, n);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef LIBXML_DOCB_ENABLED
|
||||||
|
/*
|
||||||
|
* build an SGML tree from a string;
|
||||||
|
*/
|
||||||
|
else if ((sgml) && (push)) {
|
||||||
|
FILE *f;
|
||||||
|
|
||||||
|
f = fopen(filename, "r");
|
||||||
|
if (f != NULL) {
|
||||||
|
int res, size = 3;
|
||||||
|
char chars[4096];
|
||||||
|
docbParserCtxtPtr ctxt;
|
||||||
|
|
||||||
|
/* if (repeat) */
|
||||||
|
size = 4096;
|
||||||
|
res = fread(chars, 1, 4, f);
|
||||||
|
if (res > 0) {
|
||||||
|
ctxt = docbCreatePushParserCtxt(NULL, NULL,
|
||||||
|
chars, res, filename, 0);
|
||||||
|
while ((res = fread(chars, 1, size, f)) > 0) {
|
||||||
|
docbParseChunk(ctxt, chars, res, 0);
|
||||||
|
}
|
||||||
|
docbParseChunk(ctxt, chars, 0, 1);
|
||||||
|
doc = ctxt->myDoc;
|
||||||
|
docbFreeParserCtxt(ctxt);
|
||||||
|
}
|
||||||
|
fclose(f);
|
||||||
|
}
|
||||||
|
} else if (sgml) {
|
||||||
|
doc = docbParseFile(filename, NULL);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#ifdef LIBXML_HTML_ENABLED
|
#ifdef LIBXML_HTML_ENABLED
|
||||||
else if (html) {
|
else if (html) {
|
||||||
doc = htmlParseFile(filename, NULL);
|
doc = htmlParseFile(filename, NULL);
|
||||||
@ -789,6 +827,9 @@ static void usage(const char *name) {
|
|||||||
printf("\t--repeat : repeat 100 times, for timing or profiling\n");
|
printf("\t--repeat : repeat 100 times, for timing or profiling\n");
|
||||||
printf("\t--insert : ad-hoc test for valid insertions\n");
|
printf("\t--insert : ad-hoc test for valid insertions\n");
|
||||||
printf("\t--compress : turn on gzip compression of output\n");
|
printf("\t--compress : turn on gzip compression of output\n");
|
||||||
|
#ifdef LIBXML_DOCB_ENABLED
|
||||||
|
printf("\t--sgml : use the DocBook SGML parser\n");
|
||||||
|
#endif
|
||||||
#ifdef LIBXML_HTML_ENABLED
|
#ifdef LIBXML_HTML_ENABLED
|
||||||
printf("\t--html : use the HTML parser\n");
|
printf("\t--html : use the HTML parser\n");
|
||||||
#endif
|
#endif
|
||||||
@ -856,6 +897,12 @@ main(int argc, char **argv) {
|
|||||||
else if ((!strcmp(argv[i], "-htmlout")) ||
|
else if ((!strcmp(argv[i], "-htmlout")) ||
|
||||||
(!strcmp(argv[i], "--htmlout")))
|
(!strcmp(argv[i], "--htmlout")))
|
||||||
htmlout++;
|
htmlout++;
|
||||||
|
#ifdef LIBXML_DOCB_ENABLED
|
||||||
|
else if ((!strcmp(argv[i], "-sgml")) ||
|
||||||
|
(!strcmp(argv[i], "--sgml"))) {
|
||||||
|
sgml++;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#ifdef LIBXML_HTML_ENABLED
|
#ifdef LIBXML_HTML_ENABLED
|
||||||
else if ((!strcmp(argv[i], "-html")) ||
|
else if ((!strcmp(argv[i], "-html")) ||
|
||||||
(!strcmp(argv[i], "--html"))) {
|
(!strcmp(argv[i], "--html"))) {
|
||||||
|
Reference in New Issue
Block a user