2018-12-10 07:21 UTC

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0002622Hubbub[All Projects] Generalpublic2018-09-28 10:00
ReporterJ. Peter Mugaas 
Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusnewResolutionopen 
Platformmingw-w64OSWindowsOS Version10
Product Version0.3.1 
Target VersionFixed in Version 
Summary0002622: 0.3.5 - New cmake-based build system for libhubbub
DescriptionI have made a cmake based build-system for libhubbub. This one works fairly well on Windows and also compiles in the MSYS2 environment. I could not use the netsurf-buildsystem due to issues I discussed.

Some tests still don't work but that is in the source-code and test programs. About 85% of the tests work but I am able to run tests. Sorry the file so lengthy because I wanted everything to be contained in it so that I could use it in a Win32 package with as few files as possible and I as I say, I don't want to use the netsurf-buildsystem (I have very little faith in it working on Windows). This does build both static and shared libraries in Windows including putting resource information into the .DLL and it does create a pkg-config file.

But in any case, it is a good start to try to port some of the libraries to Windows for reuse in various software. Please feel free to use, modify, and reuse the work I did on it. It's my gift everyone (my way of paying back).

Incidentally, it turns out that some tests don't require json-c. If a user doesn't have that installed, the subset that will compile are used (some is better than none).

Share and enjoy!!!
TagsNo tags attached.
Fixed in CI build #
Reported in CI build #
Attached Files
  • txt file icon CMakeLists.txt (51,879 bytes) 2018-09-25 09:10 -
    cmake_minimum_required (VERSION 2.8.4)
    project (libhubbub)
    include(FindPerl)
    include(GNUInstallDirs)
    include(FindPkgConfig)
    enable_testing()
    include( CTest )
    
    #Obligitory version and copyright for pkg-config file and version info
    #as well as possibly, automated installers.
    set(HUBBUB_COMPONENT_NAME "hubbub")
    set(HUBBUB_AUTHOR "John-Mark Bell <jmb@netsurf-browser.org>")
    set(HUBBUB_COPYRIGHT "Copyright 2009-2015 John-Mark Bell <jmb@netsurf-browser.org>")
    set(HUBBUB_DESCRIPTION "HTML5 parsing library")
    set(HUBBUB_VERSION_MAJOR 0)
    set(HUBBUB_VERSION_MINOR 3)
    set(HUBBUB_VERSION_PATCH 5)
    set(HUBBUB_SOVERSION ${HUBBUB_VERSION_MAJOR}.${HUBBUB_VERSION_MINOR}.${HUBBUB_VERSION_PATCH})
    
    #Do not prefix BUILD_SHARED_LIBS and BUILD_STATIC_LIBS because those are standard cmake options
    #We only put them in the menu for convenience.
    option(BUILD_SHARED_LIBS "Build shared libraries" ON)
    option(BUILD_STATIC_LIBS "Build static libraries" ON)
    option(HUBBUB_WITH_PKGCONFIG_SUPPORT "Generate and install .pc files" ON)
    
    if(NOT PERL_FOUND)
      message(FATAL_ERROR "Perl is required")
    endif()
    
    set(HUBBUB_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
    set(HUBBUB_ADDITIONAL_C_FILES
       ${CMAKE_SOURCE_DIR}/src/parser.c
       ${CMAKE_SOURCE_DIR}/src/charset/detect.c
       ${CMAKE_SOURCE_DIR}/src/charset/detect.h
       ${CMAKE_SOURCE_DIR}/src/tokeniser/entities.c
       ${CMAKE_SOURCE_DIR}/src/tokeniser/entities.h
       ${CMAKE_SOURCE_DIR}/src/tokeniser/tokeniser.c
       ${CMAKE_SOURCE_DIR}/src/tokeniser/tokeniser.h
       ${CMAKE_SOURCE_DIR}/src/treebuilder/after_after_body.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/after_after_frameset.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/after_body.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/after_frameset.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/after_head.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/before_head.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/before_html.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/generic_rcdata.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/in_body.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/in_caption.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/in_cell.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/in_column_group.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/in_foreign_content.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/in_frameset.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/in_head.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/in_head_noscript.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/in_row.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/in_select.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/in_select_in_table.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/in_table.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/in_table_body.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/initial.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/internal.h
       ${CMAKE_SOURCE_DIR}/src/treebuilder/modes.h
       ${CMAKE_SOURCE_DIR}/src/treebuilder/treebuilder.c
       ${CMAKE_SOURCE_DIR}/src/treebuilder/treebuilder.h
       ${CMAKE_SOURCE_DIR}/src/utils/errors.c
       ${CMAKE_SOURCE_DIR}/src/utils/parserutilserror.h
       ${CMAKE_SOURCE_DIR}/src/utils/string.c
       ${CMAKE_SOURCE_DIR}/src/utils/string.h
       ${CMAKE_SOURCE_DIR}/src/utils/utils.h
    )
    set(HUBBUB_PUBLIC_HEADER_FILES
       include/hubbub/errors.h
       include/hubbub/functypes.h
       include/hubbub/hubbub.h
       include/hubbub/parser.h
       include/hubbub/tree.h
       include/hubbub/types.h)
    
    # From: https://gitlab.kitware.com/cmake/community/wikis/contrib/macros/TestInline
    # Inspired from /usr/share/autoconf/autoconf/c.m4
    # I put it here to replace the GCCISM inline="__inline__"
    set(TEST_C "/* Test source lifted from /usr/share/autoconf/autoconf/c.m4 */
    typedef int foo_t;
    static inline foo_t static_foo(){return 0;}
    foo_t foo(){return 0;}
    int main(int argc, char *argv[]){return 0;}")
    file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_inline.c "${TEST_C}")
    FOREACH(KEYWORD "inline" "__inline__" "__inline")
       IF(NOT DEFINED C_INLINE)
         TRY_COMPILE(C_HAS_${KEYWORD} "${CMAKE_CURRENT_BINARY_DIR}"
           "${CMAKE_CURRENT_BINARY_DIR}/test_inline.c"
           COMPILE_DEFINITIONS "-Dinline=${KEYWORD}")
         IF(C_HAS_${KEYWORD})
           SET(C_INLINE TRUE)
           ADD_DEFINITIONS("-Dinline=${KEYWORD}")
         ENDIF(C_HAS_${KEYWORD})
       ENDIF(NOT DEFINED C_INLINE)
    ENDFOREACH(KEYWORD)
    IF(NOT DEFINED C_INLINE)
       ADD_DEFINITIONS("-Dinline=")
    ENDIF(NOT DEFINED C_INLINE)
    file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/test_inline.c)
    
    if(CMAKE_COMPILER_IS_GNUCC)
      set(HUBBUB_WARNFLAGS -Wall -W -Wundef -Wpointer-arith -Wcast-align
            -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes 
            -Wmissing-declarations -Wnested-externs -pedantic)
    endif(CMAKE_COMPILER_IS_GNUCC)
    
    execute_process(WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
    COMMAND ${PERL_EXECUTABLE} ${CMAKE_SOURCE_DIR}/build/make-entities.pl ${CMAKE_SOURCE_DIR}/build/Entities)
    include_directories(${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/include)
    # setup any additional libs required by this.
    set(HUBBUB_ADDITIONAL_LIBS "")
    set(HUBBUB_ADDITIONAL_DIRS "")
    set(HUBBUB_ADDITIONAL_DEFS "")
    
    #pkg_check_modules
    if(PKG_CONFIG_FOUND)
        pkg_check_modules(libparserutils REQUIRED libparserutils)
        list(APPEND HUBBUB_ADDITIONAL_DIRS ${libparserutils_INCLUDEDIR})
        list(APPEND HUBBUB_ADDITIONAL_LIBS ${libparserutils_LIBRARIES})
    else()
        find_library(parserutils HUBBUB_HUBBUB_LIB)
        if (HUBBUB_HUBBUB_LIB)
          list(APPEND HUBBUB_ADDITIONAL_LIBS ${HUBBUB_HUBBUB_LIB})
        else()
          message(FATAL_ERROR "Parseutils not found")
        endif(HUBBUB_HUBBUB_LIB)
    endif(PKG_CONFIG_FOUND)
    
    if(BUILD_SHARED_LIBS)
       if(CMAKE_RC_COMPILER)
      # Make .rc file  
      		set(HUBBUB_RC_CONTENTS "1 VERSIONINFO
    FILEVERSION     ${HUBBUB_VERSION_MAJOR},${HUBBUB_VERSION_MINOR},${HUBBUB_VERSION_PATCH},0
    PRODUCTVERSION  ${HUBBUB_VERSION_MAJOR},${HUBBUB_VERSION_MINOR},${HUBBUB_VERSION_PATCH},0
    BEGIN
      BLOCK \"StringFileInfo\"
      BEGIN
        BLOCK \"040904E4\"
        BEGIN
          VALUE \"CompanyName\", \"${HUBBUB_AUTHOR}\"
          VALUE \"FileDescription\", \"${HUBBUB_DESCRIPTION}\"
          VALUE \"FileVersion\", \"${HUBBUB_VERSION_MAJOR}.${HUBBUB_VERSION_MINOR}.${HUBBUB_VERSION_PATCH}\"
          VALUE \"InternalName\", \"${CMAKE_SHARED_MODULE_PREFIX}${HUBBUB_COMPONENT_NAME}\"
          VALUE \"LegalCopyright\", \"${HUBBUB_COPYRIGHT}\"
          VALUE \"OriginalFilename\", \"${CMAKE_SHARED_MODULE_PREFIX}${HUBBUB_COMPONENT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}\"
          VALUE \"ProductName\", \"${HUBBUB_COMPONENT_NAME}\"
          VALUE \"ProductVersion\", \"${HUBBUB_VERSION_MAJOR}.${HUBBUB_VERSION_MINOR}.${HUBBUB_VERSION_PATCH}\"
        END
      END
      BLOCK \"VarFileInfo\"
      BEGIN
        VALUE \"Translation\", 0x409, 1252
      END
    END")
        FILE(WRITE ${HUBBUB_BUILD_DIR}/lib${HUBBUB_COMPONENT_NAME}.rc "${HUBBUB_RC_CONTENTS}")
        add_library(libhubbub_shared SHARED ${HUBBUB_PUBLIC_HEADER_FILES} ${HUBBUB_ADDITIONAL_C_FILES} lib${HUBBUB_COMPONENT_NAME}.rc)
      else()
        add_library(libhubbub_shared SHARED ${HUBBUB_PUBLIC_HEADER_FILES} ${HUBBUB_ADDITIONAL_C_FILES} SOVERSION ${HUBBUB_SOVERSION})
      endif()
      set_target_properties(libhubbub_shared PROPERTIES OUTPUT_NAME ${HUBBUB_COMPONENT_NAME})
      if(HUBBUB_ADDITIONAL_LIBS)
        target_link_libraries(libhubbub_shared PUBLIC ${HUBBUB_ADDITIONAL_LIBS}) 
      endif(HUBBUB_ADDITIONAL_LIBS)
      if(HUBBUB_ADDITIONAL_DIRS)
        target_include_directories(libhubbub_shared PUBLIC ${HUBBUB_ADDITIONAL_DIRS})
      endif(HUBBUB_ADDITIONAL_DIRS)
      if(HUBBUB_ADDITIONAL_DEFS)
        target_include_directories(libhubbub_shared PUBLIC ${HUBBUB_ADDITIONAL_DEFS})
      endif(HUBBUB_ADDITIONAL_DEFS)
      if(CMAKE_COMPILER_IS_GNUCC)
        target_compile_options(libhubbub_shared PRIVATE ${WAPCAPLET_WARNFLAGS})
      endif(CMAKE_COMPILER_IS_GNUCC)
      install(TARGETS libhubbub_shared
          RUNTIME DESTINATION bin
          LIBRARY DESTINATION lib
          ARCHIVE DESTINATION lib)
    endif(BUILD_SHARED_LIBS)
    if(BUILD_STATIC_LIBS)
      add_library(libhubbub_static STATIC ${HUBBUB_PUBLIC_HEADER_FILES} ${HUBBUB_ADDITIONAL_C_FILES})
      set_target_properties(libhubbub_static PROPERTIES OUTPUT_NAME ${HUBBUB_COMPONENT_NAME})
      if(HUBBUB_ADDITIONAL_LIBS)
        target_link_libraries(libhubbub_static PUBLIC ${HUBBUB_ADDITIONAL_LIBS}) 
      endif(HUBBUB_ADDITIONAL_LIBS)
      if(CMAKE_COMPILER_IS_GNUCC)
        target_compile_options(libhubbub_static PRIVATE ${WAPCAPLET_WARNFLAGS})
      endif(CMAKE_COMPILER_IS_GNUCC)
      if(HUBBUB_ADDITIONAL_DIRS)
        target_include_directories(libhubbub_static PUBLIC ${HUBBUB_ADDITIONAL_DIRS})
      endif(HUBBUB_ADDITIONAL_DIRS)
      if(HUBBUB_ADDITIONAL_DEFS)
        target_include_directories(libhubbub_static PUBLIC ${HUBBUB_ADDITIONAL_DEFS})
      endif(HUBBUB_ADDITIONAL_DEFS)
      install(TARGETS libhubbub_static
          RUNTIME DESTINATION bin
          LIBRARY DESTINATION lib
          ARCHIVE DESTINATION lib)
    endif(BUILD_STATIC_LIBS)
    
    #from: https://cmake.org/pipermail/cmake/2010-October/040246.html
    #This installs the headers into our hierarchy in the include file.
    foreach(HUBBUB_HEADER ${HUBBUB_PUBLIC_HEADER_FILES})
       string(REGEX MATCH "(.*)[/\\]" HUBBUB_DIR ${HUBBUB_HEADER})
       install(FILES ${HUBBUB_HEADER} DESTINATION ${HUBBUB_DIR})
    endforeach(HUBBUB_HEADER ${HUBBUB_PUBLIC_HEADER_FILES})
    
    if(HUBBUB_WITH_PKGCONFIG_SUPPORT)
      set(HUBBUB_PC ${HUBBUB_BUILD_DIR}/lib${HUBBUB_COMPONENT_NAME}.pc)
    
      # This stuff is necessary to ensure that the dependency list
      # in our .pc file is in the proper format
    #Make pkg-config
      set(HUBBUB_PC_EXC "${CMAKE_INSTALL_PREFIX}")
      set(HUBBUB_PC_INC "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
      set(HUBBUB_PC_LIB "${CMAKE_INSTALL_FULL_LIBDIR}")
      if("${HUBBUB_PC_EXC}" STREQUAL "${CMAKE_INSTALL_PREFIX}")
        set(HUBBUB_PC_EXC "\${prefix}")
      endif()
      if ("${HUBBUB_PC_INC}" STREQUAL "${CMAKE_INSTALL_PREFIX}/include")
        set(HUBBUB_PC_INC "\${prefix}/include")
      endif()
      if ("${HUBBUB_PC_LIB}" STREQUAL "${CMAKE_INSTALL_PREFIX}/lib")
        set(HUBBUB_PC_LIB "\${exec_prefix}/lib")
      endif()
      set(HUBBUB_PKGCONF_HUBBUB_DEPS "")
      foreach(HUBBUB_LIB_DEP ${HUBBUB_LIB_DEPEND_LIBS})
        set(HUBBUB_PKGCONF_HUBBUB_DEPS "${HUBBUB_PKGCONF_HUBBUB_DEPS} -l${HUBBUB_LIB_DEP}")
      endforeach(HUBBUB_LIB_DEP)
    
      set(HUBBUB_PKGCONFIG_CONTENTS "prefix=${CMAKE_INSTALL_PREFIX}
    exec_prefix=${HUBBUB_PC_EXC}
    libdir=${HUBBUB_PC_LIB}
    includedir=${HUBBUB_PC_INC}
    
    Name: lib${HUBBUB_COMPONENT_NAME}
    Description: ${HUBBUB_DESCRIPTION}
    URL: http://www.netsurf-browser.org/projects/lib${HUBBUB_DESCRIPTION}/
    Version: ${HUBBUB_SOVERSION}
    Requires: libparserutils
    Cflags: -I\${includedir}
    Libs: -L\${libdir} -l${HUBBUB_COMPONENT_NAME}
    Libs.private: ${HUBBUB_PKGCONF_HUBBUB_DEPS}
    ")
      file(WRITE ${HUBBUB_PC} ${HUBBUB_PKGCONFIG_CONTENTS})
      install(FILES ${HUBBUB_PC} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
    endif(HUBBUB_WITH_PKGCONFIG_SUPPORT)
    
    #
    # Test section
    #
    if(PKG_CONFIG_FOUND)
        pkg_check_modules(json-c json-c)
        if(NOT json-c_FOUND)
          message(WARNING "json-c (json-cpp) is required for some tests.  Download it at:
    https://github.com/open-source-parsers/jsoncpp 
    Disabling tests that require this library")
        endif(NOT json-c_FOUND)
    endif(PKG_CONFIG_FOUND)
    
    if(BUILD_SHARED_LIBS)
    
        add_executable(entities_shared ${CMAKE_SOURCE_DIR}/test/entities.c)
        target_link_libraries(entities_shared libhubbub_shared)
        add_test(NAME Named_entity_dictionary_shared COMMAND entities_shared)
    
        add_executable(csdetect_shared ${CMAKE_SOURCE_DIR}/test/csdetect.c)
        target_link_libraries(csdetect_shared libhubbub_shared)
        add_test(NAME Charset_detection_shared__UTF_Byte_Order_Mark_detection_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/csdetect
           COMMAND csdetect_shared bom.dat)
        add_test(NAME Charset_detection_shared__Tests_for_meta_charsets_claiming_to_be_non-ASCII
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/csdetect
           COMMAND csdetect_shared test-yahoo-jp.dat)
        add_test(NAME Charset_detection_shared__Assorted_tests,_including_edge_cases,_from_html5lib
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/csdetect
           COMMAND csdetect_shared tests1.dat)
        add_test(NAME Charset_detection_shared__Further_tests_from_html5lib
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/csdetect
           COMMAND csdetect_shared tests2.dat)
        add_test(NAME Charset_detection_shared__Regression_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/csdetect
           COMMAND csdetect_shared regression.dat)
        add_test(NAME Charset_detection_shared__Character_encoding_overrides_from_8.2.2.2.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/csdetect
           COMMAND csdetect_shared overrides.dat)
    
        add_executable(parser_shared ${CMAKE_SOURCE_DIR}/test/parser.c)
        target_link_libraries(parser_shared libhubbub_shared)
        add_test(NAME Public_parser_API_shared__HTML5_tree_construction_algorithm
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared section-tree-construction.html)
        add_test(NAME Public_parser_API_shared__HTML5_specification
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared \#web-apps.html)
        add_test(NAME Public_parser_API_shared__Page_with_initial_</html>
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared initial-close-tag.html)
        add_test(NAME Public_parser_API_shared__HTML_document_that_breaks_libxml's_HTML_parser
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared \#phonecalls.html)
        add_test(NAME Public_parser_API_shared__Misnested_tags
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared misnested.html)
        add_test(NAME Public_parser_API_shared__Test_of_<isindex>_parsing
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared isindex.html)
        add_test(NAME Public_parser_API_shared__http://www.danmarks.net/firmaer.phtml?idxno=1418&letter=F
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared \#firmaer.phtml)
        add_test(NAME Public_parser_API_shared__http://www.secinfo.com/d11MXs.2WQ9.d.htm
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared \#d11MXs.2WQ9.d.htm)
        add_test(NAME Public_parser_API_shared__Regression_test_for_script_collection
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared regression-script-collect.html)
        add_test(NAME Public_parser_API_shared__Mangleme_page_caused_assertion,_fixed_in_r5093.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared mangleme.1.html)
        add_test(NAME Public_parser_API_shared__Mangleme_page_caused_segfault,_fixed_in_r5098.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared mangleme.2.html)
        add_test(NAME Public_parser_API_shared__Mangleme_page_caused_assertion,_fixed_in_r5086.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared mangleme.3.html)
        add_test(NAME Public_parser_API_shared__Segfault_page_fixed_in_r5104.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared www.fhis.ubc.ca.html)
        add_test(NAME Public_parser_API_shared__Segfault_page_fixed_in_r5106.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared ccr.coriell.org.html)
        add_test(NAME Public_parser_API_shared__Segfault_in_treebuilder_fixed_in_r5125.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared wbh.co.uk.html)
        add_test(NAME Public_parser_API_shared__Segfault_in_current_node
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared www.directline.com.html)
        add_test(NAME Public_parser_API_shared__Abort_in_token_emitter_fixed_in_r5146.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared www.hanazonohifuku.com.html)
        add_test(NAME Public_parser_API_shared__Abort_in_generic_end_tag_handling_fixed_in_r6746.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_shared DocumentIndex.jsp)
    
        add_executable(tokeniser_shared ${CMAKE_SOURCE_DIR}/test/tokeniser.c)
        target_link_libraries(tokeniser_shared libhubbub_shared)
        add_test(NAME HTML_tokeniser_shared__HTML5_tree_construction_algorithm
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared section-tree-construction.html)
        add_test(NAME HTML_tokeniser_shared__HTML5_specification
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared \#web-apps.html)
        add_test(NAME HTML_tokeniser_shared__Page_with_initial_</html>
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared initial-close-tag.html)
        add_test(NAME HTML_tokeniser_shared__HTML_document_that_breaks_libxml's_HTML_parser
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared \#phonecalls.html)
        add_test(NAME HTML_tokeniser_shared__Misnested_tags
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared misnested.html)
        add_test(NAME HTML_tokeniser_shared__Test_of_<isindex>_parsing
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared isindex.html)
        add_test(NAME HTML_tokeniser_shared__http://www.danmarks.net/firmaer.phtml?idxno=1418&letter=F
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared \#firmaer.phtml)
        add_test(NAME HTML_tokeniser_shared__http://www.secinfo.com/d11MXs.2WQ9.d.htm
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared \#d11MXs.2WQ9.d.htm)
        add_test(NAME HTML_tokeniser_shared__Regression_test_for_script_collection
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared regression-script-collect.html)
        add_test(NAME HTML_tokeniser_shared__Mangleme_page_caused_assertion,_fixed_in_r5093.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared mangleme.1.html)
        add_test(NAME HTML_tokeniser_shared__Mangleme_page_caused_segfault,_fixed_in_r5098.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared mangleme.2.html)
        add_test(NAME HTML_tokeniser_shared__Mangleme_page_caused_assertion,_fixed_in_r5086.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared mangleme.3.html)
        add_test(NAME HTML_tokeniser_shared__Segfault_page_fixed_in_r5104.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared www.fhis.ubc.ca.html)
        add_test(NAME HTML_tokeniser_shared__Segfault_page_fixed_in_r5106.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared ccr.coriell.org.html)
        add_test(NAME HTML_tokeniser_shared__Segfault_in_treebuilder_fixed_in_r5125.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared wbh.co.uk.html)
        add_test(NAME HTML_tokeniser_shared__Segfault_in_current_node
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared www.directline.com.html)
        add_test(NAME HTML_tokeniser_shared__Abort_in_token_emitter_fixed_in_r5146.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared www.hanazonohifuku.com.html)
        add_test(NAME HTML_tokeniser_shared__Abort_in_generic_end_tag_handling_fixed_in_r6746.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_shared DocumentIndex.jsp)
    
      if(json-c_FOUND)
        add_executable(tokeniser2_shared ${CMAKE_SOURCE_DIR}/test/tokeniser2.c)
        target_link_libraries(tokeniser2_shared libhubbub_shared ${json-c_LIBRARIES})
        target_include_directories(tokeniser2_shared SYSTEM PUBLIC ${json-c_INCLUDE_DIRS})
        add_test(NAME HTML_tokeniser_again_shared__html5lib_tests_part_1
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_shared test1.test)
        add_test(NAME HTML_tokeniser_again_shared__html5lib_tests_part_2
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_shared test2.test)
        add_test(NAME HTML_tokeniser_again_shared__html5lib_tests_part_3
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_shared test3.test)
        add_test(NAME HTML_tokeniser_again_shared__html5lib_tests_part_4
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_shared test4.test)
        add_test(NAME HTML_tokeniser_again_shared__html5lib_content_model_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_shared contentModelFlags.test)
        add_test(NAME HTML_tokeniser_again_shared__html5lib_entity_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_shared entities.test)
        add_test(NAME HTML_tokeniser_again_shared__html5lib_escape_flag_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_shared escapeFlag.test)
        add_test(NAME HTML_tokeniser_again_shared__html5lib_numeric_entities_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_shared numericEntities.test)
        add_test(NAME HTML_tokeniser_again_shared__html5lib_unicode_character_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_shared \#unicodeChars.test)
        add_test(NAME HTML_tokeniser_again_shared__CDATA_section_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_shared cdata.test)
        add_test(NAME HTML_tokeniser_again_shared__Regression_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_shared regression.test)
    
        add_executable(tokeniser3_shared ${CMAKE_SOURCE_DIR}/test/tokeniser3.c)
        target_link_libraries(tokeniser3_shared libhubbub_shared ${json-c_LIBRARIES})
        target_include_directories(tokeniser3_shared SYSTEM PUBLIC ${json-c_INCLUDE_DIRS})
        add_test(NAME HTML_tokeniser_byte-by-byte_shared__html5lib_tests_part_1
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_shared test1.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_shared__html5lib_tests_part_2
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_shared test2.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_shared__html5lib_tests_part_3
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_shared test3.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_shared__html5lib_tests_part_4
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_shared test4.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_shared__html5lib_content_model_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_shared contentModelFlags.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_shared__html5lib_entity_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_shared entities.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_shared__html5lib_escape_flag_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_shared escapeFlag.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_shared__html5lib_numeric_entities_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_shared numericEntities.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_shared__html5lib_unicode_character_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_shared \#unicodeChars.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_shared__CDATA_section_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_shared cdata.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_shared__Regression_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_shared regression.test)
        endif(json-c_FOUND)
    #out of order
        add_executable(tree_shared ${CMAKE_SOURCE_DIR}/test/tree.c)
        target_link_libraries(tree_shared libhubbub_shared)
        add_test(NAME Treebuilding_API_shared__HTML5_tree_construction_algorithm
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared section-tree-construction.html)
        add_test(NAME Treebuilding_API_shared__HTML5_specification
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared \#web-apps.html)
        add_test(NAME Treebuilding_API_shared__Page_with_initial_</html>
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared initial-close-tag.html)
        add_test(NAME Treebuilding_API_shared__HTML_document_that_breaks_libxml's_HTML_parser
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared \#phonecalls.html)
        add_test(NAME Treebuilding_API_shared__Misnested_tags
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared misnested.html)
        add_test(NAME Treebuilding_API_shared__Test_of_<isindex>_parsing
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared isindex.html)
        add_test(NAME Treebuilding_API_shared__http://www.danmarks.net/firmaer.phtml?idxno=1418&letter=F
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared \#firmaer.phtml)
        add_test(NAME Treebuilding_API_shared__http://www.secinfo.com/d11MXs.2WQ9.d.htm
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared \#d11MXs.2WQ9.d.htm)
        add_test(NAME Treebuilding_API_shared__Regression_test_for_script_collection
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared regression-script-collect.html)
        add_test(NAME Treebuilding_API_shared__Mangleme_page_caused_assertion,_fixed_in_r5093.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared mangleme.1.html)
        add_test(NAME Treebuilding_API_shared__Mangleme_page_caused_segfault,_fixed_in_r5098.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared mangleme.2.html)
        add_test(NAME Treebuilding_API_shared__Mangleme_page_caused_assertion,_fixed_in_r5086.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared mangleme.3.html)
        add_test(NAME Treebuilding_API_shared__Segfault_page_fixed_in_r5104.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared www.fhis.ubc.ca.html)
        add_test(NAME Treebuilding_API_shared__Segfault_page_fixed_in_r5106.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared ccr.coriell.org.html)
        add_test(NAME Treebuilding_API_shared__Segfault_in_treebuilder_fixed_in_r5125.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared wbh.co.uk.html)
        add_test(NAME Treebuilding_API_shared__Segfault_in_current_node
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared www.directline.com.html)
        add_test(NAME Treebuilding_API_shared__Abort_in_token_emitter_fixed_in_r5146.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared www.hanazonohifuku.com.html)
        add_test(NAME Treebuilding_API_shared__Abort_in_generic_end_tag_handling_fixed_in_r6746.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_shared DocumentIndex.jsp)
    
        add_executable(tree2_shared ${CMAKE_SOURCE_DIR}/test/tree2.c)
        target_link_libraries(tree2_shared libhubbub_shared)
        add_test(NAME Treebuilding_API_shared__html5lib__tests_tests1.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared tests1.dat)
        add_test(NAME Treebuilding_API_shared__html5lib__tests_tests2.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared tests2.dat)
        add_test(NAME Treebuilding_API_shared__html5lib__tests_tests3.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared tests3.dat)
        add_test(NAME Treebuilding_API_shared__html5lib__tests_tests4.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared tests4.dat)
        add_test(NAME Treebuilding_API_shared__html5lib__tests_tests5.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared tests5.dat)
        add_test(NAME Treebuilding_API_shared__html5lib__tests_tests6.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared tests6.dat)
        add_test(NAME Treebuilding_API_shared__html5lib__tests_tests7.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared tests7.dat)
        add_test(NAME Treebuilding_API_shared__html5lib__tests_tests8.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared tests8.dat)
        add_test(NAME Treebuilding_API_shared__html5lib__tests_tests9.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared tests9.dat)
        add_test(NAME Treebuilding_API_shared__html5lib__tests_tests10.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared tests10.dat)
        add_test(NAME Treebuilding_API_shared__html5lib__tests_tests11.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared tests11.dat)
        add_test(NAME Treebuilding_API_shared__html5lib__tests_tests12.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared tests12.dat)
        add_test(NAME Treebuilding_API_shared__Tests_after_after_body_mode
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared after-after-body.dat)
        add_test(NAME Treebuilding_API_shared__Tests_after_after_frameset_mode
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared after-after-frameset.dat)
        add_test(NAME Treebuilding_API_shared__Tests_after_body_mode
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared after-body.dat)
        add_test(NAME Treebuilding_API_shared__Regression_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_shared regression.dat)
    
        add_executable(tree-buf_shared ${CMAKE_SOURCE_DIR}/test/tree-buf.c)
        target_link_libraries(tree-buf_shared libhubbub_shared)
        add_test(NAME Treebuilder_specified_chunks_shared__Basic_test_of_test_driver
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-chunks/
           COMMAND tree-buf_shared basic.dat)
        add_test(NAME Treebuilder_specified_chunks_shared__Entity_test
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-chunks/
           COMMAND tree-buf_shared entitytest.html)
    
    endif(BUILD_SHARED_LIBS)
    
    if(BUILD_STATIC_LIBS)
    
        add_executable(entities_static ${CMAKE_SOURCE_DIR}/test/entities.c)
        target_link_libraries(entities_static libhubbub_static)
        add_test(NAME Named_entity_dictionary_static COMMAND entities_static)
    
        add_executable(csdetect_static ${CMAKE_SOURCE_DIR}/test/csdetect.c)
        target_link_libraries(csdetect_static libhubbub_static)
        add_test(NAME Charset_detection_static__UTF_Byte_Order_Mark_detection_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/csdetect
           COMMAND csdetect_static bom.dat)
        add_test(NAME Charset_detection_static__Tests_for_meta_charsets_claiming_to_be_non-ASCII
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/csdetect
           COMMAND csdetect_static test-yahoo-jp.dat)
        add_test(NAME Charset_detection_static__Assorted_tests,_including_edge_cases,_from_html5lib
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/csdetect
           COMMAND csdetect_static tests1.dat)
        add_test(NAME Charset_detection_static__Further_tests_from_html5lib
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/csdetect
           COMMAND csdetect_static tests2.dat)
        add_test(NAME Charset_detection_static__Regression_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/csdetect
           COMMAND csdetect_static regression.dat)
        add_test(NAME Charset_detection_static__Character_encoding_overrides_from_8.2.2.2.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/csdetect
           COMMAND csdetect_static overrides.dat)
    
        add_executable(parser_static ${CMAKE_SOURCE_DIR}/test/parser.c)
        target_link_libraries(parser_static libhubbub_static)
        add_test(NAME Public_parser_API_static__HTML5_tree_construction_algorithm
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static section-tree-construction.html)
        add_test(NAME Public_parser_API_static__HTML5_specification
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static \#web-apps.html)
        add_test(NAME Public_parser_API_static__Page_with_initial_</html>
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static initial-close-tag.html)
        add_test(NAME Public_parser_API_static__HTML_document_that_breaks_libxml's_HTML_parser
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static \#phonecalls.html)
        add_test(NAME Public_parser_API_static__Misnested_tags
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static misnested.html)
        add_test(NAME Public_parser_API_static__Test_of_<isindex>_parsing
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static isindex.html)
        add_test(NAME Public_parser_API_static__http://www.danmarks.net/firmaer.phtml?idxno=1418&letter=F
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static \#firmaer.phtml)
        add_test(NAME Public_parser_API_static__http://www.secinfo.com/d11MXs.2WQ9.d.htm
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static \#d11MXs.2WQ9.d.htm)
        add_test(NAME Public_parser_API_static__Regression_test_for_script_collection
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static regression-script-collect.html)
        add_test(NAME Public_parser_API_static__Mangleme_page_caused_assertion,_fixed_in_r5093.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static mangleme.1.html)
        add_test(NAME Public_parser_API_static__Mangleme_page_caused_segfault,_fixed_in_r5098.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static mangleme.2.html)
        add_test(NAME Public_parser_API_static__Mangleme_page_caused_assertion,_fixed_in_r5086.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static mangleme.3.html)
        add_test(NAME Public_parser_API_static__Segfault_page_fixed_in_r5104.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static www.fhis.ubc.ca.html)
        add_test(NAME Public_parser_API_static__Segfault_page_fixed_in_r5106.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static ccr.coriell.org.html)
        add_test(NAME Public_parser_API_static__Segfault_in_treebuilder_fixed_in_r5125.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static wbh.co.uk.html)
        add_test(NAME Public_parser_API_static__Segfault_in_current_node
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static www.directline.com.html)
        add_test(NAME Public_parser_API_static__Abort_in_token_emitter_fixed_in_r5146.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static www.hanazonohifuku.com.html)
        add_test(NAME Public_parser_API_static__Abort_in_generic_end_tag_handling_fixed_in_r6746.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND parser_static DocumentIndex.jsp)
    
        add_executable(tokeniser_static ${CMAKE_SOURCE_DIR}/test/tokeniser.c)
        target_link_libraries(tokeniser_static libhubbub_static)
        add_test(NAME HTML_tokeniser_static__HTML5_tree_construction_algorithm
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static section-tree-construction.html)
        add_test(NAME HTML_tokeniser_static__HTML5_specification
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static \#web-apps.html)
        add_test(NAME HTML_tokeniser_static__Page_with_initial_</html>
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static initial-close-tag.html)
        add_test(NAME HTML_tokeniser_static__HTML_document_that_breaks_libxml's_HTML_parser
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static \#phonecalls.html)
        add_test(NAME HTML_tokeniser_static__Misnested_tags
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static misnested.html)
        add_test(NAME HTML_tokeniser_static__Test_of_<isindex>_parsing
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static isindex.html)
        add_test(NAME HTML_tokeniser_static__http://www.danmarks.net/firmaer.phtml?idxno=1418&letter=F
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static \#firmaer.phtml)
        add_test(NAME HTML_tokeniser_static__http://www.secinfo.com/d11MXs.2WQ9.d.htm
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static \#d11MXs.2WQ9.d.htm)
        add_test(NAME HTML_tokeniser_static__Regression_test_for_script_collection
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static regression-script-collect.html)
        add_test(NAME HTML_tokeniser_static__Mangleme_page_caused_assertion,_fixed_in_r5093.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static mangleme.1.html)
        add_test(NAME HTML_tokeniser_static__Mangleme_page_caused_segfault,_fixed_in_r5098.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static mangleme.2.html)
        add_test(NAME HTML_tokeniser_static__Mangleme_page_caused_assertion,_fixed_in_r5086.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static mangleme.3.html)
        add_test(NAME HTML_tokeniser_static__Segfault_page_fixed_in_r5104.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static www.fhis.ubc.ca.html)
        add_test(NAME HTML_tokeniser_static__Segfault_page_fixed_in_r5106.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static ccr.coriell.org.html)
        add_test(NAME HTML_tokeniser_static__Segfault_in_treebuilder_fixed_in_r5125.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static wbh.co.uk.html)
        add_test(NAME HTML_tokeniser_static__Segfault_in_current_node
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static www.directline.com.html)
        add_test(NAME HTML_tokeniser_static__Abort_in_token_emitter_fixed_in_r5146.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static www.hanazonohifuku.com.html)
        add_test(NAME HTML_tokeniser_static__Abort_in_generic_end_tag_handling_fixed_in_r6746.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tokeniser_static DocumentIndex.jsp)
    
      if(json-c_FOUND)
        add_executable(tokeniser2_static ${CMAKE_SOURCE_DIR}/test/tokeniser2.c)
        target_link_libraries(tokeniser2_static libhubbub_static ${json-c_LIBRARIES})
        target_include_directories(tokeniser2_static SYSTEM PUBLIC ${json-c_INCLUDE_DIRS})
        add_test(NAME HTML_tokeniser_again_static__html5lib_tests_part_1
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_static test1.test)
        add_test(NAME HTML_tokeniser_again_static__html5lib_tests_part_2
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_static test2.test)
        add_test(NAME HTML_tokeniser_again_static__html5lib_tests_part_3
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_static test3.test)
        add_test(NAME HTML_tokeniser_again_static__html5lib_tests_part_4
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_static test4.test)
        add_test(NAME HTML_tokeniser_again_static__html5lib_content_model_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_static contentModelFlags.test)
        add_test(NAME HTML_tokeniser_again_static__html5lib_entity_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_static entities.test)
        add_test(NAME HTML_tokeniser_again_static__html5lib_escape_flag_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_static escapeFlag.test)
        add_test(NAME HTML_tokeniser_again_static__html5lib_numeric_entities_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_static numericEntities.test)
        add_test(NAME HTML_tokeniser_again_static__html5lib_unicode_character_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_static \#unicodeChars.test)
        add_test(NAME HTML_tokeniser_again_static__CDATA_section_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_static cdata.test)
        add_test(NAME HTML_tokeniser_again_static__Regression_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser2_static regression.test)
    
        add_executable(tokeniser3_static ${CMAKE_SOURCE_DIR}/test/tokeniser3.c)
        target_link_libraries(tokeniser3_static libhubbub_static ${json-c_LIBRARIES})
        target_include_directories(tokeniser3_static SYSTEM PUBLIC ${json-c_INCLUDE_DIRS})
        add_test(NAME HTML_tokeniser_byte-by-byte_static__html5lib_tests_part_1
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_static test1.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_static__html5lib_tests_part_2
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_static test2.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_static__html5lib_tests_part_3
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_static test3.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_static__html5lib_tests_part_4
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_static test4.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_static__html5lib_content_model_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_static contentModelFlags.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_static__html5lib_entity_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_static entities.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_static__html5lib_escape_flag_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_static escapeFlag.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_static__html5lib_numeric_entities_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_static numericEntities.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_static__html5lib_unicode_character_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_static \#unicodeChars.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_static__CDATA_section_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_static cdata.test)
        add_test(NAME HTML_tokeniser_byte-by-byte_static__Regression_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tokeniser2
           COMMAND tokeniser3_static regression.test)
        endif(json-c_FOUND)
    #out of order
        add_executable(tree_static ${CMAKE_SOURCE_DIR}/test/tree.c)
        target_link_libraries(tree_static libhubbub_static)
        add_test(NAME Treebuilding_API_static__HTML5_tree_construction_algorithm
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static section-tree-construction.html)
        add_test(NAME Treebuilding_API_static__HTML5_specification
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static \#web-apps.html)
        add_test(NAME Treebuilding_API_static__Page_with_initial_</html>
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static initial-close-tag.html)
        add_test(NAME Treebuilding_API_static__HTML_document_that_breaks_libxml's_HTML_parser
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static \#phonecalls.html)
        add_test(NAME Treebuilding_API_static__Misnested_tags
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static misnested.html)
        add_test(NAME Treebuilding_API_static__Test_of_<isindex>_parsing
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static isindex.html)
        add_test(NAME Treebuilding_API_static__http://www.danmarks.net/firmaer.phtml?idxno=1418&letter=F
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static \#firmaer.phtml)
        add_test(NAME Treebuilding_API_static__http://www.secinfo.com/d11MXs.2WQ9.d.htm
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static \#d11MXs.2WQ9.d.htm)
        add_test(NAME Treebuilding_API_static__Regression_test_for_script_collection
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static regression-script-collect.html)
        add_test(NAME Treebuilding_API_static__Mangleme_page_caused_assertion,_fixed_in_r5093.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static mangleme.1.html)
        add_test(NAME Treebuilding_API_static__Mangleme_page_caused_segfault,_fixed_in_r5098.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static mangleme.2.html)
        add_test(NAME Treebuilding_API_static__Mangleme_page_caused_assertion,_fixed_in_r5086.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static mangleme.3.html)
        add_test(NAME Treebuilding_API_static__Segfault_page_fixed_in_r5104.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static www.fhis.ubc.ca.html)
        add_test(NAME Treebuilding_API_static__Segfault_page_fixed_in_r5106.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static ccr.coriell.org.html)
        add_test(NAME Treebuilding_API_static__Segfault_in_treebuilder_fixed_in_r5125.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static wbh.co.uk.html)
        add_test(NAME Treebuilding_API_static__Segfault_in_current_node
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static www.directline.com.html)
        add_test(NAME Treebuilding_API_static__Abort_in_token_emitter_fixed_in_r5146.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static www.hanazonohifuku.com.html)
        add_test(NAME Treebuilding_API_static__Abort_in_generic_end_tag_handling_fixed_in_r6746.
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/html
           COMMAND tree_static DocumentIndex.jsp)
    
        add_executable(tree2_static ${CMAKE_SOURCE_DIR}/test/tree2.c)
        target_link_libraries(tree2_static libhubbub_static)
        add_test(NAME Treebuilding_API_static__html5lib__tests_tests1.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static tests1.dat)
        add_test(NAME Treebuilding_API_static__html5lib__tests_tests2.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static tests2.dat)
        add_test(NAME Treebuilding_API_static__html5lib__tests_tests3.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static tests3.dat)
        add_test(NAME Treebuilding_API_static__html5lib__tests_tests4.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static tests4.dat)
        add_test(NAME Treebuilding_API_static__html5lib__tests_tests5.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static tests5.dat)
        add_test(NAME Treebuilding_API_static__html5lib__tests_tests6.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static tests6.dat)
        add_test(NAME Treebuilding_API_static__html5lib__tests_tests7.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static tests7.dat)
        add_test(NAME Treebuilding_API_static__html5lib__tests_tests8.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static tests8.dat)
        add_test(NAME Treebuilding_API_static__html5lib__tests_tests9.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static tests9.dat)
        add_test(NAME Treebuilding_API_static__html5lib__tests_tests10.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static tests10.dat)
        add_test(NAME Treebuilding_API_static__html5lib__tests_tests11.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static tests11.dat)
        add_test(NAME Treebuilding_API_static__html5lib__tests_tests12.dat
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static tests12.dat)
        add_test(NAME Treebuilding_API_static__Tests_after_after_body_mode
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static after-after-body.dat)
        add_test(NAME Treebuilding_API_static__Tests_after_after_frameset_mode
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static after-after-frameset.dat)
        add_test(NAME Treebuilding_API_static__Tests_after_body_mode
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static after-body.dat)
        add_test(NAME Treebuilding_API_static__Regression_tests
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-construction/
           COMMAND tree2_static regression.dat)
    
        add_executable(tree-buf_static ${CMAKE_SOURCE_DIR}/test/tree-buf.c)
        target_link_libraries(tree-buf_static libhubbub_static)
        add_test(NAME Treebuilder_specified_chunks_static__Basic_test_of_test_driver
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-chunks/
           COMMAND tree-buf_static basic.dat)
        add_test(NAME Treebuilder_specified_chunks_static__Entity_test
           WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/tree-chunks/
           COMMAND tree-buf_static entitytest.html)
    
    endif(BUILD_STATIC_LIBS)
    
    
    
    txt file icon CMakeLists.txt (51,879 bytes) 2018-09-25 09:10 +

-Relationships
+Relationships

-Notes
J. Peter Mugaas

~0001851

J. Peter Mugaas (reporter)

BTW, there are some test failures with libhubbub in Windows.

The following tests FAILED:
          9 - Public_parser_API_shared__HTML5_specification (Failed)
         11 - Public_parser_API_shared__HTML_document_that_breaks_libxml's_HTML_parser (Failed)
         14 - Public_parser_API_shared__http://www.danmarks.net/firmaer.phtml?idxno=1418&letter=F (Failed)
         15 - Public_parser_API_shared__http://www.secinfo.com/d11MXs.2WQ9.d.htm (Failed)
         27 - HTML_tokeniser_shared__HTML5_specification (Failed)
         29 - HTML_tokeniser_shared__HTML_document_that_breaks_libxml's_HTML_parser (Failed)
         32 - HTML_tokeniser_shared__http://www.danmarks.net/firmaer.phtml?idxno=1418&letter=F (Failed)
         33 - HTML_tokeniser_shared__http://www.secinfo.com/d11MXs.2WQ9.d.htm (Failed)
         52 - HTML_tokeniser_again_shared__html5lib_unicode_character_tests (Failed)
         63 - HTML_tokeniser_byte-by-byte_shared__html5lib_unicode_character_tests (Failed)
         67 - Treebuilding_API_shared__HTML5_specification (Failed)
         69 - Treebuilding_API_shared__HTML_document_that_breaks_libxml's_HTML_parser (Failed)
         72 - Treebuilding_API_shared__http://www.danmarks.net/firmaer.phtml?idxno=1418&letter=F (Failed)
         73 - Treebuilding_API_shared__http://www.secinfo.com/d11MXs.2WQ9.d.htm (Failed)
        110 - Public_parser_API_static__HTML5_specification (Failed)
        112 - Public_parser_API_static__HTML_document_that_breaks_libxml's_HTML_parser (Failed)
        115 - Public_parser_API_static__http://www.danmarks.net/firmaer.phtml?idxno=1418&letter=F (Failed)
        116 - Public_parser_API_static__http://www.secinfo.com/d11MXs.2WQ9.d.htm (Failed)
        128 - HTML_tokeniser_static__HTML5_specification (Failed)
        130 - HTML_tokeniser_static__HTML_document_that_breaks_libxml's_HTML_parser (Failed)
        133 - HTML_tokeniser_static__http://www.danmarks.net/firmaer.phtml?idxno=1418&letter=F (Failed)
        134 - HTML_tokeniser_static__http://www.secinfo.com/d11MXs.2WQ9.d.htm (Failed)
        153 - HTML_tokeniser_again_static__html5lib_unicode_character_tests (Failed)
        164 - HTML_tokeniser_byte-by-byte_static__html5lib_unicode_character_tests (Failed)
        168 - Treebuilding_API_static__HTML5_specification (Failed)
        170 - Treebuilding_API_static__HTML_document_that_breaks_libxml's_HTML_parser (Failed)
        173 - Treebuilding_API_static__http://www.danmarks.net/firmaer.phtml?idxno=1418&letter=F (Failed)
        174 - Treebuilding_API_static__http://www.secinfo.com/d11MXs.2WQ9.d.htm (Failed)
+Notes

-Issue History
Date Modified Username Field Change
2018-09-25 09:10 J. Peter Mugaas New Issue
2018-09-25 09:10 J. Peter Mugaas File Added: CMakeLists.txt
2018-09-28 10:00 J. Peter Mugaas Note Added: 0001851
+Issue History