diff --git a/.gitignore b/.gitignore index 4b2f754d..06711a8d 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,6 @@ /runtest /runxmlconf /testModule -/testThreads /testapi /testchar /testdict diff --git a/CMakeLists.txt b/CMakeLists.txt index 29cfec17..d1a0af33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -502,7 +502,6 @@ if(LIBXML2_WITH_TESTS) testlimits testparser testrecurse - testThreads ) foreach(TEST ${TESTS}) add_executable(${TEST} ${TEST}.c) @@ -510,7 +509,7 @@ if(LIBXML2_WITH_TESTS) target_link_libraries(${TEST} LibXml2) endforeach() if(Threads_FOUND) - foreach(TEST runtest testThreads) + foreach(TEST runtest) target_link_libraries(${TEST} Threads::Threads) endforeach() endif() @@ -526,7 +525,6 @@ if(LIBXML2_WITH_TESTS) add_test(NAME testdict COMMAND testdict) add_test(NAME testparser COMMAND testparser) add_test(NAME testrecurse COMMAND testrecurse WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - add_test(NAME testThreads COMMAND testThreads WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) endif() if(LIBXML2_WITH_PYTHON) diff --git a/Makefile.am b/Makefile.am index d285540c..efc9c658 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,7 +19,6 @@ check_PROGRAMS = \ runtest \ runxmlconf \ testModule \ - testThreads \ testapi \ testchar \ testdict \ @@ -148,10 +147,6 @@ xmlcatalog_CFLAGS = $(AM_CFLAGS) $(RDL_CFLAGS) $(ICONV_CFLAGS) xmlcatalog_DEPENDENCIES = $(DEPS) xmlcatalog_LDADD = $(RDL_LIBS) $(LDADDS) -testThreads_SOURCES = testThreads.c -testThreads_DEPENDENCIES = $(DEPS) -testThreads_LDADD= $(BASE_THREAD_LIBS) $(THREAD_LIBS) $(LDADDS) - testModule_SOURCES=testModule.c testModule_DEPENDENCIES = $(DEPS) testModule_LDADD= $(LDADDS) @@ -184,7 +179,6 @@ check-local: $(CHECKER) ./testdict$(EXEEXT) $(CHECKER) ./testparser$(EXEEXT) $(CHECKER) ./testModule$(EXEEXT) - $(CHECKER) ./testThreads$(EXEEXT) $(CHECKER) ./runxmlconf$(EXEEXT) $(CHECKER) ./runsuite$(EXEEXT) diff --git a/doc/apibuild.py b/doc/apibuild.py index b9e29cc2..443f047f 100755 --- a/doc/apibuild.py +++ b/doc/apibuild.py @@ -23,7 +23,6 @@ ignored_files = { "libxml.h": "internal only", "rngparser.c": "not yet integrated", "testModule.c": "test tool", - "testThreads.c": "test tool", "testapi.c": "generated regression tests", "runtest.c": "regression tests program", "runsuite.c": "regression tests program", diff --git a/meson.build b/meson.build index b5010d16..214e435c 100644 --- a/meson.build +++ b/meson.build @@ -699,7 +699,6 @@ checks = [ 'runxmlconf', # Disabled for now, see #694 # 'testModule', - 'testThreads', 'testapi', 'testchar', 'testdict', diff --git a/runtest.c b/runtest.c index 665f2725..a299893d 100644 --- a/runtest.c +++ b/runtest.c @@ -4149,9 +4149,6 @@ c14n11WithoutCommentTest(const char *filename, * * ************************************************************************/ -/* - * mostly a cut and paste from testThreads.c - */ #define MAX_ARGC 20 typedef struct { @@ -4180,6 +4177,12 @@ thread_specific_data(void *private_data) const char *filename = params->filename; int okay = 1; + if (xmlCheckThreadLocalStorage() != 0) { + printf("xmlCheckThreadLocalStorage failed\n"); + params->okay = 0; + return(NULL); + } + #ifdef LIBXML_THREAD_ALLOC_ENABLED xmlMemSetup(xmlMemFree, xmlMemMalloc, xmlMemRealloc, xmlMemoryStrdup); #endif diff --git a/testThreads.c b/testThreads.c deleted file mode 100644 index fd1f8853..00000000 --- a/testThreads.c +++ /dev/null @@ -1,174 +0,0 @@ -#include "config.h" -#include -#include - -#include -#include - -#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED) -#include -#ifdef HAVE_PTHREAD_H -#include -#elif defined(_WIN32) -#include -#endif -#include -#include - -#define MAX_ARGC 20 -#define TEST_REPEAT_COUNT 500 -#ifdef HAVE_PTHREAD_H -static pthread_t tid[MAX_ARGC]; -#elif defined(_WIN32) -static HANDLE tid[MAX_ARGC]; -#endif - -typedef struct { - const char *filename; - int okay; -} xmlThreadParams; - -static const char *catalog = "test/threads/complex.xml"; -static xmlThreadParams threadParams[] = { - { "test/threads/abc.xml", 0 }, - { "test/threads/acb.xml", 0 }, - { "test/threads/bac.xml", 0 }, - { "test/threads/bca.xml", 0 }, - { "test/threads/cab.xml", 0 }, - { "test/threads/cba.xml", 0 }, - { "test/threads/invalid.xml", 0 } -}; -static const unsigned int num_threads = sizeof(threadParams) / - sizeof(threadParams[0]); - -static void * -thread_specific_data(void *private_data) -{ - xmlDocPtr myDoc; - xmlThreadParams *params = (xmlThreadParams *) private_data; - const char *filename = params->filename; - int okay = 1; - int options = 0; - - if (xmlCheckThreadLocalStorage() != 0) { - printf("xmlCheckThreadLocalStorage failed\n"); - params->okay = 0; - return(NULL); - } - - if (strcmp(filename, "test/threads/invalid.xml") != 0) { - options |= XML_PARSE_DTDVALID; - } - myDoc = xmlReadFile(filename, NULL, options); - if (myDoc) { - xmlFreeDoc(myDoc); - } else { - printf("parse failed\n"); - okay = 0; - } - params->okay = okay; - return(NULL); -} - -#ifdef _WIN32 -static DWORD WINAPI -win32_thread_specific_data(void *private_data) -{ - thread_specific_data(private_data); - return(0); -} -#endif -#endif /* LIBXML_THREADS_ENABLED */ - -int -main(void) -{ - unsigned int repeat; - int status = 0; - - (void) repeat; - - xmlInitParser(); - - if (xmlCheckThreadLocalStorage() != 0) { - printf("xmlCheckThreadLocalStorage failed for main thread\n"); - return(1); - } - -#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED) - for (repeat = 0;repeat < TEST_REPEAT_COUNT;repeat++) { - unsigned int i; - int ret; - - xmlLoadCatalog(catalog); - -#ifdef HAVE_PTHREAD_H - memset(tid, 0xff, sizeof(*tid)*num_threads); - - for (i = 0; i < num_threads; i++) { - ret = pthread_create(&tid[i], NULL, thread_specific_data, - (void *) &threadParams[i]); - if (ret != 0) { - perror("pthread_create"); - exit(1); - } - } - for (i = 0; i < num_threads; i++) { - void *result; - ret = pthread_join(tid[i], &result); - if (ret != 0) { - perror("pthread_join"); - exit(1); - } - } -#elif defined(_WIN32) - for (i = 0; i < num_threads; i++) - { - tid[i] = (HANDLE) -1; - } - - for (i = 0; i < num_threads; i++) - { - DWORD useless; - tid[i] = CreateThread(NULL, 0, - win32_thread_specific_data, &threadParams[i], 0, &useless); - if (tid[i] == NULL) - { - perror("CreateThread"); - exit(1); - } - } - - if (WaitForMultipleObjects (num_threads, tid, TRUE, INFINITE) == WAIT_FAILED) - perror ("WaitForMultipleObjects failed"); - - for (i = 0; i < num_threads; i++) - { - DWORD exitCode; - ret = GetExitCodeThread (tid[i], &exitCode); - if (ret == 0) - { - perror("GetExitCodeThread"); - exit(1); - } - CloseHandle (tid[i]); - } -#endif /* pthreads */ - - xmlCatalogCleanup(); - - for (i = 0; i < num_threads; i++) { - if (threadParams[i].okay == 0) { - printf("Thread %d handling %s failed\n", i, - threadParams[i].filename); - status = 1; - } - } - } -#endif /* LIBXML_THREADS_ENABLED */ - - xmlCleanupParser(); - - return (status); -} - diff --git a/win32/Makefile.bcb b/win32/Makefile.bcb index be615b70..a7718f22 100644 --- a/win32/Makefile.bcb +++ b/win32/Makefile.bcb @@ -206,12 +206,6 @@ UTILS = $(BINDIR)\xmllint.exe\ $(BINDIR)\testapi.exe\ $(BINDIR)\testlimits.exe - -!if "$(WITH_THREADS)" != "no" -UTILS = $(UTILS) $(BINDIR)\testThreads.exe -!endif - - all : libxml libxmla utils libxml : $(BINDIR)\$(XML_SO) diff --git a/win32/Makefile.mingw b/win32/Makefile.mingw index ea276455..e1f3f07d 100644 --- a/win32/Makefile.mingw +++ b/win32/Makefile.mingw @@ -190,10 +190,6 @@ UTILS = $(BINDIR)/xmllint.exe\ $(BINDIR)/testapi.exe\ $(BINDIR)/testlimits.exe -ifneq ($(WITH_THREADS),no) -UTILS += $(BINDIR)/testThreads.exe -endif - all : dep libxml libxmla utils libxml : $(BINDIR)/$(XML_SO) diff --git a/win32/Makefile.msvc b/win32/Makefile.msvc index 03cb5391..24ee9738 100644 --- a/win32/Makefile.msvc +++ b/win32/Makefile.msvc @@ -254,10 +254,6 @@ UTILS = $(BINDIR)\xmllint.exe\ $(BINDIR)\testlimits.exe\ $(BINDIR)\testrecurse.exe -!if "$(WITH_THREADS)" != "no" -UTILS = $(UTILS) $(BINDIR)\testThreads.exe -!endif - !if "$(VCMANIFEST)" == "1" _VC_MANIFEST_EMBED_EXE= if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 _VC_MANIFEST_EMBED_DLL= if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2