summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArkadiy Shapkin <arkady.shapkin@gmail.com>2016-06-24 22:29:18 (GMT)
committerArkadiy Shapkin <arkady.shapkin@gmail.com>2016-06-27 08:40:27 (GMT)
commit43c0ae3375361107286d92e71dc043ae522e7ee4 (patch)
tree78dc3333324f2548415c084a181b44cc490f66bc
parent10799abad25aa9ec7dcd08d9a46cad093f8bb074 (diff)
downloadgoogletest-43c0ae3375361107286d92e71dc043ae522e7ee4.zip
googletest-43c0ae3375361107286d92e71dc043ae522e7ee4.tar.gz
googletest-43c0ae3375361107286d92e71dc043ae522e7ee4.tar.bz2
Support running MSVC build on AppVeyourrefs/pull/723/head
-rw-r--r--appveyor.yml71
-rw-r--r--googletest/cmake/internal_utils.cmake16
-rwxr-xr-xgoogletest/test/gtest_list_tests_unittest.py4
-rwxr-xr-xtravis.sh2
4 files changed, 88 insertions, 5 deletions
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644
index 0000000..d613fd6
--- /dev/null
+++ b/appveyor.yml
@@ -0,0 +1,71 @@
+version: '{build}'
+
+os: Visual Studio 2015
+
+environment:
+ matrix:
+ - Toolset: v140
+ - Toolset: v120
+ - Toolset: v110
+ - Toolset: v100
+
+platform:
+ - Win32
+ - x64
+
+configuration:
+# - Release
+ - Debug
+
+build:
+ verbosity: minimal
+
+artifacts:
+ - path: '_build/Testing/Temporary/*'
+ name: test_results
+
+before_build:
+- ps: |
+ Write-Output "Configuration: $env:CONFIGURATION"
+ Write-Output "Platform: $env:PLATFORM"
+ $generator = switch ($env:TOOLSET)
+ {
+ "v140" {"Visual Studio 14 2015"}
+ "v120" {"Visual Studio 12 2013"}
+ "v110" {"Visual Studio 11 2012"}
+ "v100" {"Visual Studio 10 2010"}
+ }
+ if ($env:PLATFORM -eq "x64")
+ {
+ $generator = "$generator Win64"
+ }
+
+build_script:
+- ps: |
+ if (($env:TOOLSET -eq "v100") -and ($env:PLATFORM -eq "x64"))
+ {
+ return
+ }
+ md _build -Force | Out-Null
+ cd _build
+
+ & cmake -G "$generator" -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -Dgtest_build_tests=ON -Dgtest_build_samples=ON -Dgmock_build_tests=ON ..
+ if ($LastExitCode -ne 0) {
+ throw "Exec: $ErrorMessage"
+ }
+ & cmake --build . --config $env:CONFIGURATION
+ if ($LastExitCode -ne 0) {
+ throw "Exec: $ErrorMessage"
+ }
+
+test_script:
+- ps: |
+ if (($env:Toolset -eq "v100") -and ($env:PLATFORM -eq "x64"))
+ {
+ return
+ }
+
+ & ctest -C $env:CONFIGURATION --output-on-failure
+ if ($LastExitCode -ne 0) {
+ throw "Exec: $ErrorMessage"
+ }
diff --git a/googletest/cmake/internal_utils.cmake b/googletest/cmake/internal_utils.cmake
index 93e6dbb..777b91e 100644
--- a/googletest/cmake/internal_utils.cmake
+++ b/googletest/cmake/internal_utils.cmake
@@ -80,6 +80,10 @@ macro(config_compiler_and_linker)
# http://stackoverflow.com/questions/3232669 explains the issue.
set(cxx_base_flags "${cxx_base_flags} -wd4702")
endif()
+ if (NOT (MSVC_VERSION GREATER 1900)) # 1900 is Visual Studio 2015
+ # BigObj required for tests.
+ set(cxx_base_flags "${cxx_base_flags} -bigobj")
+ endif()
set(cxx_base_flags "${cxx_base_flags} -D_UNICODE -DUNICODE -DWIN32 -D_WIN32")
set(cxx_base_flags "${cxx_base_flags} -DSTRICT -DWIN32_LEAN_AND_MEAN")
@@ -235,8 +239,16 @@ function(py_test name)
# directly bind it from cmake. ${CTEST_CONFIGURATION_TYPE} is known
# only at ctest runtime (by calling ctest -c <Configuration>), so
# we have to escape $ to delay variable substitution here.
- add_test(${name}
- ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
+ if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.1)
+ add_test(
+ NAME ${name}
+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
+ --build_dir=${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>)
+ else (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.1)
+ add_test(
+ ${name}
+ ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py
--build_dir=${CMAKE_CURRENT_BINARY_DIR}/\${CTEST_CONFIGURATION_TYPE})
+ endif (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.1)
endif()
endfunction()
diff --git a/googletest/test/gtest_list_tests_unittest.py b/googletest/test/gtest_list_tests_unittest.py
index 925b09d..f2d2fd1 100755
--- a/googletest/test/gtest_list_tests_unittest.py
+++ b/googletest/test/gtest_list_tests_unittest.py
@@ -71,7 +71,7 @@ FooTest\.
TypedTest/0\. # TypeParam = (VeryLo{245}|class VeryLo{239})\.\.\.
TestA
TestB
-TypedTest/1\. # TypeParam = int\s*\*
+TypedTest/1\. # TypeParam = int\s*\*( __ptr64)?
TestA
TestB
TypedTest/2\. # TypeParam = .*MyArray<bool,\s*42>
@@ -80,7 +80,7 @@ TypedTest/2\. # TypeParam = .*MyArray<bool,\s*42>
My/TypeParamTest/0\. # TypeParam = (VeryLo{245}|class VeryLo{239})\.\.\.
TestA
TestB
-My/TypeParamTest/1\. # TypeParam = int\s*\*
+My/TypeParamTest/1\. # TypeParam = int\s*\*( __ptr64)?
TestA
TestB
My/TypeParamTest/2\. # TypeParam = .*MyArray<bool,\s*42>
diff --git a/travis.sh b/travis.sh
index 20fe3e3..bdecbd9 100755
--- a/travis.sh
+++ b/travis.sh
@@ -12,4 +12,4 @@ cmake -Dgtest_build_samples=ON \
-DCMAKE_CXX_FLAGS=$CXX_FLAGS \
../../$GTEST_TARGET
make
-make test
+CTEST_OUTPUT_ON_FAILURE=1 make test