Fix auto-downloaded regression test execution
authorSzilard Pall <pall.szilard@gmail.com>
Sun, 10 May 2015 23:03:02 +0000 (01:03 +0200)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Wed, 13 May 2015 11:15:51 +0000 (13:15 +0200)
The regressiontests directory within the tarball has been renamed
to contain a version suffix: regressiontests-BRANCH-COMMITID.tgz
However, the CMake code that sets up the tests and needs the path to the
location of the the regressiontests was not updated and tried to use an
incorrect, hardcoded directory name.

This change implements extracting the directory name from the tarball.

Change-Id: Ic597b69b7a375966e9747e55afcb9ef5921b2b22

tests/CMakeLists.txt

index fb611ffd205dda1b6af090c0c0d51e4056caaacd..580ba9bf1f3fa4947f7b4fc44f076f996e99d7b2 100644 (file)
@@ -1,7 +1,7 @@
 #
 # This file is part of the GROMACS molecular simulation package.
 #
-# Copyright (c) 2012,2013,2014, by the GROMACS development team, led by
+# Copyright (c) 2012,2013,2014,2015, by the GROMACS development team, led by
 # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
 # and including many others, as listed in the AUTHORS file in the
 # top-level source directory and at http://www.gromacs.org.
@@ -40,8 +40,7 @@ option(REGRESSIONTEST_DOWNLOAD
 if(REGRESSIONTEST_DOWNLOAD)
     if("${PROJECT_VERSION}" MATCHES "-dev")
       set(REGRESSIONTEST_URL http://gerrit.gromacs.org/snapshot/${REGRESSIONTEST_BRANCH})
-      set(REGRESSIONTEST_PATH "${CMAKE_CURRENT_BINARY_DIR}/regressiontests"
-           CACHE PATH "Path to auto-downloaded regressiontests" FORCE)
+      # REGRESSIONTEST_PATH for dev trees is set later based on the dirname found in the tar
     else()
         set(REGRESSIONTEST_URL http://gerrit.gromacs.org/download/regressiontests-${REGRESSIONTEST_VERSION}.tar.gz)
         set(REGRESSIONTEST_PATH
@@ -65,6 +64,18 @@ log: ${log}")
         if(NOT ${REGRESSIONTEST_MD5SUM} STREQUAL ${COMPUTED_MD5SUM})
             message(FATAL_ERROR "Download of regressiontests failed. Expected MD5 of ${REGRESSIONTEST_MD5SUM} but download has ${COMPUTED_MD5SUM}")
         endif()
+    else()
+        # Extract the REGRESSIONTEST_PATH from the tar when using dev tree.
+        execute_process(COMMAND ${CMAKE_COMMAND} -E tar tf "${REGRESSIONTEST_FILE}"
+                RESULT_VARIABLE _tar_tf_res
+                OUTPUT_VARIABLE _tar_tf_out)
+        if (${_tar_tf_res} EQUAL 0)
+            string(REGEX REPLACE "/\n.*$" "" _regressiontest_dir "${_tar_tf_out}")
+            set(REGRESSIONTEST_PATH "${CMAKE_CURRENT_BINARY_DIR}/${_regressiontest_dir}"
+                CACHE PATH "Path to auto-downloaded regressiontests" FORCE)
+        else()
+            message(FATAL_ERROR "Failed to list the contents of the downloaded tarball: ${REGRESSIONTEST_FILE}")
+        endif()
     endif()
 
     file(REMOVE_RECURSE "${REGRESSIONTEST_PATH}") #delete potential prior folder