commit c2a5a16d97f4d1a1a9a2f7f5a70efc5639845525
Author: Kornel Benko <[email protected]>
Date:   Mon Jan 1 14:03:51 2018 +0100

    Added new testcase to check for correct VCS-Info
---
 autotests/checklatexexports/vcs_info_export.tex |   22 +++++++++
 development/autotests/CMakeLists.txt            |    1 +
 development/autotests/VcsTest.cmake             |   54 +++++++++++++++++++++++
 development/autotests/VcsTests.cmake            |   43 ++++++++++++++++++
 4 files changed, 120 insertions(+), 0 deletions(-)

diff --git a/autotests/checklatexexports/vcs_info_export.tex 
b/autotests/checklatexexports/vcs_info_export.tex
new file mode 100644
index 0000000..67b013f
--- /dev/null
+++ b/autotests/checklatexexports/vcs_info_export.tex
@@ -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}
diff --git a/development/autotests/CMakeLists.txt 
b/development/autotests/CMakeLists.txt
index 208e74b..55df022 100644
--- a/development/autotests/CMakeLists.txt
+++ b/development/autotests/CMakeLists.txt
@@ -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
index 0000000..298fc84
--- /dev/null
+++ b/development/autotests/VcsTest.cmake
@@ -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 [email protected]
+#
+#
+# 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
index 0000000..83b572b
--- /dev/null
+++ b/development/autotests/VcsTests.cmake
@@ -0,0 +1,43 @@
+#
+#  Copyright (c) 2018 Kornel Benko <[email protected]>
+#
+#  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()

Reply via email to