mirror of
https://github.com/microsoft/GSL.git
synced 2025-03-26 14:58:31 -04:00
Rework CI for C++2020 tests
This commit is contained in:
parent
03af2432e0
commit
d442c85820
@ -18,10 +18,12 @@ stages:
|
|||||||
parameters:
|
parameters:
|
||||||
jobName: 'Validate GCC latest'
|
jobName: 'Validate GCC latest'
|
||||||
imageName: ubuntu-20.04
|
imageName: ubuntu-20.04
|
||||||
|
CXXVersions: [ 14, 17 ]
|
||||||
- template: ./pipelines/jobs.yml
|
- template: ./pipelines/jobs.yml
|
||||||
parameters:
|
parameters:
|
||||||
jobName: 'Validate GCC Previous'
|
jobName: 'Validate GCC Previous'
|
||||||
imageName: ubuntu-18.04
|
imageName: ubuntu-18.04
|
||||||
|
CXXVersions: [ 14, 17 ]
|
||||||
|
|
||||||
# Clang
|
# Clang
|
||||||
- stage: Clang
|
- stage: Clang
|
||||||
@ -40,6 +42,7 @@ stages:
|
|||||||
parameters:
|
parameters:
|
||||||
jobName: 'Validate Clang Previous'
|
jobName: 'Validate Clang Previous'
|
||||||
imageName: ubuntu-18.04
|
imageName: ubuntu-18.04
|
||||||
|
CXXVersions: [ 14, 17 ]
|
||||||
|
|
||||||
# MSVC
|
# MSVC
|
||||||
- stage: MSVC
|
- stage: MSVC
|
||||||
@ -53,6 +56,7 @@ stages:
|
|||||||
parameters:
|
parameters:
|
||||||
jobName: 'Validate MSVC Previous'
|
jobName: 'Validate MSVC Previous'
|
||||||
imageName: vs2017-win2016
|
imageName: vs2017-win2016
|
||||||
|
CXXVersions: [ 14, 17 ]
|
||||||
|
|
||||||
# Apple-Clang
|
# Apple-Clang
|
||||||
- stage: Apple_Clang
|
- stage: Apple_Clang
|
||||||
@ -62,7 +66,9 @@ stages:
|
|||||||
parameters:
|
parameters:
|
||||||
jobName: 'Validate Apple-Clang latest'
|
jobName: 'Validate Apple-Clang latest'
|
||||||
imageName: macos-10.15
|
imageName: macos-10.15
|
||||||
|
CXXVersions: [ 14, 17 ]
|
||||||
- template: ./pipelines/jobs.yml
|
- template: ./pipelines/jobs.yml
|
||||||
parameters:
|
parameters:
|
||||||
jobName: 'Validate Apple-Clang Previous'
|
jobName: 'Validate Apple-Clang Previous'
|
||||||
imageName: macos-10.14
|
imageName: macos-10.14
|
||||||
|
CXXVersions: [ 14, 17 ]
|
||||||
|
@ -1,33 +1,19 @@
|
|||||||
parameters:
|
parameters:
|
||||||
jobName: ''
|
jobName: ''
|
||||||
imageName: ''
|
imageName: ''
|
||||||
|
CXXVersions: [ 14, 17, 20 ]
|
||||||
|
buildTypes: [ 'Debug', 'Release' ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
- job:
|
- ${{ each CXXVersion in parameters.CXXVersions }}:
|
||||||
displayName: ${{ parameters.imageName }}
|
- ${{ each buildType in parameters.buildTypes }}:
|
||||||
pool:
|
- job:
|
||||||
vmImage: ${{ parameters.imageName }}
|
displayName: ${{ format('{0} {1} C++{2}', parameters.imageName, buildType, CXXVersion) }}
|
||||||
strategy:
|
pool:
|
||||||
matrix:
|
vmImage: ${{ parameters.imageName }}
|
||||||
14_debug:
|
continueOnError: false
|
||||||
GSL_CXX_STANDARD: '14'
|
steps:
|
||||||
BUILD_TYPE: 'Debug'
|
- template: ./steps.yml
|
||||||
14_release:
|
parameters:
|
||||||
GSL_CXX_STANDARD: '14'
|
buildType: ${{ buildType }}
|
||||||
BUILD_TYPE: 'Release'
|
CXXVersion: ${{ CXXVersion }}
|
||||||
17_debug:
|
|
||||||
GSL_CXX_STANDARD: '17'
|
|
||||||
BUILD_TYPE: 'Debug'
|
|
||||||
17_release:
|
|
||||||
GSL_CXX_STANDARD: '17'
|
|
||||||
BUILD_TYPE: 'Release'
|
|
||||||
# Note: Currently, only some C++20 features are supported by GSL
|
|
||||||
20_debug:
|
|
||||||
GSL_CXX_STANDARD: '20'
|
|
||||||
BUILD_TYPE: 'Debug'
|
|
||||||
20_release:
|
|
||||||
GSL_CXX_STANDARD: '20'
|
|
||||||
BUILD_TYPE: 'Release'
|
|
||||||
continueOnError: false
|
|
||||||
steps:
|
|
||||||
- template: ./steps.yml
|
|
||||||
|
@ -1,9 +1,13 @@
|
|||||||
|
parameters:
|
||||||
|
buildType: ''
|
||||||
|
CXXVersion: ''
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- task: CMake@1
|
- task: CMake@1
|
||||||
name: Configure
|
name: Configure
|
||||||
inputs:
|
inputs:
|
||||||
workingDirectory: build
|
workingDirectory: build
|
||||||
cmakeArgs: '-DGSL_CXX_STANDARD=$(GSL_CXX_STANDARD) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -Werror=dev .. '
|
cmakeArgs: '-DGSL_CXX_STANDARD=${{ parameters.CXXVersion }} -DCMAKE_BUILD_TYPE=${{ parameters.buildType }} -DCI_TESTING:BOOL=ON -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -Werror=dev .. '
|
||||||
|
|
||||||
- task: CMake@1
|
- task: CMake@1
|
||||||
name: Build
|
name: Build
|
||||||
|
@ -9,6 +9,10 @@ include(ExternalProject)
|
|||||||
# will make visual studio generated project group files
|
# will make visual studio generated project group files
|
||||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||||
|
|
||||||
|
if(CI_TESTING AND GSL_CXX_STANDARD EQUAL 20)
|
||||||
|
add_compile_definitions(FORCE_STD_SPAN_TESTS=1)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(IOS)
|
if(IOS)
|
||||||
add_compile_definitions(GTEST_HAS_DEATH_TEST=1 IOS_PROCESS_DELAY_WORKAROUND=1)
|
add_compile_definitions(GTEST_HAS_DEATH_TEST=1 IOS_PROCESS_DELAY_WORKAROUND=1)
|
||||||
endif()
|
endif()
|
||||||
|
@ -119,7 +119,7 @@ TEST(at_tests, InitializerList)
|
|||||||
EXPECT_DEATH(gsl::at({1, 2, 3, 4}, 4), expected);
|
EXPECT_DEATH(gsl::at({1, 2, 3, 4}, 4), expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__cplusplus) && __cplusplus >= 202002L
|
#if defined(FORCE_STD_SPAN_TESTS) || defined(__cpp_lib_span) && __cpp_lib_span >= 202002L
|
||||||
TEST(at_tests, std_span)
|
TEST(at_tests, std_span)
|
||||||
{
|
{
|
||||||
std::vector<int> vec{1, 2, 3, 4, 5};
|
std::vector<int> vec{1, 2, 3, 4, 5};
|
||||||
@ -145,7 +145,7 @@ TEST(at_tests, std_span)
|
|||||||
EXPECT_DEATH(gsl::at(csp, -1), expected);
|
EXPECT_DEATH(gsl::at(csp, -1), expected);
|
||||||
EXPECT_DEATH(gsl::at(csp, gsl::narrow_cast<gsl::index>(sp.size())), expected);
|
EXPECT_DEATH(gsl::at(csp, gsl::narrow_cast<gsl::index>(sp.size())), expected);
|
||||||
}
|
}
|
||||||
#endif // __cplusplus >= 202002L
|
#endif // defined(FORCE_STD_SPAN_TESTS) || defined(__cpp_lib_span) && __cpp_lib_span >= 202002L
|
||||||
|
|
||||||
#if !defined(_MSC_VER) || defined(__clang__) || _MSC_VER >= 1910
|
#if !defined(_MSC_VER) || defined(__clang__) || _MSC_VER >= 1910
|
||||||
static constexpr bool test_constexpr()
|
static constexpr bool test_constexpr()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user