X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=development%2Fautotests%2FExportTests.cmake;h=7f505d057142154612b17e0ee3f9803e4073623d;hb=275d5a66a533d353076ff9350514bc8cd4a97009;hp=0067128cc29aad698ac5dece8e99157a1c4af63b;hpb=0008e36ff4928919c53596966a4e214f8e5e741f;p=lyx.git diff --git a/development/autotests/ExportTests.cmake b/development/autotests/ExportTests.cmake index 0067128cc2..7f505d0571 100644 --- a/development/autotests/ExportTests.cmake +++ b/development/autotests/ExportTests.cmake @@ -36,6 +36,14 @@ else() set(PDF_FORMATS "pdf" "pdf2" "pdf3") endif() +set(potential_languages "ca" "cs" "da" "de" "el" "es" "eu" "fa" "fr" "gl" "he" "hu" "id" "it" "ja" "ko" "nb" "nl" "pl" "pt" "ro" "ru" "sk" "sl" "sr" "sv" "uk" "zh_CN") + +macro(initLangVars varname) + foreach(_l ${potential_languages}) + set(${varname}_${_l}) + endforeach() +endmacro() + macro(getoutputformats filepath varname) file(STRINGS "${filepath}" lines) # What should we test, if default_output_format is not defined? @@ -46,6 +54,8 @@ macro(getoutputformats filepath varname) set(_format ${CMAKE_MATCH_1}) if(_format STREQUAL "default") set(out_formats "xhtml" ${DVI_FORMATS} ${PDF_FORMATS}) + elseif(_format STREQUAL "pdf2" AND "${filepath}" MATCHES "/doc/") + set(out_formats "xhtml" ${DVI_FORMATS} ${PDF_FORMATS}) elseif(_format MATCHES "pdf$") set(out_formats "xhtml" ${PDF_FORMATS}) elseif(_format MATCHES "dvi$") @@ -70,7 +80,7 @@ macro(findexpr found testname listname rsublabel) if ("${_itrx}" MATCHES "^Sublabel:") set(tmpsublabel "") string(REGEX REPLACE "^Sublabel:[ \t]*" "" _itrlabels ${_itrx}) - string(REGEX MATCHALL "([a-zA-Z]+)" _labels ${_itrlabels}) + string(REGEX MATCHALL "[a-zA-Z]+" _labels ${_itrlabels}) foreach(subl ${_labels}) if (subl STREQUAL "RESET") set(tmpsublabel "") @@ -126,7 +136,7 @@ macro(maketestname testname inverted listsuspicious listignored listunreliable l set(sublabel "unreliable" ${sublabel} ${sublabel2}) list(REMOVE_ITEM sublabel "export" "inverted" "templates" "mathmacros" "manuals" "autotests") else() - string(REGEX MATCH "_(systemF|texF|pdf3|pdf2|pdf|dvi|lyx16|xhtml)$" _v ${${testname}}) + string(REGEX MATCH "(^check_load|_(systemF|texF|pdf3|pdf2|pdf|dvi|lyx[0-9][0-9]|xhtml)$)" _v ${${testname}}) # check if test _may_ be in listsuspicious set(sublabel2 "") if (_v) @@ -151,7 +161,11 @@ macro(maketestname testname inverted listsuspicious listignored listunreliable l list(REMOVE_DUPLICATES sublabel) if (NOT sublabel STREQUAL "") join(sublabel "." tmpprefixx) - string(TOUPPER "${tmpprefixx}_" tmpprefix) + if (tmpprefixx) + string(TOUPPER "${tmpprefixx}_" tmpprefix) + else() + set(tmpprefix "") + endif() set(${testname} "${tmpprefix}${${testname}}") set(${listlabels} ${sublabel}) endif() @@ -164,6 +178,8 @@ endmacro() macro(loadTestList filename resList depth) # Create list of strings from a file without comments # ENCODING parameter is a new feature in cmake 3.1 + initLangVars(${resList}) + initLangVars("sublabel") if (CMAKE_VERSION VERSION_GREATER "3.1") file(STRINGS ${filename} tempList ENCODING "UTF-8") else() @@ -182,7 +198,7 @@ macro(loadTestList filename resList depth) list(APPEND ${resList} "${_newl}") if (_newl MATCHES "^Sublabel:") string(REGEX REPLACE "^Sublabel:[ \t]*" "" _newlabels ${_newl}) - string(REGEX MATCHALL "([a-zA-Z]+)" _labels ${_newlabels}) + string(REGEX MATCHALL "([0-9]*[a-zA-Z]+)" _labels ${_newlabels}) foreach(labname ${_labels}) if (NOT labname STREQUAL "RESET") list(APPEND mylabels ${labname}) @@ -212,12 +228,19 @@ macro(loadTestList filename resList depth) endif() endif() endforeach() - foreach(_l ${mylabels}) + foreach(_l1 ${mylabels}) + if (_l1 MATCHES "^([0-9]+)([a-zA-Z]+)$") + set(_l ${CMAKE_MATCH_2}) + set(depth1 ${CMAKE_MATCH_1}) + else() + set(_l ${_l1}) + set(depth1 "0") + endif() list(FIND known_labels ${_l} _ff) if (_ff GREATER -1) message(STATUS "Label \"${_l}\" already in use. Reused in ${filename}") else() - assignLabelDepth(${depth} ${_l}) + assignLabelDepth(${depth}${depth1} ${_l}) endif() endforeach() foreach(_lg ${languages}) @@ -247,8 +270,7 @@ loadTestList(ignoredTests ignoredTests 0) loadTestList(suspendedTests suspendedTests 6) loadTestList(unreliableTests unreliableTests 5) -# preparing to add e.g. development/mathmacros to the foreach() loop -foreach(libsubfolderx autotests/export lib/doc lib/examples lib/templates development/mathmacros) +foreach(libsubfolderx autotests/export lib/doc lib/examples lib/templates autotests/mathmacros) set(testlabel "export") if (libsubfolderx MATCHES "lib/doc") list(APPEND testlabel "manuals") @@ -256,7 +278,7 @@ foreach(libsubfolderx autotests/export lib/doc lib/examples lib/templates develo list(APPEND testlabel "examples") elseif (libsubfolderx MATCHES "lib/templates") list(APPEND testlabel "templates") - elseif (libsubfolderx MATCHES "development/mathmacros") + elseif (libsubfolderx MATCHES "autotests/mathmacros") list(APPEND testlabel "mathmacros") elseif (libsubfolderx MATCHES "autotests/.+") list(APPEND testlabel "autotests") @@ -281,26 +303,29 @@ foreach(libsubfolderx autotests/export lib/doc lib/examples lib/templates develo foreach(f ${nolang_lyx_files} ${lang_lyx_files}) # Strip extension string(REGEX REPLACE "\\.lyx$" "" f ${f}) - set(TestName "export/${libsubfolder}/${f}_lyx16") - set(mytestlabel ${testlabel}) - maketestname(TestName inverted suspiciousTests ignoredTests unreliableTests mytestlabel) - if(TestName) - add_test(NAME ${TestName} - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" - COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${LIBSUB_SRC_DIR} - -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} - -Dlyx=$ - -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME} - -DLYX_USERDIR_VER=${LYX_USERDIR_VER} - -Dformat=lyx16x - -Dextension=16.lyx - -Dfile=${f} - -Dinverted=${inverted} - -DTOP_SRC_DIR=${TOP_SRC_DIR} - -DPERL_EXECUTABLE=${PERL_EXECUTABLE} - -P "${TOP_SRC_DIR}/development/autotests/export.cmake") - setmarkedtestlabel(${TestName} ${mytestlabel}) - endif() + foreach(_lyx_format_num 16 21) + set(TestName "export/${libsubfolder}/${f}_lyx${_lyx_format_num}") + set(mytestlabel ${testlabel} "lyx2lyx" "load") + maketestname(TestName inverted suspiciousTests ignoredTests unreliableTests mytestlabel) + if(TestName) + add_test(NAME ${TestName} + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" + COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${LIBSUB_SRC_DIR} + -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR} + -Dlyx=$ + -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME} + -DLYX_USERDIR_VER=${LYX_USERDIR_VER} + -Dformat=lyx${_lyx_format_num}x + -Dextension=${_lyx_format_num}.lyx + -DLYX_FORMAT_NUM=${_lyx_format_num} + -Dfile=${f} + -Dinverted=${inverted} + -DTOP_SRC_DIR=${TOP_SRC_DIR} + -DPERL_EXECUTABLE=${PERL_EXECUTABLE} + -P "${TOP_SRC_DIR}/development/autotests/export.cmake") + setmarkedtestlabel(${TestName} ${mytestlabel}) + endif() + endforeach() if(LYX_PYTHON_EXECUTABLE) set(lyx2lyxtestlabel "lyx2lyx") # For use of lyx2lyx we need the python executable @@ -331,9 +356,10 @@ foreach(libsubfolderx autotests/export lib/doc lib/examples lib/templates develo -Dlyx=$ -DPARAMS_DIR=${TOP_SRC_DIR}/development/autotests -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME} + -Dinverted=${inverted} -P "${TOP_SRC_DIR}/development/autotests/check_load.cmake") setmarkedtestlabel(${TestName} ${mytestlabel}) - set_tests_properties(${TestName} PROPERTIES RUN_SERIAL ON) + #set_tests_properties(${TestName} PROPERTIES RUN_SERIAL ON) endif() getoutputformats("${LIBSUB_SRC_DIR}/${f}.lyx" formatlist) foreach(format ${formatlist})