X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=development%2Fautotests%2FExportTests.cmake;h=4d3b316bf894bf5e04b62a7eb2f3cf9d679d6d55;hb=4dd77996a10c8c6ccc3d6052e58fd45e39797f27;hp=ec46ad0cc8d8cd68839ae00195786edb16b87329;hpb=56ecd464f34ae67ecf1f8d962bddd295804d4cad;p=lyx.git diff --git a/development/autotests/ExportTests.cmake b/development/autotests/ExportTests.cmake index ec46ad0cc8..4d3b316bf8 100644 --- a/development/autotests/ExportTests.cmake +++ b/development/autotests/ExportTests.cmake @@ -70,7 +70,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 "") @@ -97,77 +97,71 @@ macro(findexpr found testname listname rsublabel) endmacro() function(join rvalues glue routput) - string(REGEX REPLACE "([^\\]|^);" "\\1${glue}" out "${${rvalues}}") + set(locallist ${${rvalues}}) + list(REMOVE_ITEM locallist "export" "lyx2lyx" "load") + string(REGEX REPLACE "([^\\]|^);" "\\1${glue}" out "${locallist}") set(${routput} ${out} PARENT_SCOPE) endfunction() -macro(maketestname testname reverted listsuspicious listignored listunreliable listlabels) - set(sublabel "") +macro(maketestname testname inverted listsuspicious listignored listunreliable listlabels) string(REGEX MATCH "\\/[a-z][a-z](_[A-Z][A-Z])?\\/" _v ${${testname}}) if(_v) string(REGEX REPLACE "\\/" "" _v ${_v}) set(listsuspiciousx ${listsuspicious}_${_v}) set(listignoredx ${listignored}_${_v}) set(listunreliablex ${listunreliable}_${_v}) + set(listsuspendedx suspendedTests_${_v}) else() set(listsuspiciousx ${listsuspicious}) set(listignoredx ${listignored}) set(listunreliablex ${listunreliable}) + set(listsuspendedx suspendedTests) endif() + set(sublabel "${${listlabels}}") findexpr(mfound ${testname} ${listignoredx} sublabel) if (NOT mfound) - string(REGEX MATCH "_(systemF|texF|pdf3|pdf2|pdf|dvi|lyx16|xhtml)$" _v ${${testname}}) - set(sublabel "") - # check if test _may_ be in listsuspicious - if (_v) - findexpr(mfound ${testname} ${listsuspiciousx} sublabel) + set(sublabel2 "") + findexpr(foundunreliable ${testname} ${listunreliablex} sublabel2) + if (foundunreliable) + set(sublabel "unreliable" ${sublabel} ${sublabel2}) + list(REMOVE_ITEM sublabel "export" "inverted" "templates" "mathmacros" "manuals" "autotests") else() - set(mfound OFF) - endif() - if (NOT mfound) - set(${reverted} 0) - else() - # Now that the test is suspect, - # check if it is unreliable, and/or suspended + string(REGEX MATCH "_(systemF|texF|pdf3|pdf2|pdf|dvi|lyx16|xhtml)$" _v ${${testname}}) + # check if test _may_ be in listsuspicious set(sublabel2 "") - findexpr(nsfound ${testname} ${listunreliablex} sublabel2) - findexpr(nsfound2 ${testname} suspendedTests sublabel2) - list(APPEND sublabel ${sublabel2}) - if (nsfound) - set(sublabel "unreliable" ${sublabel}) - endif() - if (nsfound2) - set(sublabel "suspended" ${sublabel}) - message(STATUS "found suspended test ${${testname}}") + if (_v) + findexpr(mfound ${testname} ${listsuspiciousx} sublabel2) + else() + set(mfound OFF) endif() - list(REMOVE_DUPLICATES sublabel) - if (nsfound OR nsfound2) - list(APPEND ${listlabels} ${sublabel}) - set(${reverted} 0) + if (mfound) + set(sublabel3 "") + findexpr(foundsuspended ${testname} ${listsuspendedx} sublabel3) + set(${inverted} 1) + if (foundsuspended) + set(sublabel "suspended" ${sublabel} ${sublabel2} ${sublabel3}) + list(REMOVE_ITEM sublabel "export" "inverted" ) + else() + set(sublabel "inverted" ${sublabel} ${sublabel2} ${sublabel3}) + endif() else() - set(sublabel "reverted" ${sublabel}) - set(${reverted} 1) + set(${inverted} 0) endif() + endif() + list(REMOVE_DUPLICATES sublabel) + if (NOT sublabel STREQUAL "") join(sublabel "." tmpprefixx) string(TOUPPER "${tmpprefixx}_" tmpprefix) set(${testname} "${tmpprefix}${${testname}}") - string(TOUPPER "${sublabel}_" tmpprefix) - if (NOT sublabel STREQUAL "") - list(APPEND ${listlabels} ${sublabel}) - list(FIND ${listlabels} "chemgreek" _i) - endif() + set(${listlabels} ${sublabel}) endif() else() + # No testname because ignored set(${testname} "") endif() endmacro() -# This labels should not be used in .*Tests files -set(known_labels "export" "key" "layout" "load" "lyx2lyx" - "examples" "manuals" "mathmacros" "reverted" "templates" "unreliable" "suspended" - "module" "roundtrip" "url") - -macro(loadTestList filename resList) +macro(loadTestList filename resList depth) # Create list of strings from a file without comments # ENCODING parameter is a new feature in cmake 3.1 if (CMAKE_VERSION VERSION_GREATER "3.1") @@ -182,12 +176,13 @@ macro(loadTestList filename resList) message(STATUS "Reading list ${filename}") foreach(_l ${tempList}) set(_newl "${_l}") + string(REGEX REPLACE "[ \t]+$" "" _newl "${_l}") string(REGEX REPLACE "[ \t]*#.*$" "" _newl "${_l}") if(_newl) 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}) @@ -217,12 +212,19 @@ macro(loadTestList filename resList) 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() - list(APPEND known_labels ${_l}) + assignLabelDepth(${depth}${depth1} ${_l}) endif() endforeach() foreach(_lg ${languages}) @@ -232,37 +234,28 @@ macro(loadTestList filename resList) endforeach() endmacro() -loadTestList(suspiciousTests suspiciousTests) -loadTestList(ignoredTests ignoredTests) -loadTestList(suspendedTests suspendedTests) -loadTestList(unreliableTests unreliableTests) +# This labels should not be used in .*Tests files +set(known_labels "") +# Create depth info to each label +macro(assignLabelDepth depth) + foreach(_lab ${ARGN}) + list(APPEND known_labels ${_lab}) + set(depth_${_lab} ${depth}) + endforeach() +endmacro() -macro(handlesuspended TestName reverted testlabel) - set(mylabel ${${testlabel}}) - set(myreverted ${reverted}) - set(sublabel) +assignLabelDepth(0 "export" "key" "layout" "load" "lyx2lyx" "module" "roundtrip" "url") +assignLabelDepth(1 "unreliable" "inverted") +assignLabelDepth(2 "suspended") +assignLabelDepth(3 "examples" "manuals" "mathmacros" "templates" "autotests") - # check for unreliable - if ("${TestName}" MATCHES "^UNRELIABLE") - list(REMOVE_ITEM mylabel "export" "reverted" "templates" "mathmacros" "manuals") - list(APPEND mylabel "unreliable") - set(myreverted 0) - elseif (${reverted}) - # check suspension only for reverted tests - findexpr(tfound TestName suspendedTests sublabel) - if (tfound) - set(mylabel "suspended") - if (sublabel) - list(APPEND mylabel ${sublabel}) - endif() - set(myreverted 0) # if test is to be suspended, remove the 'reverted' flag - endif() - endif() - setmarkedtestlabel(${TestName} ${myreverted} ${mylabel}) -endmacro() +loadTestList(suspiciousTests suspiciousTests 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 lib/doc lib/examples lib/templates development/mathmacros autotests/export) +foreach(libsubfolderx autotests/export lib/doc lib/examples lib/templates development/mathmacros) set(testlabel "export") if (libsubfolderx MATCHES "lib/doc") list(APPEND testlabel "manuals") @@ -297,7 +290,7 @@ foreach(libsubfolderx lib/doc lib/examples lib/templates development/mathmacros string(REGEX REPLACE "\\.lyx$" "" f ${f}) set(TestName "export/${libsubfolder}/${f}_lyx16") set(mytestlabel ${testlabel}) - maketestname(TestName reverted suspiciousTests ignoredTests unreliableTests mytestlabel) + maketestname(TestName inverted suspiciousTests ignoredTests unreliableTests mytestlabel) if(TestName) add_test(NAME ${TestName} WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" @@ -309,18 +302,18 @@ foreach(libsubfolderx lib/doc lib/examples lib/templates development/mathmacros -Dformat=lyx16x -Dextension=16.lyx -Dfile=${f} - -Dreverted=${reverted} + -Dinverted=${inverted} -DTOP_SRC_DIR=${TOP_SRC_DIR} -DPERL_EXECUTABLE=${PERL_EXECUTABLE} -P "${TOP_SRC_DIR}/development/autotests/export.cmake") - handlesuspended(${TestName} ${reverted} mytestlabel) # checking for suspended lyx16 exports + setmarkedtestlabel(${TestName} ${mytestlabel}) endif() if(LYX_PYTHON_EXECUTABLE) set(lyx2lyxtestlabel "lyx2lyx") # For use of lyx2lyx we need the python executable set(mytestlabel ${lyx2lyxtestlabel}) set(TestName "lyx2lyx/${libsubfolder}/${f}") - maketestname(TestName reverted suspiciousTests ignoredTests unreliableTests mytestlabel) + maketestname(TestName inverted suspiciousTests ignoredTests unreliableTests mytestlabel) if(TestName) add_test(NAME ${TestName} WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" @@ -330,13 +323,13 @@ foreach(libsubfolderx lib/doc lib/examples lib/templates development/mathmacros "-DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR}" "-DLYXFILE=${LIBSUB_SRC_DIR}/${f}.lyx" -P "${TOP_SRC_DIR}/development/autotests/lyx2lyxtest.cmake") - handlesuspended(${TestName} ${reverted} mytestlabel) + setmarkedtestlabel(${TestName} ${mytestlabel}) endif() endif() set(loadtestlabel "load") set(mytestlabel ${loadtestlabel}) set(TestName "check_load/${libsubfolder}/${f}") - maketestname(TestName reverted suspiciousTests ignoredTests unreliableTests mytestlabel) + maketestname(TestName inverted suspiciousTests ignoredTests unreliableTests mytestlabel) if(TestName) add_test(NAME ${TestName} WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" @@ -346,7 +339,7 @@ foreach(libsubfolderx lib/doc lib/examples lib/templates development/mathmacros -DPARAMS_DIR=${TOP_SRC_DIR}/development/autotests -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME} -P "${TOP_SRC_DIR}/development/autotests/check_load.cmake") - handlesuspended(${TestName} ${reverted} mytestlabel) + setmarkedtestlabel(${TestName} ${mytestlabel}) set_tests_properties(${TestName} PROPERTIES RUN_SERIAL ON) endif() getoutputformats("${LIBSUB_SRC_DIR}/${f}.lyx" formatlist) @@ -363,7 +356,7 @@ foreach(libsubfolderx lib/doc lib/examples lib/templates development/mathmacros set(TestName "export/${libsubfolder}/${f}_${format}_${fonttype}") endif() set(mytestlabel ${testlabel}) - maketestname(TestName reverted suspiciousTests ignoredTests unreliableTests mytestlabel) + maketestname(TestName inverted suspiciousTests ignoredTests unreliableTests mytestlabel) if(TestName) add_test(NAME ${TestName} WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}" @@ -375,11 +368,11 @@ foreach(libsubfolderx lib/doc lib/examples lib/templates development/mathmacros -Dfonttype=${fonttype} -Dextension=${format} -Dfile=${f} - -Dreverted=${reverted} + -Dinverted=${inverted} -DTOP_SRC_DIR=${TOP_SRC_DIR} -DPERL_EXECUTABLE=${PERL_EXECUTABLE} -P "${TOP_SRC_DIR}/development/autotests/export.cmake") - handlesuspended(${TestName} ${reverted} mytestlabel) # check for suspended pdf/dvi exports + setmarkedtestlabel(${TestName} ${mytestlabel}) # check for suspended pdf/dvi exports endif() endforeach() endforeach()