]> git.lyx.org Git - lyx.git/blobdiff - development/autotests/ExportTests.cmake
Invert and document test for "longest labeling label" problem.
[lyx.git] / development / autotests / ExportTests.cmake
index 0067128cc29aad698ac5dece8e99157a1c4af63b..7f505d057142154612b17e0ee3f9803e4073623d 100644 (file)
@@ -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=$<TARGET_FILE:${_lyx}>
-        -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=$<TARGET_FILE:${_lyx}>
+          -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=$<TARGET_FILE:${_lyx}>
         -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})