From 98e710fcef4ab24acd4fe53a8cdd8aa05cdd4f88 Mon Sep 17 00:00:00 2001
From: Chuck Atkins <chuck.atkins@kitware.com>
Date: Thu, 22 Jun 2017 15:16:39 -0400
Subject: [PATCH] Added a CMake function to wrap python tests

---
 bindings/python/CMakeLists.txt                     | 11 +++++++----
 cmake/ADIOSFunctions.cmake                         |  9 +++++++++
 testing/adios2/CMakeLists.txt                      |  1 +
 testing/adios2/bindings/CMakeLists.txt             |  8 ++++++++
 testing/adios2/bindings/python/CMakeLists.txt      |  6 ++++++
 testing/adios2/bindings/python/TestBPWriteTypes.py |  2 ++
 6 files changed, 33 insertions(+), 4 deletions(-)
 create mode 100644 testing/adios2/bindings/CMakeLists.txt
 create mode 100644 testing/adios2/bindings/python/CMakeLists.txt

diff --git a/bindings/python/CMakeLists.txt b/bindings/python/CMakeLists.txt
index 96eeb1dda..93fd50a56 100644
--- a/bindings/python/CMakeLists.txt
+++ b/bindings/python/CMakeLists.txt
@@ -24,13 +24,16 @@ if(ADIOS2_HAVE_MPI)
 endif()
 
 string(REGEX REPLACE "^${PYTHON_PREFIX}/" ""
-  python_package_dir "${PYTHON_SITE_PACKAGES}"
+  CMAKE_INSTALL_PYTHONDIR "${PYTHON_SITE_PACKAGES}"
+)
+set(CMAKE_INSTALL_PYTHONDIR "${CMAKE_INSTALL_PYTHONDIR}"
+  CACHE INTERNAL "" FORCE
 )
 set_target_properties(adios2py PROPERTIES
   OUTPUT_NAME adios2
-  LIBRARY_OUTPUT_DIRECTORY ${ADIOS2_BINARY_DIR}/${python_package_dir}
-  RUNTIME_OUTPUT_DIRECTORY ${ADIOS2_BINARY_DIR}/${python_package_dir}
+  LIBRARY_OUTPUT_DIRECTORY ${ADIOS2_BINARY_DIR}/${CMAKE_INSTALL_PYTHONDIR}
+  RUNTIME_OUTPUT_DIRECTORY ${ADIOS2_BINARY_DIR}/${CMAKE_INSTALL_PYTHONDIR}
 )
 install(TARGETS adios2py
-  DESTINATION ${python_package_dir}
+  DESTINATION ${CMAKE_INSTALL_PYTHONDIR}
 )
diff --git a/cmake/ADIOSFunctions.cmake b/cmake/ADIOSFunctions.cmake
index b0f6cb8e6..37b4cf2e0 100644
--- a/cmake/ADIOSFunctions.cmake
+++ b/cmake/ADIOSFunctions.cmake
@@ -37,3 +37,12 @@ function(message_pad msg out_len out_msg)
     set(${out_msg} "${msg}${pad}" PARENT_SCOPE)
   endif()
 endfunction()
+
+function(python_add_test name script)
+  add_test(NAME ${name}
+    COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${script} ${ARGN}
+  )
+  set_property(TEST ${name} PROPERTY
+    ENVIRONMENT "PYTHONPATH=${ADIOS2_BINARY_DIR}/${CMAKE_INSTALL_PYTHONDIR}:$ENV{PYTHONPATH}"
+  )
+endfunction()
diff --git a/testing/adios2/CMakeLists.txt b/testing/adios2/CMakeLists.txt
index ef043c0c9..f78866fa0 100644
--- a/testing/adios2/CMakeLists.txt
+++ b/testing/adios2/CMakeLists.txt
@@ -5,3 +5,4 @@
 
 add_subdirectory(interface)
 add_subdirectory(engine)
+add_subdirectory(bindings)
diff --git a/testing/adios2/bindings/CMakeLists.txt b/testing/adios2/bindings/CMakeLists.txt
new file mode 100644
index 000000000..8aa1ecd22
--- /dev/null
+++ b/testing/adios2/bindings/CMakeLists.txt
@@ -0,0 +1,8 @@
+#------------------------------------------------------------------------------#
+# Distributed under the OSI-approved Apache License, Version 2.0.  See
+# accompanying file Copyright.txt for details.
+#------------------------------------------------------------------------------#
+
+if(ADIOS2_HAVE_Python)
+  add_subdirectory(python)
+endif()
diff --git a/testing/adios2/bindings/python/CMakeLists.txt b/testing/adios2/bindings/python/CMakeLists.txt
new file mode 100644
index 000000000..8da6af4e7
--- /dev/null
+++ b/testing/adios2/bindings/python/CMakeLists.txt
@@ -0,0 +1,6 @@
+#------------------------------------------------------------------------------#
+# Distributed under the OSI-approved Apache License, Version 2.0.  See
+# accompanying file Copyright.txt for details.
+#------------------------------------------------------------------------------#
+
+python_add_test(PythonBPWrite TestBPWriteTypes.py)
diff --git a/testing/adios2/bindings/python/TestBPWriteTypes.py b/testing/adios2/bindings/python/TestBPWriteTypes.py
index bec5aa3c0..842adacd8 100644
--- a/testing/adios2/bindings/python/TestBPWriteTypes.py
+++ b/testing/adios2/bindings/python/TestBPWriteTypes.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python
+
 #
 # Distributed under the OSI-approved Apache License, Version 2.0.  See
 # accompanying file Copyright.txt for details.
-- 
GitLab