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 "")
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")
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})
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})
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")
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}"
-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}"
"-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}"
-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)
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}"
-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()