Makefile.am 55 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260
  1. ## Process this file with automake to produce Makefile.in
  2. SUBDIRS = include . doc example xstc @PYTHON_SUBDIR@
  3. DIST_SUBDIRS = include . doc example python xstc
  4. INCLUDES = -I$(top_builddir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@
  5. noinst_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \
  6. testThreads testC14N testAutomata testRegexp \
  7. testReader testapi testModule runtest runsuite testchar \
  8. testdict runxmlconf testrecurse
  9. bin_PROGRAMS = xmllint xmlcatalog
  10. bin_SCRIPTS=xml2-config
  11. lib_LTLIBRARIES = libxml2.la
  12. libxml2_la_LIBADD = @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) @M_LIBS@ @WIN32_EXTRA_LIBADD@
  13. if USE_VERSION_SCRIPT
  14. LIBXML2_VERSION_SCRIPT = $(VERSION_SCRIPT_FLAGS)$(srcdir)/libxml2.syms
  15. else
  16. LIBXML2_VERSION_SCRIPT =
  17. endif
  18. libxml2_la_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@ @WIN32_EXTRA_LDFLAGS@ \
  19. $(LIBXML2_VERSION_SCRIPT) \
  20. -version-info @LIBXML_VERSION_INFO@ \
  21. @MODULE_PLATFORM_LIBS@
  22. if WITH_TRIO_SOURCES
  23. libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \
  24. parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c \
  25. valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c \
  26. xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.c \
  27. catalog.c globals.c threads.c c14n.c xmlstring.c \
  28. xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
  29. triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c \
  30. xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \
  31. xmlmodule.c schematron.c
  32. else
  33. libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \
  34. parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c \
  35. valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c \
  36. xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.c \
  37. catalog.c globals.c threads.c c14n.c xmlstring.c \
  38. xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
  39. xmlreader.c relaxng.c dict.c SAX2.c \
  40. xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c \
  41. xmlmodule.c schematron.c
  42. endif
  43. DEPS = $(top_builddir)/libxml2.la
  44. LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) @M_LIBS@ @WIN32_EXTRA_LIBADD@
  45. man_MANS = xml2-config.1 libxml.3
  46. m4datadir = $(datadir)/aclocal
  47. m4data_DATA = libxml.m4
  48. runtest_SOURCES=runtest.c
  49. runtest_LDFLAGS =
  50. runtest_DEPENDENCIES = $(DEPS)
  51. runtest_LDADD= @BASE_THREAD_LIBS@ @RDL_LIBS@ $(LDADDS)
  52. testrecurse_SOURCES=testrecurse.c
  53. testrecurse_LDFLAGS =
  54. testrecurse_DEPENDENCIES = $(DEPS)
  55. testrecurse_LDADD= @BASE_THREAD_LIBS@ @RDL_LIBS@ $(LDADDS)
  56. testchar_SOURCES=testchar.c
  57. testchar_LDFLAGS =
  58. testchar_DEPENDENCIES = $(DEPS)
  59. testchar_LDADD= @RDL_LIBS@ $(LDADDS)
  60. testdict_SOURCES=testdict.c
  61. testdict_LDFLAGS =
  62. testdict_DEPENDENCIES = $(DEPS)
  63. testdict_LDADD= @RDL_LIBS@ $(LDADDS)
  64. runsuite_SOURCES=runsuite.c
  65. runsuite_LDFLAGS =
  66. runsuite_DEPENDENCIES = $(DEPS)
  67. runsuite_LDADD= @RDL_LIBS@ $(LDADDS)
  68. xmllint_SOURCES=xmllint.c
  69. xmllint_LDFLAGS =
  70. xmllint_DEPENDENCIES = $(DEPS)
  71. xmllint_LDADD= @RDL_LIBS@ $(LDADDS)
  72. testSAX_SOURCES=testSAX.c
  73. testSAX_LDFLAGS =
  74. testSAX_DEPENDENCIES = $(DEPS)
  75. testSAX_LDADD= $(LDADDS)
  76. testHTML_SOURCES=testHTML.c
  77. testHTML_LDFLAGS =
  78. testHTML_DEPENDENCIES = $(DEPS)
  79. testHTML_LDADD= $(LDADDS)
  80. xmlcatalog_SOURCES=xmlcatalog.c
  81. xmlcatalog_LDFLAGS =
  82. xmlcatalog_DEPENDENCIES = $(DEPS)
  83. xmlcatalog_LDADD= @RDL_LIBS@ $(LDADDS)
  84. testXPath_SOURCES=testXPath.c
  85. testXPath_LDFLAGS =
  86. testXPath_DEPENDENCIES = $(DEPS)
  87. testXPath_LDADD= $(LDADDS)
  88. testC14N_SOURCES=testC14N.c
  89. testC14N_LDFLAGS =
  90. testC14N_DEPENDENCIES = $(DEPS)
  91. testC14N_LDADD= $(LDADDS)
  92. testThreads_SOURCES=testThreads@THREADS_W32@.c
  93. testThreads_LDFLAGS =
  94. testThreads_DEPENDENCIES = $(DEPS)
  95. testThreads_LDADD= @BASE_THREAD_LIBS@ $(LDADDS)
  96. testURI_SOURCES=testURI.c
  97. testURI_LDFLAGS =
  98. testURI_DEPENDENCIES = $(DEPS)
  99. testURI_LDADD= $(LDADDS)
  100. testRegexp_SOURCES=testRegexp.c
  101. testRegexp_LDFLAGS =
  102. testRegexp_DEPENDENCIES = $(DEPS)
  103. testRegexp_LDADD= $(LDADDS)
  104. testAutomata_SOURCES=testAutomata.c
  105. testAutomata_LDFLAGS =
  106. testAutomata_DEPENDENCIES = $(DEPS)
  107. testAutomata_LDADD= $(LDADDS)
  108. testSchemas_SOURCES=testSchemas.c
  109. testSchemas_LDFLAGS =
  110. testSchemas_DEPENDENCIES = $(DEPS)
  111. testSchemas_LDADD= $(LDADDS)
  112. testRelax_SOURCES=testRelax.c
  113. testRelax_LDFLAGS =
  114. testRelax_DEPENDENCIES = $(DEPS)
  115. testRelax_LDADD= $(LDADDS)
  116. testReader_SOURCES=testReader.c
  117. testReader_LDFLAGS =
  118. testReader_DEPENDENCIES = $(DEPS)
  119. testReader_LDADD= $(LDADDS)
  120. testModule_SOURCES=testModule.c
  121. testModule_LDFLAGS =
  122. testModule_DEPENDENCIES = $(DEPS)
  123. testModule_LDADD= $(LDADDS)
  124. noinst_LTLIBRARIES = testdso.la
  125. testdso_la_SOURCES = testdso.c
  126. testdso_la_LDFLAGS = -module -rpath $(libdir)
  127. # that one forces the rebuild when "make rebuild" is run on doc/
  128. rebuild_testapi:
  129. -@(if [ "$(PYTHON)" != "" ] ; then \
  130. $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
  131. # that one is just to make sure it is rebuilt if missing
  132. # but adding the dependances generate mess
  133. testapi.c: $(srcdir)/gentest.py
  134. -@(if [ "$(PYTHON)" != "" ] ; then \
  135. $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
  136. testapi_SOURCES=testapi.c
  137. testapi_LDFLAGS =
  138. testapi_DEPENDENCIES = $(DEPS)
  139. testapi_LDADD= $(LDADDS)
  140. runxmlconf_SOURCES=runxmlconf.c
  141. runxmlconf_LDFLAGS =
  142. runxmlconf_DEPENDENCIES = $(DEPS)
  143. runxmlconf_LDADD= $(LDADDS)
  144. #testOOM_SOURCES=testOOM.c testOOMlib.h testOOMlib.c
  145. #testOOM_LDFLAGS =
  146. #testOOM_DEPENDENCIES = $(DEPS)
  147. #testOOM_LDADD= $(LDADDS)
  148. runtests:
  149. $(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
  150. @(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; \
  151. $(MAKE) MAKEFLAGS+=--silent tests ; fi)
  152. check: all runtests
  153. check-valgrind: all
  154. @echo '## Running the regression tests under Valgrind'
  155. @echo '## Go get a cup of coffee it is gonna take a while ...'
  156. $(MAKE) CHECKER='valgrind -q' check
  157. testall : tests SVGtests SAXtests
  158. tests: XMLtests XMLenttests NStests IDtests Errtests APItests @READER_TEST@ @TEST_SAX@ @TEST_PUSH@ @TEST_HTML@ @TEST_PHTML@ @TEST_VALID@ URItests @TEST_PATTERN@ @TEST_XPATH@ @TEST_XPTR@ @TEST_XINCLUDE@ @TEST_C14N@ @TEST_DEBUG@ @TEST_CATALOG@ @TEST_REGEXPS@ @TEST_SCHEMAS@ @TEST_SCHEMATRON@ @TEST_THREADS@ Timingtests @TEST_VTIME@ @PYTHON_TESTS@ @TEST_MODULES@
  159. @(if [ "@PYTHON_SUBDIR@" != "" ] ; then cd python ; \
  160. $(MAKE) MAKEFLAGS+=--silent tests ; fi)
  161. @(cd doc/examples ; $(MAKE) MAKEFLAGS+=--silent tests)
  162. valgrind:
  163. @echo '## Running the regression tests under Valgrind'
  164. @echo '## Go get a cup of coffee it is gonna take a while ...'
  165. $(MAKE) CHECKER='valgrind -q' tests
  166. APItests: testapi$(EXEEXT)
  167. @echo "## Running the API regression tests this may take a little while"
  168. -@($(CHECKER) $(top_builddir)/testapi -q)
  169. HTMLtests : testHTML$(EXEEXT)
  170. @(echo > .memdump)
  171. @echo "## HTML regression tests"
  172. -@(for i in $(srcdir)/test/HTML/* ; do \
  173. name=`basename $$i`; \
  174. if [ ! -d $$i ] ; then \
  175. if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
  176. echo New test file $$name ; \
  177. $(CHECKER) $(top_builddir)/testHTML $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
  178. else \
  179. log=`$(CHECKER) $(top_builddir)/testHTML $$i > result.$$name 2> error.$$name ; \
  180. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  181. diff $(srcdir)/result/HTML/$$name result.$$name ; \
  182. diff -b $(srcdir)/result/HTML/$$name.err error.$$name ; \
  183. $(CHECKER) $(top_builddir)/testHTML result.$$name > result2.$$name 2>error.$$name ; \
  184. diff result.$$name result2.$$name` ; \
  185. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  186. rm result.$$name result2.$$name error.$$name ; \
  187. fi ; fi ; done)
  188. HTMLPushtests : testHTML$(EXEEXT)
  189. @echo "## Push HTML regression tests"
  190. -@(for i in $(srcdir)/test/HTML/* ; do \
  191. name=`basename $$i`; \
  192. if [ ! -d $$i ] ; then \
  193. if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
  194. echo New test file $$name ; \
  195. $(CHECKER) $(top_builddir)/testHTML --push $$i > $(srcdir)/result/HTML/$$name 2>$(srcdir)/result/HTML/$$name.err ; \
  196. else \
  197. log=`$(CHECKER) $(top_builddir)/testHTML --push $$i > result.$$name 2> error.$$name ; \
  198. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  199. diff $(srcdir)/result/HTML/$$name result.$$name ; \
  200. cut -b 1-15 $(srcdir)/result/HTML/$$name.err > errorcut.$$name; \
  201. cut -b 1-15 error.$$name > errorcut2.$$name; \
  202. diff -b errorcut.$$name errorcut2.$$name ; \
  203. $(CHECKER) $(top_builddir)/testHTML --push result.$$name > result2.$$name 2>error.$$name ; \
  204. diff result.$$name result2.$$name` ; \
  205. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  206. rm result.$$name result2.$$name error.$$name errorcut.$$name errorcut2.$$name ; \
  207. fi ; fi ; done)
  208. @echo "## HTML SAX regression tests"
  209. -@(for i in $(srcdir)/test/HTML/* ; do \
  210. name=`basename $$i`; \
  211. if [ ! -d $$i ] ; then \
  212. if [ ! -f $(srcdir)/result/HTML/$$name.sax ] ; then \
  213. echo New test file $$name ; \
  214. $(CHECKER) $(top_builddir)/testHTML --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
  215. else \
  216. log=`$(CHECKER) $(top_builddir)/testHTML --sax $$i > result.$$name.sax ; \
  217. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  218. diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax` ; \
  219. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  220. rm result.$$name.sax ; \
  221. fi ; fi ; done)
  222. @echo "## Push HTML SAX regression tests"
  223. -@(for i in $(srcdir)/test/HTML/* ; do \
  224. name=`basename $$i`; \
  225. if [ ! -d $$i ] ; then \
  226. if [ ! -f $(srcdir)/result/HTML/$$name ] ; then \
  227. echo New test file $$name ; \
  228. $(CHECKER) $(top_builddir)/testHTML --push --sax $$i > $(srcdir)/result/HTML/$$name.sax ; \
  229. else \
  230. log=`$(CHECKER) $(top_builddir)/testHTML --push --sax $$i 2>&1 > result.$$name.sax ; \
  231. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  232. diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax` ; \
  233. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  234. rm result.$$name.sax ; \
  235. fi ; fi ; done)
  236. XMLtests : xmllint$(EXEEXT)
  237. @(echo > .memdump)
  238. @echo "## XML regression tests"
  239. -@(for i in $(srcdir)/test/* ; do \
  240. name=`basename $$i`; \
  241. if [ ! -d $$i ] ; then \
  242. if [ ! -f $(srcdir)/result/$$name ] ; then \
  243. echo New test file $$name ; \
  244. $(CHECKER) $(top_builddir)/xmllint $$i > $(srcdir)/result/$$name ; \
  245. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  246. else \
  247. log=`$(CHECKER) $(top_builddir)/xmllint $$i 2>&1 > result.$$name ; \
  248. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  249. diff $(srcdir)/result/$$name result.$$name ; \
  250. $(CHECKER) $(top_builddir)/xmllint result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
  251. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  252. diff result.$$name result2.$$name` ;\
  253. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  254. rm result.$$name result2.$$name ; \
  255. fi ; fi ; done)
  256. @echo "## XML regression tests on memory"
  257. -@(for i in $(srcdir)/test/* ; do \
  258. name=`basename $$i`; \
  259. if [ ! -d $$i ] ; then \
  260. if [ ! -f $(srcdir)/result/$$name ] ; then \
  261. echo New test file $$name ; \
  262. $(CHECKER) $(top_builddir)/xmllint --memory $$i > $(srcdir)/result/$$name ; \
  263. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  264. else \
  265. log=`$(CHECKER) $(top_builddir)/xmllint --memory $$i 2>&1 > result.$$name ; \
  266. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  267. diff $(srcdir)/result/$$name result.$$name ; \
  268. $(CHECKER) $(top_builddir)/xmllint --memory result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
  269. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"`; \
  270. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  271. diff result.$$name result2.$$name ; \
  272. rm result.$$name result2.$$name ; \
  273. fi ; fi ; done)
  274. XMLPushtests: xmllint$(EXEEXT)
  275. @(echo > .memdump)
  276. @echo "## XML push regression tests"
  277. -@(for i in $(srcdir)/test/* ; do \
  278. name=`basename $$i`; \
  279. if [ ! -d $$i ] ; then \
  280. if [ ! -f $(srcdir)/result/$$name ] ; then \
  281. echo New test file $$name ; \
  282. $(CHECKER) $(top_builddir)/xmllint --push $$i > $(srcdir)/result/$$name ; \
  283. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  284. else \
  285. log=`$(CHECKER) $(top_builddir)/xmllint --push $$i 2>&1 > result.$$name ; \
  286. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  287. diff $(srcdir)/result/$$name result.$$name ; \
  288. $(CHECKER) $(top_builddir)/xmllint --push result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
  289. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  290. diff result.$$name result2.$$name` ; \
  291. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  292. rm result.$$name result2.$$name ; \
  293. fi ; fi ; done)
  294. NStests : xmllint$(EXEEXT)
  295. @(echo > .memdump)
  296. @echo "## XML Namespaces regression tests"
  297. -@(for i in $(srcdir)/test/namespaces/* ; do \
  298. name=`basename $$i`; \
  299. if [ ! -d $$i ] ; then \
  300. if [ ! -f $(srcdir)/result/namespaces/$$name ] ; then \
  301. echo New test file $$name ; \
  302. $(CHECKER) $(top_builddir)/xmllint $$i \
  303. 2> $(srcdir)/result/namespaces/$$name.err \
  304. > $(srcdir)/result/namespaces/$$name ; \
  305. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  306. else \
  307. log=`$(CHECKER) $(top_builddir)/xmllint $$i 2> error.$$name > result.$$name ; \
  308. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  309. diff $(srcdir)/result/namespaces/$$name result.$$name ; \
  310. diff $(srcdir)/result/namespaces/$$name.err error.$$name`; \
  311. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  312. rm result.$$name error.$$name ; \
  313. fi ; fi ; done)
  314. IDtests : xmllint$(EXEEXT) testXPath$(EXEEXT)
  315. @(echo > .memdump)
  316. @echo "## xml:id regression tests"
  317. -@(for i in $(srcdir)/test/xmlid/id_*.xml ; do \
  318. name=`basename $$i`; \
  319. if [ ! -d $$i ] ; then \
  320. if [ ! -f $(srcdir)/result/xmlid/$$name ] ; then \
  321. echo New test file $$name ; \
  322. $(CHECKER) $(top_builddir)/testXPath -i $$i "id('bar')" \
  323. 2> $(srcdir)/result/xmlid/$$name.err \
  324. > $(srcdir)/result/xmlid/$$name ; \
  325. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  326. else \
  327. log=`$(CHECKER) $(top_builddir)/testXPath -i $$i "id('bar')" 2> error.$$name > result.$$name ; \
  328. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  329. diff $(srcdir)/result/xmlid/$$name result.$$name ; \
  330. diff $(srcdir)/result/xmlid/$$name.err error.$$name` ; \
  331. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  332. rm result.$$name error.$$name ; \
  333. fi ; fi ; done)
  334. Errtests : xmllint$(EXEEXT)
  335. @(echo > .memdump)
  336. @echo "## Error cases regression tests"
  337. -@(for i in $(srcdir)/test/errors/*.xml ; do \
  338. name=`basename $$i`; \
  339. if [ ! -d $$i ] ; then \
  340. if [ ! -f $(srcdir)/result/errors/$$name ] ; then \
  341. echo New test file $$name ; \
  342. $(CHECKER) $(top_builddir)/xmllint $$i \
  343. 2> $(srcdir)/result/errors/$$name.err \
  344. > $(srcdir)/result/errors/$$name ; \
  345. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  346. else \
  347. log=`$(CHECKER) $(top_builddir)/xmllint $$i 2> error.$$name > result.$$name ; \
  348. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  349. diff $(srcdir)/result/errors/$$name result.$$name ; \
  350. diff $(srcdir)/result/errors/$$name.err error.$$name` ; \
  351. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  352. rm result.$$name error.$$name ; \
  353. fi ; fi ; done)
  354. @echo "## Error cases stream regression tests"
  355. -@(for i in $(srcdir)/test/errors/*.xml ; do \
  356. name=`basename $$i`; \
  357. if [ ! -d $$i ] ; then \
  358. if [ ! -f $(srcdir)/result/errors/$$name.str ] ; then \
  359. echo New test file $$name ; \
  360. $(CHECKER) $(top_builddir)/xmllint --stream $$i \
  361. 2> $(srcdir)/result/errors/$$name.str \
  362. > /dev/null ; \
  363. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  364. else \
  365. log=`$(CHECKER) $(top_builddir)/xmllint --stream $$i 2> error.$$name > /dev/null ; \
  366. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  367. diff $(srcdir)/result/errors/$$name.str error.$$name` ; \
  368. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  369. rm error.$$name ; \
  370. fi ; fi ; done)
  371. Docbtests : xmllint$(EXEEXT)
  372. XMLenttests : xmllint$(EXEEXT)
  373. @(echo > .memdump)
  374. @echo "## XML entity subst regression tests"
  375. -@(for i in $(srcdir)/test/* ; do \
  376. name=`basename $$i`; \
  377. if [ ! -d $$i ] ; then \
  378. if [ ! -f $(srcdir)/result/noent/$$name ] ; then \
  379. echo New test file $$name ; \
  380. $(CHECKER) $(top_builddir)/xmllint --noent $$i > $(srcdir)/result/noent/$$name ; \
  381. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  382. else \
  383. log=`$(CHECKER) $(top_builddir)/xmllint --noent $$i 2>&1 > result.$$name ; \
  384. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  385. diff $(srcdir)/result/noent/$$name result.$$name ; \
  386. $(CHECKER) $(top_builddir)/xmllint --noent result.$$name 2>&1 > result2.$$name ; \
  387. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  388. diff result.$$name result2.$$name` ; \
  389. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  390. rm result.$$name result2.$$name ; \
  391. fi ; fi ; done)
  392. URItests : testURI$(EXEEXT)
  393. @(echo > .memdump)
  394. @echo "## URI module regression tests"
  395. -@(for i in $(srcdir)/test/URI/*.data ; do \
  396. name=`basename $$i`; \
  397. if [ ! -d $$i ] ; then \
  398. if [ ! -f $(srcdir)/result/URI/$$name ] ; then \
  399. echo New test file $$name ; \
  400. $(CHECKER) $(top_builddir)/testURI -base 'http://foo.com/path/to/index.html?orig#help' < $$i > $(srcdir)/result/URI/$$name ; \
  401. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  402. else \
  403. log=`$(CHECKER) $(top_builddir)/testURI -base 'http://foo.com/path/to/index.html?orig#help' < $$i 2>&1 > result.$$name ; \
  404. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  405. diff $(srcdir)/result/URI/$$name result.$$name` ; \
  406. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  407. rm result.$$name ; \
  408. fi ; fi ; done)
  409. -@(for i in $(srcdir)/test/URI/*.uri ; do \
  410. name=`basename $$i`; \
  411. if [ ! -d $$i ] ; then \
  412. if [ ! -f $(srcdir)/result/URI/$$name ] ; then \
  413. echo New test file $$name ; \
  414. $(CHECKER) $(top_builddir)/testURI < $$i > $(srcdir)/result/URI/$$name ; \
  415. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  416. else \
  417. log=`$(CHECKER) $(top_builddir)/testURI < $$i 2>&1 > result.$$name ; \
  418. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  419. diff $(srcdir)/result/URI/$$name result.$$name` ; \
  420. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  421. rm result.$$name ; \
  422. fi ; fi ; done)
  423. XPathtests : testXPath$(EXEEXT)
  424. @(echo > .memdump)
  425. @echo "## XPath regression tests"
  426. -@(if [ "`$(top_builddir)/testXPath | grep 'support not compiled in'`" != "" ] ; \
  427. then echo Skipping debug not compiled in ; exit 0 ; fi ; \
  428. for i in $(srcdir)/test/XPath/expr/* ; do \
  429. name=`basename $$i`; \
  430. if [ ! -d $$i ] ; then \
  431. if [ ! -f $(srcdir)/result/XPath/expr/$$name ] ; then \
  432. echo New test file $$name ; \
  433. $(CHECKER) $(top_builddir)/testXPath -f --expr $$i > $(srcdir)/result/XPath/expr/$$name ; \
  434. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  435. else \
  436. log=`$(CHECKER) $(top_builddir)/testXPath -f --expr $$i 2>&1 > result.$$name ; \
  437. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  438. diff $(srcdir)/result/XPath/expr/$$name result.$$name` ; \
  439. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  440. rm result.$$name ; \
  441. fi ; fi ; done ; \
  442. for i in $(srcdir)/test/XPath/docs/* ; do \
  443. if [ ! -d $$i ] ; then \
  444. doc=`basename $$i`; \
  445. for j in $(srcdir)/test/XPath/tests/$$doc* ; do \
  446. if [ ! -f $$j ] ; then continue ; fi ; \
  447. name=`basename $$j`; \
  448. if [ ! -d $$j ] ; then \
  449. if [ ! -f $(srcdir)/result/XPath/tests/$$name ] ; then \
  450. echo New test file $$name ; \
  451. $(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j > $(srcdir)/result/XPath/tests/$$name ; \
  452. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  453. else \
  454. log=`$(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j 2>&1 > result.$$name ; \
  455. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  456. diff $(srcdir)/result/XPath/tests/$$name result.$$name` ; \
  457. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  458. rm result.$$name ; \
  459. fi ; fi ; done ; fi ; done)
  460. XPtrtests : testXPath$(EXEEXT)
  461. @(echo > .memdump)
  462. @echo "## XPointer regression tests"
  463. -@(if [ "`$(top_builddir)/testXPath | grep 'support not compiled in'`" != "" ] ; \
  464. then echo Skipping debug not compiled in ; exit 0 ; fi ; \
  465. for i in $(srcdir)/test/XPath/docs/* ; do \
  466. if [ ! -d $$i ] ; then \
  467. doc=`basename $$i`; \
  468. for j in $(srcdir)/test/XPath/xptr/$$doc* ; do \
  469. if [ ! -f $$j ] ; then continue ; fi ; \
  470. name=`basename $$j`; \
  471. if [ ! -d $$j ] ; then \
  472. if [ ! -f $(srcdir)/result/XPath/xptr/$$name ] ; then \
  473. echo New test file $$name ; \
  474. $(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j > $(srcdir)/result/XPath/xptr/$$name ; \
  475. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  476. else \
  477. log=`$(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j 2>&1 > result.$$name ; \
  478. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  479. diff $(srcdir)/result/XPath/xptr/$$name result.$$name` ; \
  480. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  481. rm result.$$name ; \
  482. fi ; fi ; done ; fi ; done)
  483. XIncludetests : xmllint$(EXEEXT)
  484. @(echo > .memdump)
  485. @echo "## XInclude regression tests"
  486. -@(for i in $(srcdir)/test/XInclude/docs/* ; do \
  487. name=`basename $$i`; \
  488. if [ ! -d $$i ] ; then \
  489. if [ ! -f $(srcdir)/result/XInclude/$$name ] ; then \
  490. echo New test file $$name ; \
  491. $(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude $$i > $(srcdir)/result/XInclude/$$name 2> $(srcdir)/result/XInclude/$$name.err ; \
  492. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  493. else \
  494. log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude $$i > result.$$name 2>error.$$name ; \
  495. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  496. diff $(srcdir)/result/XInclude/$$name result.$$name ; \
  497. diff $(srcdir)/result/XInclude/$$name.err error.$$name` ; \
  498. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  499. rm result.$$name error.$$name ; \
  500. fi ; fi ; done)
  501. -@(for i in $(srcdir)/test/XInclude/docs/* ; do \
  502. name=`basename $$i`; \
  503. if [ ! -d $$i ] ; then \
  504. if [ ! -f $(srcdir)/result/XInclude/$$name ] ; then \
  505. echo New test file $$name ; \
  506. $(CHECKER) $(top_builddir)/xmllint --nowarning --noxincludenode $$i > $(srcdir)/result/XInclude/$$name 2> $(srcdir)/result/XInclude/$$name.err ; \
  507. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  508. else \
  509. log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --noxincludenode $$i > result.$$name 2>error.$$name ; \
  510. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  511. diff $(srcdir)/result/XInclude/$$name result.$$name ; \
  512. diff $(srcdir)/result/XInclude/$$name.err error.$$name` ; \
  513. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  514. rm result.$$name error.$$name ; \
  515. fi ; fi ; done)
  516. @(echo > .memdump)
  517. @echo "## XInclude xmlReader regression tests"
  518. -@(for i in $(srcdir)/test/XInclude/docs/* ; do \
  519. name=`basename $$i`; \
  520. if [ ! -d $$i ] ; then \
  521. if [ ! -f $(srcdir)/result/XInclude/$$name.rdr ] ; then \
  522. echo New test file $$name ; \
  523. $(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --stream --debug $$i > $(srcdir)/result/XInclude/$$name.rdr ; \
  524. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  525. else \
  526. log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --stream --debug $$i > result.$$name 2>error.$$name ; \
  527. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  528. diff $(srcdir)/result/XInclude/$$name.err error.$$name ; \
  529. diff $(srcdir)/result/XInclude/$$name.rdr result.$$name` ; \
  530. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  531. rm result.$$name error.$$name ; \
  532. fi ; fi ; done)
  533. -@(for i in $(srcdir)/test/XInclude/docs/* ; do \
  534. name=`basename $$i`; \
  535. if [ ! -d $$i ] ; then \
  536. if [ ! -f $(srcdir)/result/XInclude/$$name.rdr ] ; then \
  537. echo New test file $$name ; \
  538. $(CHECKER) $(top_builddir)/xmllint --nowarning --noxincludenode --stream --debug $$i > $(srcdir)/result/XInclude/$$name.rdr ; \
  539. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  540. else \
  541. log=`$(CHECKER) $(top_builddir)/xmllint --nowarning --xinclude --stream --debug $$i > result.$$name 2>error.$$name ; \
  542. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  543. diff $(srcdir)/result/XInclude/$$name.err error.$$name ; \
  544. diff $(srcdir)/result/XInclude/$$name.rdr result.$$name` ; \
  545. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  546. rm result.$$name error.$$name ; \
  547. fi ; fi ; done)
  548. Scripttests : xmllint$(EXEEXT)
  549. @(echo > .memdump)
  550. @echo "## Scripts regression tests"
  551. @echo "## Some of the base computations may be different if srcdir != ."
  552. -@(for i in $(srcdir)/test/scripts/*.script ; do \
  553. name=`basename $$i .script`; \
  554. xml=$(srcdir)/test/scripts/`basename $$i .script`.xml; \
  555. if [ -f $$xml ] ; then \
  556. if [ ! -f $(srcdir)/result/scripts/$$name ] ; then \
  557. echo New test file $$name ; \
  558. $(CHECKER) $(top_builddir)/xmllint --shell $$xml < $$i > $(srcdir)/result/scripts/$$name 2> $(srcdir)/result/scripts/$$name.err ; \
  559. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  560. else \
  561. log=`$(CHECKER) $(top_builddir)/xmllint --shell $$xml < $$i > result.$$name 2> result.$$name.err ; \
  562. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  563. diff $(srcdir)/result/scripts/$$name result.$$name ; \
  564. diff $(srcdir)/result/scripts/$$name.err result.$$name.err` ; \
  565. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  566. rm result.$$name result.$$name.err ; \
  567. fi ; fi ; done)
  568. Catatests : xmlcatalog$(EXEEXT)
  569. @(echo > .memdump)
  570. @echo "## Catalog regression tests"
  571. -@(for i in $(srcdir)/test/catalogs/*.script ; do \
  572. name=`basename $$i .script`; \
  573. xml=$(srcdir)/test/catalogs/`basename $$i .script`.xml; \
  574. if [ -f $$xml ] ; then \
  575. if [ ! -f $(srcdir)/result/catalogs/$$name ] ; then \
  576. echo New test file $$name ; \
  577. $(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i 2>&1 > $(srcdir)/result/catalogs/$$name ; \
  578. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  579. else \
  580. log=`$(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i 2>&1 > result.$$name ; \
  581. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  582. diff $(srcdir)/result/catalogs/$$name result.$$name` ; \
  583. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  584. rm result.$$name ; \
  585. fi ; fi ; done)
  586. -@(for i in $(srcdir)/test/catalogs/*.script ; do \
  587. name=`basename $$i .script`; \
  588. sgml=$(srcdir)/test/catalogs/`basename $$i .script`.sgml; \
  589. if [ -f $$sgml ] ; then \
  590. if [ ! -f $(srcdir)/result/catalogs/$$name ] ; then \
  591. echo New test file $$name ; \
  592. $(CHECKER) $(top_builddir)/xmlcatalog --shell $$sgml < $$i > $(srcdir)/result/catalogs/$$name ; \
  593. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  594. else \
  595. log=`$(CHECKER) $(top_builddir)/xmlcatalog --shell $$sgml < $$i > result.$$name ; \
  596. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  597. diff $(srcdir)/result/catalogs/$$name result.$$name` ; \
  598. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  599. rm result.$$name ; \
  600. fi ; fi ; done)
  601. @echo "## Add and del operations on XML Catalogs"
  602. -@($(CHECKER) $(top_builddir)/xmlcatalog --create --noout $(srcdir)/result/catalogs/mycatalog; \
  603. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  604. $(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid sysid $(srcdir)/result/catalogs/mycatalog; \
  605. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  606. $(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid2 sysid2 $(srcdir)/result/catalogs/mycatalog; \
  607. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  608. $(CHECKER) $(top_builddir)/xmlcatalog --noout --add public Pubid3 sysid3 $(srcdir)/result/catalogs/mycatalog; \
  609. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  610. diff result/catalogs/mycatalog.full $(srcdir)/result/catalogs/mycatalog; \
  611. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  612. $(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid $(srcdir)/result/catalogs/mycatalog; \
  613. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  614. $(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid3 $(srcdir)/result/catalogs/mycatalog; \
  615. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  616. $(CHECKER) $(top_builddir)/xmlcatalog --noout --del sysid2 $(srcdir)/result/catalogs/mycatalog; \
  617. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  618. diff result/catalogs/mycatalog.empty $(srcdir)/result/catalogs/mycatalog; \
  619. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  620. rm -f $(srcdir)/result/catalogs/mycatalog)
  621. SVGtests : xmllint$(EXEEXT)
  622. @echo "## SVG parsing regression tests"
  623. -@(for i in $(srcdir)/test/SVG/* ; do \
  624. name=`basename $$i`; \
  625. if [ ! -d $$i ] ; then \
  626. if [ ! -f $(srcdir)/result/SVG/$$name ] ; then \
  627. echo New test file $$name ; \
  628. $(CHECKER) $(top_builddir)/xmllint $$i > $(srcdir)/result/SVG/$$name ; \
  629. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  630. else \
  631. echo Testing $$name ; \
  632. $(CHECKER) $(top_builddir)/xmllint $$i > result.$$name ; \
  633. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  634. diff $(srcdir)/result/SVG/$$name result.$$name ; \
  635. $(CHECKER) $(top_builddir)/xmllint result.$$name > result2.$$name ; \
  636. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  637. diff result.$$name result2.$$name ; \
  638. rm result.$$name result2.$$name ; \
  639. fi ; fi ; done)
  640. Threadtests : testThreads$(EXEEXT)
  641. @echo "## Threaded regression tests"
  642. -@($(CHECKER) $(top_builddir)/testThreads ; \
  643. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
  644. exit 0)
  645. Readertests : xmllint$(EXEEXT)
  646. @(echo > .memdump)
  647. @echo "## Reader regression tests"
  648. -@(for i in $(srcdir)/test/* ; do \
  649. name=`basename $$i`; \
  650. if [ ! -d $$i ] ; then \
  651. if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
  652. echo New test file $$name ; \
  653. $(CHECKER) $(top_builddir)/xmllint --nonet --debug --stream $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
  654. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  655. else \
  656. log=`$(CHECKER) $(top_builddir)/xmllint --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
  657. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  658. diff $(srcdir)/result/$$name.rdr result.$$name` ; \
  659. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  660. rm result.$$name ; \
  661. fi ; fi ; done)
  662. @echo "## Reader on memory regression tests"
  663. -@(for i in $(srcdir)/test/* ; do \
  664. name=`basename $$i`; \
  665. if [ ! -d $$i ] ; then \
  666. if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
  667. echo New test file $$name ; \
  668. $(CHECKER) $(top_builddir)/xmllint --memory --nonet --debug --stream $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
  669. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  670. else \
  671. log=`$(CHECKER) $(top_builddir)/xmllint --memory --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
  672. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  673. diff $(srcdir)/result/$$name.rdr result.$$name` ; \
  674. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  675. rm result.$$name ; \
  676. fi ; fi ; done)
  677. @(echo > .memdump)
  678. @echo "## Walker regression tests"
  679. -@(for i in $(srcdir)/test/* ; do \
  680. name=`basename $$i`; \
  681. if [ ! -d $$i ] ; then \
  682. if [ ! -f $(srcdir)/result/$$name.rdr ] ; then \
  683. echo New test file $$name ; \
  684. $(CHECKER) $(top_builddir)/xmllint --nonet --debug --walker $$i > $(srcdir)/result/$$name.rdr 2>/dev/null ; \
  685. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  686. else \
  687. log=`$(CHECKER) $(top_builddir)/xmllint --nonet --debug --walker $$i > result.$$name 2>/dev/null ; \
  688. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  689. diff $(srcdir)/result/$$name.rdr result.$$name` ; \
  690. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  691. rm result.$$name ; \
  692. fi ; fi ; done)
  693. @echo "## Reader entities substitution regression tests"
  694. -@(for i in $(srcdir)/test/* ; do \
  695. name=`basename $$i`; \
  696. if [ ! -d $$i ] ; then \
  697. if [ ! -f $(srcdir)/result/$$name.rde ] ; then \
  698. echo New test file $$name ; \
  699. $(CHECKER) $(top_builddir)/xmllint --noent --nonet --debug --stream $$i > $(srcdir)/result/$$name.rde 2>/dev/null ; \
  700. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  701. else \
  702. log=`$(CHECKER) $(top_builddir)/xmllint --noent --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
  703. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  704. diff $(srcdir)/result/$$name.rde result.$$name` ; \
  705. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  706. rm result.$$name ; \
  707. fi ; fi ; done)
  708. SAXtests : testSAX$(EXEEXT)
  709. @(echo > .memdump)
  710. @echo "## SAX1 callbacks regression tests"
  711. -@(for i in $(srcdir)/test/* ; do \
  712. name=`basename $$i`; \
  713. if [ ! -d $$i ] ; then \
  714. if [ ! -f $(srcdir)/result/$$name.sax ] ; then \
  715. echo New test file $$name ; \
  716. $(CHECKER) $(top_builddir)/testSAX $$i > $(srcdir)/result/$$name.sax 2> /dev/null ; \
  717. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  718. else \
  719. log=`$(CHECKER) $(top_builddir)/testSAX $$i > result.$$name 2> /dev/null ; \
  720. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  721. diff $(srcdir)/result/$$name.sax result.$$name` ; \
  722. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  723. rm result.$$name ; \
  724. fi ; fi ; done)
  725. @echo "## SAX2 callbacks regression tests"
  726. -@(for i in $(srcdir)/test/* ; do \
  727. name=`basename $$i`; \
  728. if [ ! -d $$i ] ; then \
  729. if [ ! -f $(srcdir)/result/$$name.sax2 ] ; then \
  730. echo New test file $$name ; \
  731. $(CHECKER) $(top_builddir)/testSAX --sax2 $$i > $(srcdir)/result/$$name.sax2 2> /dev/null ; \
  732. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  733. else \
  734. log=`$(CHECKER) $(top_builddir)/testSAX --sax2 $$i > result.$$name 2> /dev/null ; \
  735. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  736. diff $(srcdir)/result/$$name.sax2 result.$$name` ; \
  737. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  738. rm result.$$name ; \
  739. fi ; fi ; done)
  740. Validtests : xmllint$(EXEEXT)
  741. @(echo > .memdump)
  742. @echo "## Valid documents regression tests"
  743. -@(for i in $(srcdir)/test/VCM/* ; do \
  744. name=`basename $$i`; \
  745. if [ ! -d $$i ] ; then \
  746. log=`$(CHECKER) $(top_builddir)/xmllint --valid --noout --nowarning $$i ; \
  747. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"`;\
  748. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  749. fi ; done ; exit 0)
  750. @echo "## Validity checking regression tests"
  751. -@(for i in $(srcdir)/test/VC/* ; do \
  752. name=`basename $$i`; \
  753. if [ ! -d $$i ] ; then \
  754. if [ ! -f $(srcdir)/result/VC/$$name ] ; then \
  755. echo New test file $$name ; \
  756. $(CHECKER) $(top_builddir)/xmllint --noout --valid $$i 2> $(srcdir)/result/VC/$$name ; \
  757. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  758. else \
  759. log=`$(CHECKER) $(top_builddir)/xmllint --noout --valid $$i 2> result.$$name ; \
  760. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  761. diff $(srcdir)/result/VC/$$name result.$$name` ; \
  762. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  763. rm result.$$name ; \
  764. fi ; fi ; done)
  765. @echo "## General documents valid regression tests"
  766. -@(for i in $(srcdir)/test/valid/* ; do \
  767. name=`basename $$i`; \
  768. if [ ! -d $$i ] ; then \
  769. if [ ! -f $(srcdir)/result/valid/$$name ] ; then \
  770. echo New test file $$name ; \
  771. $(CHECKER) $(top_builddir)/xmllint --valid $$i > $(srcdir)/result/valid/$$name 2>$(srcdir)/result/valid/$$name.err ; \
  772. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  773. else \
  774. log=`$(CHECKER) $(top_builddir)/xmllint --valid $$i > result.$$name 2>error.$$name ; \
  775. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  776. diff $(srcdir)/result/valid/$$name result.$$name ; \
  777. diff $(srcdir)/result/valid/$$name.err error.$$name` ; \
  778. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  779. rm result.$$name error.$$name ; \
  780. fi ; fi ; done)
  781. Regexptests: testRegexp$(EXEEXT)
  782. @(echo > .memdump)
  783. @echo "## Regexp regression tests"
  784. -@(for i in $(srcdir)/test/regexp/* ; do \
  785. name=`basename $$i`; \
  786. if [ ! -d $$i ] ; then \
  787. if [ ! -f $(srcdir)/result/regexp/$$name ] ; then \
  788. echo New test file $$name ; \
  789. $(CHECKER) $(top_builddir)/testRegexp -i $$i > $(srcdir)/result/regexp/$$name; \
  790. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  791. else \
  792. log=`$(CHECKER) $(top_builddir)/testRegexp -i $$i 2>&1 > result.$$name ; \
  793. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  794. diff $(srcdir)/result/regexp/$$name result.$$name` ; \
  795. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  796. rm result.$$name ; \
  797. fi ; fi ; done)
  798. @echo "## Formal expresssions regression tests"
  799. -@(for i in $(srcdir)/test/expr/* ; do \
  800. name=`basename $$i`; \
  801. if [ ! -d $$i ] ; then \
  802. if [ ! -f $(srcdir)/result/expr/$$name ] ; then \
  803. echo New test file $$name ; \
  804. $(CHECKER) $(top_builddir)/testRegexp --expr -i $$i > $(srcdir)/result/expr/$$name; \
  805. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  806. else \
  807. log=`$(CHECKER) $(top_builddir)/testRegexp --expr -i $$i 2>&1 > result.$$name ; \
  808. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  809. diff $(srcdir)/result/expr/$$name result.$$name` ; \
  810. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  811. rm result.$$name ; \
  812. fi ; fi ; done)
  813. Automatatests: testAutomata$(EXEEXT)
  814. @(echo > .memdump)
  815. @echo "## Automata regression tests"
  816. -@(for i in $(srcdir)/test/automata/* ; do \
  817. name=`basename $$i`; \
  818. if [ ! -d $$i ] ; then \
  819. if [ ! -f $(srcdir)/result/automata/$$name ] ; then \
  820. echo New test file $$name ; \
  821. $(CHECKER) $(top_builddir)/testAutomata $$i > $(srcdir)/result/automata/$$name; \
  822. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  823. else \
  824. log=`$(CHECKER) $(top_builddir)/testAutomata $$i 2>&1 > result.$$name ; \
  825. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  826. diff $(srcdir)/result/automata/$$name result.$$name` ; \
  827. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  828. rm result.$$name ; \
  829. fi ; fi ; done)
  830. dba100000.xml: dbgenattr.pl
  831. @echo "## generating dba100000.xml"
  832. @($(PERL) $(top_srcdir)/dbgenattr.pl 100000 > dba100000.xml)
  833. Timingtests: xmllint$(EXEEXT) dba100000.xml
  834. @echo "## Timing tests to try to detect performance"
  835. @echo "## as well a memory usage breakage when streaming"
  836. @echo "## 1/ using the file interface"
  837. @echo "## 2/ using the memory interface"
  838. @echo "## 3/ repeated DOM parsing"
  839. @echo "## 4/ repeated DOM validation"
  840. -@($(top_builddir)/xmllint --stream --timing dba100000.xml; \
  841. MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
  842. if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
  843. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  844. exit 0)
  845. -@($(top_builddir)/xmllint --stream --timing --memory dba100000.xml; \
  846. MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
  847. if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
  848. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  849. exit 0)
  850. -@($(top_builddir)/xmllint --noout --timing --repeat $(srcdir)/test/valid/REC-xml-19980210.xml; \
  851. MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
  852. if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
  853. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  854. exit 0)
  855. VTimingtests: xmllint$(EXEEXT)
  856. -@($(top_builddir)/xmllint --noout --timing --valid --repeat $(srcdir)/test/valid/REC-xml-19980210.xml; \
  857. MEM=`cat .memdump | grep "MEMORY ALLOCATED" | awk '{ print $$7}'`;\
  858. if [ "$$MEM" != "" ] ; then echo Using $$MEM bytes ; fi ; \
  859. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  860. exit 0)
  861. C14Ntests : testC14N$(EXEEXT)
  862. @echo "## C14N and XPath regression tests"
  863. -@(for m in with-comments without-comments 1-1-without-comments exc-without-comments ; do \
  864. for i in $(srcdir)/test/c14n/$$m/*.xml ; do \
  865. if [ ! -d $$i ] ; then \
  866. name=`basename $$i .xml`; \
  867. cmdline="$(CHECKER) $(top_builddir)/testC14N --$$m $$i"; \
  868. if [ -f $(srcdir)/test/c14n/$$m/$$name.xpath ] ; then \
  869. cmdline="$$cmdline $(srcdir)/test/c14n/$$m/$$name.xpath"; \
  870. if [ -f $(srcdir)/test/c14n/$$m/$$name.ns ] ; then \
  871. cmdline="$$cmdline '`cat $(srcdir)/test/c14n/$$m/$$name.ns`'"; \
  872. fi; \
  873. fi; \
  874. $$cmdline > $(srcdir)/test/c14n/test.tmp; \
  875. if [ $$? -eq 0 ]; then \
  876. diff $(srcdir)/result/c14n/$$m/$$name $(srcdir)/test/c14n/test.tmp; \
  877. if [ $$? -ne 0 ]; then \
  878. echo "Test $$m/$$name failed"; \
  879. cat $(srcdir)/test/c14n/test.tmp; \
  880. fi; \
  881. else \
  882. echo "C14N failed"; \
  883. fi; \
  884. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  885. fi; \
  886. rm -f $(srcdir)/test/c14n/test.tmp; \
  887. done; \
  888. done)
  889. Schemastests: testSchemas$(EXEEXT)
  890. @(echo > .memdump)
  891. @echo "## Schemas regression tests"
  892. -@(for i in $(srcdir)/test/schemas/*_*.xsd ; do \
  893. name=`basename $$i | sed 's+_.*++'`; \
  894. sno=`basename $$i | sed 's+.*_\(.*\).xsd+\1+'`; \
  895. for j in $(srcdir)/test/schemas/"$$name"_*.xml ; do \
  896. if [ -f $$j ] ; then \
  897. xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
  898. if [ ! -f $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" ]; \
  899. then \
  900. echo New test file "$$name"_"$$sno"_"$$xno" ; \
  901. $(CHECKER) $(top_builddir)/testSchemas $$i $$j \
  902. > $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" \
  903. 2> $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno".err; \
  904. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  905. else \
  906. log=`$(CHECKER) $(top_builddir)/testSchemas $$i $$j \
  907. > res.$$name 2> err.$$name;\
  908. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  909. diff $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno" \
  910. res.$$name;\
  911. diff $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno".err \
  912. err.$$name;\
  913. grep Unimplemented err.$$name`; \
  914. if [ -n "$$log" ] ; then echo "$$name"_"$$sno"_"$$xno" result ; echo $$log ; fi ; \
  915. rm res.$$name err.$$name ; \
  916. fi ; fi ;\
  917. done; done)
  918. Relaxtests: xmllint$(EXEEXT)
  919. @(echo > .memdump)
  920. @echo "## Relax-NG regression tests"
  921. -@(for i in $(srcdir)/test/relaxng/*.rng ; do \
  922. name=`basename $$i | sed 's+\.rng++'`; \
  923. if [ ! -f $(srcdir)/result/relaxng/"$$name"_valid ] ; then \
  924. echo New schemas $$name ; \
  925. $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $(srcdir)/test/relaxng/tutorA.rng $$i \
  926. > $(srcdir)/result/relaxng/"$$name"_valid \
  927. 2> $(srcdir)/result/relaxng/"$$name"_err; \
  928. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  929. else \
  930. log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $(srcdir)/test/relaxng/tutorA.rng $$i \
  931. > res.$$name 2> err.$$name;\
  932. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  933. diff $(srcdir)/result/relaxng/"$$name"_valid \
  934. res.$$name;\
  935. diff $(srcdir)/result/relaxng/"$$name"_err \
  936. err.$$name | grep -v "error detected at";\
  937. grep Unimplemented err.$$name`; \
  938. if [ -n "$$log" ] ; then echo schemas $$name result ; echo $$log ; fi ; \
  939. rm res.$$name err.$$name ; \
  940. fi; \
  941. for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
  942. if [ -f $$j ] ; then \
  943. xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
  944. if [ ! -f $(srcdir)/result/relaxng/"$$name"_"$$xno" ]; \
  945. then \
  946. echo New test file "$$name"_"$$xno" ; \
  947. $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
  948. > $(srcdir)/result/relaxng/"$$name"_"$$xno" \
  949. 2> $(srcdir)/result/relaxng/"$$name"_"$$xno".err; \
  950. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  951. else \
  952. log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
  953. > res.$$name 2> err.$$name;\
  954. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  955. diff $(srcdir)/result/relaxng/"$$name"_"$$xno" \
  956. res.$$name;\
  957. diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
  958. err.$$name | grep -v "error detected at";\
  959. grep Unimplemented err.$$name`; \
  960. if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
  961. rm res.$$name err.$$name ; \
  962. fi ; fi ; \
  963. done; done)
  964. @echo "## Relax-NG streaming regression tests"
  965. -@(for i in $(srcdir)/test/relaxng/*.rng ; do \
  966. name=`basename $$i | sed 's+\.rng++'`; \
  967. for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
  968. if [ -f $$j ] ; then \
  969. xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
  970. if [ ! -f $(srcdir)/result/relaxng/"$$name"_"$$xno" ]; \
  971. then \
  972. echo New test file "$$name"_"$$xno" ; \
  973. $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --relaxng $$i $$j \
  974. > $(srcdir)/result/relaxng/"$$name"_"$$xno" \
  975. 2> $(srcdir)/result/relaxng/"$$name"_"$$xno".err; \
  976. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  977. else \
  978. log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --noout --stream --relaxng $$i $$j \
  979. > res.$$name 2> err.$$name;\
  980. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  981. diff $(srcdir)/result/relaxng/"$$name"_"$$xno" res.$$name;\
  982. if [ "$$name" != "tutor10_1" -a "$$name" != "tutor10_2" -a "$$name" != "tutor3_2" -a "$$name" != "307377" -a "$$name" != "tutor8_2" ] ; then \
  983. diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
  984. err.$$name | grep -v "error detected at";\
  985. fi ; grep Unimplemented err.$$name`; \
  986. if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
  987. rm res.$$name err.$$name ; \
  988. fi ; fi ; \
  989. done; done)
  990. Schematrontests: xmllint$(EXEEXT)
  991. @(echo > .memdump)
  992. @echo "## Schematron regression tests"
  993. -@(for i in $(srcdir)/test/schematron/*.sct ; do \
  994. name=`basename $$i | sed 's+\.sct++'`; \
  995. for j in $(srcdir)/test/schematron/"$$name"_*.xml ; do \
  996. if [ -f $$j ] ; then \
  997. xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
  998. if [ ! -f $(srcdir)/result/schematron/"$$name"_"$$xno" ]; \
  999. then \
  1000. echo New test file "$$name"_"$$xno" ; \
  1001. $(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \
  1002. > $(srcdir)/result/schematron/"$$name"_"$$xno" \
  1003. 2> $(srcdir)/result/schematron/"$$name"_"$$xno".err; \
  1004. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  1005. else \
  1006. log=`$(CHECKER) $(top_builddir)/xmllint$(EXEEXT) --schematron $$i $$j \
  1007. > res.$$name 2> err.$$name;\
  1008. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  1009. diff $(srcdir)/result/schematron/"$$name"_"$$xno" \
  1010. res.$$name;\
  1011. diff $(srcdir)/result/schematron/"$$name"_"$$xno".err \
  1012. err.$$name | grep -v "error detected at";\
  1013. grep Unimplemented err.$$name`; \
  1014. if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
  1015. rm res.$$name err.$$name ; \
  1016. fi ; fi ; \
  1017. done; done)
  1018. RelaxNGPythonTests:
  1019. @(if [ -x $(PYTHON) ] ; then \
  1020. PYTHONPATH=$(top_builddir)/python:$(top_builddir)/python/.libs:$$PYTHONPATH ; \
  1021. export PYTHONPATH; \
  1022. LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
  1023. export LD_LIBRARY_PATH; \
  1024. echo "## Relax-NG Python based test suite 1" ; \
  1025. $(CHECKER) $(PYTHON) $(srcdir)/check-relaxng-test-suite.py ; \
  1026. echo "## Relax-NG Python based test suite 2" ; \
  1027. $(CHECKER) $(PYTHON) $(srcdir)/check-relaxng-test-suite2.py ; \
  1028. fi)
  1029. SchemasPythonTests:
  1030. @(if [ -x $(PYTHON) ] ; then \
  1031. PYTHONPATH=$(top_builddir)/python:$(top_builddir)/python/.libs:$$PYTHONPATH; \
  1032. export PYTHONPATH; \
  1033. LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
  1034. export LD_LIBRARY_PATH; \
  1035. echo "## XML Schemas datatypes Python based test suite" ; \
  1036. echo "## It is normal to see 11 errors reported" ; \
  1037. $(CHECKER) $(PYTHON) $(srcdir)/check-xsddata-test-suite.py ; \
  1038. fi)
  1039. @(if [ -x $(PYTHON) -a -d xstc ] ; then cd xstc ; $(MAKE) CHECKER="$(CHECKER)" MAKEFLAGS+=--silent pytests ; fi)
  1040. Patterntests: xmllint$(EXEEXT)
  1041. @(echo > .memdump)
  1042. @echo "## Pattern regression tests"
  1043. -@(for i in $(srcdir)/test/pattern/*.pat ; do \
  1044. name=`basename $$i .pat`; \
  1045. if [ -f $(srcdir)/test/pattern/$$name.xml ] ; then \
  1046. if [ ! -f $(srcdir)/result/pattern/$$name ] ; then \
  1047. rm -f result.$$name ; \
  1048. echo New test file $$name ; \
  1049. for pat in `cat $$i` ; do \
  1050. $(CHECKER) $(top_builddir)/xmllint --walker --pattern $$pat $(srcdir)/test/pattern/$$name.xml >> $(srcdir)/result/pattern/$$name ; \
  1051. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  1052. done ;\
  1053. else \
  1054. rm -f result.$$name ; \
  1055. lst=`cat $$i` ; \
  1056. log=`for pat in $$lst ; do $(CHECKER) $(top_builddir)/xmllint --walker --pattern $$pat $(srcdir)/test/pattern/$$name.xml 2>&1 >> result.$$name ; \
  1057. grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
  1058. done ;\
  1059. diff $(srcdir)/result/pattern/$$name result.$$name` ; \
  1060. if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
  1061. rm result.$$name ; \
  1062. fi ; fi ; done ;)
  1063. ModuleTests: testModule$(EXEEXT) testdso.la
  1064. @echo "## Module tests"
  1065. @(./testModule$(EXEEXT))
  1066. cleanup:
  1067. -@(find . -name .\#\* -exec rm {} \;)
  1068. -@(find . -name \*.gcda -o *.gcno -exec rm {} \;)
  1069. -@(find . -name \*.orig -o -name \*.rej -o -name \*.old -exec rm {} \;)
  1070. dist-hook: cleanup libxml2.spec
  1071. -cp libxml2.spec $(distdir)
  1072. (cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn win32 macos vms VxWorks bakefile test result) | (cd $(distdir); tar xf -)
  1073. dist-source: distdir
  1074. $(AMTAR) -chof - --exclude Tests --exclude test --exclude result $(distdir) | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-sources+"`.tar.gz
  1075. dist-test: distdir
  1076. (mkdir -p $(distdir))
  1077. (cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn xstc/Tests) | (cd $(distdir); tar xf -)
  1078. tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/testapi.c $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz
  1079. @(rm -rf $(distdir)/xstc/Test)
  1080. cleantar:
  1081. @(rm -f libxml*.tar.gz COPYING.LIB)
  1082. rpm: cleanup cleantar
  1083. @(unset CDPATH ; $(MAKE) dist-source dist && rpmbuild -ta $(distdir).tar.gz)
  1084. ## We create xml2Conf.sh here and not from configure because we want
  1085. ## to get the paths expanded correctly. Macros like srcdir are given
  1086. ## the value NONE in configure if the user doesn't specify them (this
  1087. ## is an autoconf feature, not a bug).
  1088. xml2Conf.sh: xml2Conf.sh.in Makefile
  1089. ## Use sed and then mv to avoid problems if the user interrupts.
  1090. sed -e 's?\@XML_LIBDIR\@?$(XML_LIBDIR)?g' \
  1091. -e 's?\@XML_INCLUDEDIR\@?$(XML_INCLUDEDIR)?g' \
  1092. -e 's?\@VERSION\@?$(VERSION)?g' \
  1093. -e 's?\@XML_LIBS\@?$(XML_LIBS)?g' \
  1094. < $(srcdir)/xml2Conf.sh.in > xml2Conf.tmp \
  1095. && mv xml2Conf.tmp xml2Conf.sh
  1096. CLEANFILES=xml2Conf.sh *.gcda *.gcno
  1097. confexecdir=$(libdir)
  1098. confexec_DATA = xml2Conf.sh
  1099. CVS_EXTRA_DIST=
  1100. EXTRA_DIST = xml2-config.in xml2Conf.sh.in libxml.spec.in libxml2.spec \
  1101. libxml.m4 Copyright check-xml-test-suite.py gentest.py \
  1102. check-relaxng-test-suite.py check-relaxng-test-suite2.py \
  1103. check-xsddata-test-suite.py check-xinclude-test-suite.py \
  1104. example/Makefile.am example/gjobread.c example/gjobs.xml \
  1105. $(man_MANS) libxml-2.0.pc.in libxml-2.0-uninstalled.pc.in \
  1106. trionan.c trionan.h triostr.c triostr.h trio.c trio.h \
  1107. triop.h triodef.h libxml.h elfgcchack.h \
  1108. testThreadsWin32.c genUnicode.py TODO_SCHEMAS \
  1109. dbgen.pl dbgenattr.pl regressions.py regressions.xml \
  1110. README.tests Makefile.tests libxml2.syms \
  1111. $(CVS_EXTRA_DIST)
  1112. pkgconfigdir = $(libdir)/pkgconfig
  1113. pkgconfig_DATA = libxml-2.0.pc
  1114. #
  1115. # Install the tests program sources as examples
  1116. #
  1117. BASE_DIR=$(datadir)/doc
  1118. DOC_MODULE=libxml2-$(VERSION)
  1119. EXAMPLES_DIR=$(BASE_DIR)/$(DOC_MODULE)/examples
  1120. install-data-local:
  1121. $(mkinstalldirs) $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
  1122. -@INSTALL@ -m 0644 $(srcdir)/Copyright $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
  1123. $(mkinstalldirs) $(DESTDIR)$(EXAMPLES_DIR)
  1124. -@INSTALL@ -m 0644 $(srcdir)/xmllint.c $(DESTDIR)$(EXAMPLES_DIR)
  1125. -@INSTALL@ -m 0644 $(srcdir)/testSAX.c $(DESTDIR)$(EXAMPLES_DIR)
  1126. -@INSTALL@ -m 0644 $(srcdir)/testHTML.c $(DESTDIR)$(EXAMPLES_DIR)
  1127. -@INSTALL@ -m 0644 $(srcdir)/testXPath.c $(DESTDIR)$(EXAMPLES_DIR)
  1128. uninstall-local:
  1129. rm -f $(DESTDIR)$(EXAMPLES_DIR)/testXPath.c
  1130. rm -f $(DESTDIR)$(EXAMPLES_DIR)/testHTML.c
  1131. rm -f $(DESTDIR)$(EXAMPLES_DIR)/testSAX.c
  1132. rm -f $(DESTDIR)$(EXAMPLES_DIR)/xmllint.c
  1133. rm -rf $(DESTDIR)$(EXAMPLES_DIR)
  1134. rm -f $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)/Copyright
  1135. rm -rf $(DESTDIR)$(BASE_DIR)/$(DOC_MODULE)
  1136. tst: tst.c
  1137. $(CC) $(CFLAGS) -Iinclude -o tst tst.c .libs/libxml2.a -lpthread -lm -lz
  1138. sparse: clean
  1139. $(MAKE) CC=cgcc
  1140. #
  1141. # Coverage support, largely borrowed from libvirt
  1142. # Both binaries comes from the lcov package in Fedora
  1143. #
  1144. LCOV = /usr/bin/lcov
  1145. GENHTML = /usr/bin/genhtml
  1146. cov: clean-cov
  1147. if [ "`echo $(LDFLAGS) | grep coverage`" = "" ] ; then \
  1148. echo not configured with coverage; exit 1 ; fi
  1149. if [ ! -x $(LCOV) -o ! -x $(GENHTML) ] ; then \
  1150. echo Need $(LCOV) and $(GENHTML) excecutables; exit 1 ; fi
  1151. -@($(MAKE) check)
  1152. -@(./runsuite$(EXEEXT))
  1153. mkdir $(top_builddir)/coverage
  1154. $(LCOV) -c -o $(top_builddir)/coverage/libxml2.info.tmp -d $(top_srcdir)
  1155. $(LCOV) -r $(top_builddir)/coverage/libxml2.info.tmp -o $(top_builddir)/coverage/libxml2.info *usr*
  1156. rm $(top_builddir)/coverage/libxml2.info.tmp
  1157. $(GENHTML) -s -t "libxml2" -o $(top_builddir)/coverage --legend $(top_builddir)/coverage/libxml2.info
  1158. echo "Coverage report is in $(top_builddir)/coverage/index.html"
  1159. clean-cov:
  1160. rm -rf $(top_builddir)/coverage