]> git.lyx.org Git - features.git/commitdiff
Added new testcase to check for correct VCS-Info
authorKornel Benko <kornel@lyx.org>
Mon, 1 Jan 2018 13:03:51 +0000 (14:03 +0100)
committerKornel Benko <kornel@lyx.org>
Mon, 1 Jan 2018 13:05:25 +0000 (14:05 +0100)
autotests/checklatexexports/vcs_info_export.tex [new file with mode: 0644]
development/autotests/CMakeLists.txt
development/autotests/VcsTest.cmake [new file with mode: 0755]
development/autotests/VcsTests.cmake [new file with mode: 0644]

diff --git a/autotests/checklatexexports/vcs_info_export.tex b/autotests/checklatexexports/vcs_info_export.tex
new file mode 100644 (file)
index 0000000..67b013f
--- /dev/null
@@ -0,0 +1,22 @@
+%% LyX 2.4.0dev created this file.  For more info, see https://www.lyx.org/.
+%% Do not edit unless you really know what you are doing.
+\documentclass[english]{article}
+\usepackage{mathpazo}
+\usepackage[scaled=0.95]{helvet}
+\usepackage{courier}
+\usepackage[T1]{fontenc}
+\usepackage[latin9]{inputenc}
+\usepackage{babel}
+\begin{document}
+file: vcs\_info\_export.lyx
+
+commit: 9c6a95b22a4d9c2b0eff5907405279dba885704f
+
+class: article
+
+author: Kornel Benko
+
+date: 2018-01-01
+
+time: 12:16:09 +0100
+\end{document}
index 208e74be1a257f77c4a91b3d88a9bd5e131dfd24..55df0227a695bfc11a37e9672bbb2ed9bc54ed01 100644 (file)
@@ -124,3 +124,4 @@ endif()
 if (LYX_ENABLE_EXPORT_TESTS)
   include(${TOP_SRC_DIR}/development/autotests/ExportTests.cmake)
 endif()
+include(${TOP_SRC_DIR}/development/autotests/VcsTests.cmake)
diff --git a/development/autotests/VcsTest.cmake b/development/autotests/VcsTest.cmake
new file mode 100755 (executable)
index 0000000..298fc84
--- /dev/null
@@ -0,0 +1,54 @@
+# This file is part of LyX, the document processor.
+# Licence details can be found in the file COPYING.
+#
+# Copyright (c) 2018 Kornel Benko kornel@lyx.org
+#
+#
+# LYX_ROOT  = ${TOP_SRC_DIR}/lib/{doc,examples,templates}
+# file      = xxx
+#
+set(ENV{${LYX_USERDIR_VER}} "${LYX_TESTS_USERDIR}")
+set(ENV{LANG} "en_US.UTF-8") # to get all error-messages in english
+
+set(result_file_name ${file}.tex)
+set(check_file_name "${LYX_ROOT}/${file}.tex")
+
+message(STATUS "Check for ${LYX_GITVERSION}")
+if(LYX_GITVERSION)
+  execute_process(
+    WORKING_DIRECTORY "${LYX_ROOT}"
+    COMMAND git status ${file}.lyx
+    RESULT_VARIABLE _err
+    ERROR_VARIABLE lyxerr)
+  if (_err)
+    message(STATUS "Not a git controlled file")
+  else()
+    message(STATUS "Executing ${lyx} -E ${ExportFormat} ${result_file_name} \"${LYX_ROOT}/${file}.lyx\"")
+    execute_process(
+      COMMAND ${lyx} -E ${ExportFormat} ${result_file_name} "${LYX_ROOT}/${file}.lyx"
+      RESULT_VARIABLE _err
+      ERROR_VARIABLE lyxerr)
+      if(NOT _err)
+       if(NOT EXISTS "${result_file_name}")
+         message(STATUS "Expected result file \"${result_file_name}\" does not exist")
+         set(_err -1)
+       else()
+         message(STATUS "Expected result file \"${result_file_name}\" exists")
+       endif()
+       # Check if result file identical to check file
+       execute_process(COMMAND ${CMAKE_COMMAND} -E compare_files
+         "${result_file_name}" "${LYX_ROOT}/${file}.tex"
+         RESULT_VARIABLE _err
+         ERROR_VARIABLE lyxerr)
+       if (NOT _err)
+         message(STATUS "Compare successful")
+       endif()
+      endif()
+
+    string(COMPARE NOTEQUAL  ${_err} 0 _erg)
+    if(_erg)
+      message(STATUS "Exporting ${file}.lyx to ${ExportFormat}")
+      message(FATAL_ERROR "Export failed")
+    endif()
+  endif()
+endif()
diff --git a/development/autotests/VcsTests.cmake b/development/autotests/VcsTests.cmake
new file mode 100644 (file)
index 0000000..83b572b
--- /dev/null
@@ -0,0 +1,43 @@
+#
+#  Copyright (c) 2018 Kornel Benko <kornel@lyx.org>
+#
+#  Redistribution and use in source and binary forms, with or without
+#  modification, are permitted provided that the following conditions
+#  are met:
+#
+#  1. Redistributions of source code must retain the copyright
+#         notice, this list of conditions and the following disclaimer.
+#  2. Redistributions in binary form must reproduce the copyright
+#         notice, this list of conditions and the following disclaimer in the
+#         documentation and/or other materials provided with the distribution.
+#  3. The name of the author may not be used to endorse or promote products
+#         derived from this software without specific prior written permission.
+#
+#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+#  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+#  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+#  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+#  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+#  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+set(outputformat pdflatex)
+set(checkdir "${TOP_SRC_DIR}/autotests/checklatexexports")
+set(checkfiles vcs_info_export)
+
+foreach(_f ${checkfiles})
+  add_test(NAME VcsInfo.${_f}
+    WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}"
+    COMMAND ${CMAKE_COMMAND} -DLYX_ROOT=${checkdir}
+    -DLYX_TESTS_USERDIR=${LYX_TESTS_USERDIR}
+    -Dlyx=$<TARGET_FILE:${_lyx}>
+    -DWORKDIR=${CMAKE_CURRENT_BINARY_DIR}/${LYX_HOME}
+    -DLYX_GITVERSION=${LYX_GITVERSION}
+    -DExportFormat=${outputformat}
+    -Dfile=${_f}
+    -P "${TOP_SRC_DIR}/development/autotests/VcsTest.cmake")
+endforeach()