Add C++ support for testcases
authorJonathan Peyton <jonathan.l.peyton@intel.com>
Fri, 20 Oct 2017 19:42:32 +0000 (19:42 +0000)
committerJonathan Peyton <jonathan.l.peyton@intel.com>
Fri, 20 Oct 2017 19:42:32 +0000 (19:42 +0000)
Patch by Simon Convent

Differential Revision: https://reviews.llvm.org/D38878

llvm-svn: 316230

openmp/runtime/test/CMakeLists.txt
openmp/runtime/test/lit.cfg
openmp/runtime/test/lit.site.cfg.in
openmp/runtime/test/tasking/kmp_task_reduction_nest.cpp

index 88c02c8..a22a7d9 100644 (file)
@@ -51,6 +51,8 @@ if(${LIBOMP_STANDALONE_BUILD})
   endif()
   set(LIBOMP_TEST_COMPILER ${CMAKE_C_COMPILER} CACHE STRING
     "Compiler to use for testing OpenMP library")
+  set(LIBOMP_TEST_CXX_COMPILER ${CMAKE_CXX_COMPILER} CACHE STRING
+    "Compiler to use for testing OpenMP library")
   set(LIBOMP_TEST_OPENMP_FLAG -fopenmp CACHE STRING
     "OpenMP compiler flag to use for testing OpenMP library")
   find_program(LIBOMP_LLVM_LIT_EXECUTABLE
@@ -90,8 +92,10 @@ else()
   # LLVM source tree build, test just-built clang
   if(NOT MSVC)
     set(LIBOMP_TEST_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang)
+    set(LIBOMP_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++)
   else()
     set(LIBOMP_TEST_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang.exe)
+    set(LIBOMP_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++.exe)
   endif()
   set(LIBOMP_TEST_OPENMP_FLAG -fopenmp=libomp)
   set(FILECHECK_EXECUTABLE ${LLVM_RUNTIME_OUTPUT_INTDIR}/FileCheck)
index e9eeae8..328e32e 100644 (file)
@@ -30,7 +30,7 @@ def append_dynamic_library_path(path):
 config.name = 'libomp'
 
 # suffixes: A list of file extensions to treat as test files.
-config.suffixes = ['.c']
+config.suffixes = ['.c', '.cpp']
 
 # test_source_root: The root path where tests are located.
 config.test_source_root = os.path.dirname(__file__)
@@ -99,9 +99,14 @@ if config.has_ompt:
 
 config.substitutions.append(("%libomp-compile-and-run", \
     "%libomp-compile && %libomp-run"))
+config.substitutions.append(("%libomp-cxx-compile-and-run", \
+    "%libomp-cxx-compile && %libomp-run"))
+config.substitutions.append(("%libomp-cxx-compile", \
+    "%clangXX %cflags -std=c++11 %s -o %t" + libs))
 config.substitutions.append(("%libomp-compile", \
     "%clang %cflags %s -o %t" + libs))
 config.substitutions.append(("%libomp-run", "%t"))
+config.substitutions.append(("%clangXX", config.test_cxx_compiler))
 config.substitutions.append(("%clang", config.test_compiler))
 config.substitutions.append(("%openmp_flag", config.test_openmp_flag))
 config.substitutions.append(("%cflags", config.test_cflags))
index b0d57ce..4ef828c 100644 (file)
@@ -1,6 +1,7 @@
 @AUTO_GEN_COMMENT@
 
 config.test_compiler = "@LIBOMP_TEST_COMPILER@"
+config.test_cxx_compiler = "@LIBOMP_TEST_CXX_COMPILER@"
 config.test_filecheck = "@FILECHECK_EXECUTABLE@"
 config.test_openmp_flag = "@LIBOMP_TEST_OPENMP_FLAG@"
 config.test_extra_cflags = "@LIBOMP_TEST_CFLAGS@"
index d54de59..dcaabcf 100644 (file)
@@ -1,5 +1,5 @@
-// RUN: %libomp-compile-and-run
-// RUN: %libomp-compile -DFLG=1 && %libomp-run
+// RUN: %libomp-cxx-compile-and-run
+// RUN: %libomp-cxx-compile -DFLG=1 && %libomp-run
 #include <cstdio>
 #include <cmath>
 #include <cassert>