@@ -70,17 +70,6 @@ stages:
70
70
useConfigFile : true
71
71
configFilePath : ' GitVersion.yml'
72
72
73
- # - script: echo 'Set build version $(build.buildNumber)'
74
- # displayName: 'Set build version to $(GitVersion.MajorMinorPatch).$(GitVersion.CommitsSinceVersionSource)'
75
- # env:
76
- # Action: '##vso[build.updatebuildnumber]'
77
- # BuildVersion: $(GitVersion.MajorMinorPatch).$(GitVersion.CommitsSinceVersionSource)
78
-
79
- # - script: |
80
- # echo "Updating the version for this build: BuildId:$(build.buildid) Build.buildNumber:$(build.buildNumber) build.sourceversion:$(Build.SourceVersion)"
81
- # echo "##vso[task.setvariable variable=buildFullSemVer;isoutput=true]$(GitVersion.MajorMinorPatch).$(GitVersion.CommitsSinceVersionSource)"
82
- # name: passOutput
83
-
84
73
# Set the flags for testing, build here.
85
74
# timethis_BUILD_TESTS=ON
86
75
# timethis_BUILD_PACKAGE=OFF
@@ -103,6 +92,31 @@ stages:
103
92
condition : succeeded()
104
93
continueOnError : false
105
94
95
+ # Try for coverage (but only on Linux build machines)
96
+ - task : CMake@1
97
+ displayName : ' CTest Coverage (Linux build only)'
98
+ inputs :
99
+ cmakeArgs : ' -E chdir $(System.DefaultWorkingDirectory)/build/$(cmake.preset) ctest $(System.DefaultWorkingDirectory)/build/$(cmake.preset) --output-junit $(System.DefaultWorkingDirectory)/build/$(cmake.preset)/tests/results/test_detail.xml --output-on-failure -T Test -T Coverage'
100
+ condition : and(succeeded(), startsWith(variables['Agent.OS'], 'Linux'))
101
+ continueOnError : false
102
+
103
+ - task : CmdLine@2
104
+ displayName : ' Coverage collection (Linux builds Only)'
105
+ inputs :
106
+ script : |
107
+ #tree
108
+ #gcovr -e $(System.DefaultWorkingDirectory)/build/$(cmake.preset)/_deps/ --cobertura-pretty --cobertura $(System.DefaultWorkingDirectory)/build/$(cmake.preset)/tests/results/coverage.xml
109
+ echo "Profile data show..functions.."
110
+ llvm-profdata show -all-functions -counts -ic-targets -output=tests/llvm_prof.log tests/default.profraw
111
+ echo "Profile data merge............"
112
+ llvm-profdata merge -output=tests/merge.out -instr tests/default.profraw
113
+ echo "Profile data show..html......."
114
+ llvm-cov show -format=html tests/timethis_tests --instr-profile=tests/merge.out -o tests/results/coverage.info
115
+ echo "Profile data export..lcov....."
116
+ llvm-cov export tests/timethis_tests --instr-profile=tests/merge.out -format=lcov > tests/results/coverage.lcov
117
+ workingDirectory : " $(System.DefaultWorkingDirectory)/build/$(cmake.preset)"
118
+ condition : and(succeeded(), startsWith(variables['Agent.OS'], 'Linux'))
119
+
106
120
- task : PublishTestResults@2
107
121
displayName : ' Publish $(buildConfiguration) Test Results test_detail.xml'
108
122
inputs :
@@ -113,6 +127,12 @@ stages:
113
127
continueOnError : false
114
128
condition : succeeded()
115
129
130
+ - task : PublishCodeCoverageResults@2
131
+ displayName : ' Publish Coverage Results (Linux builds)'
132
+ inputs :
133
+ summaryFileLocation : ' $(System.DefaultWorkingDirectory)/build/$(cmake.preset)/tests/results/coverage.*'
134
+ condition : and(succeeded(), startsWith(variables['Agent.OS'], 'Linux'))
135
+
116
136
# ################################# STAGE ####################################
117
137
# STAGE: Pack_n_Publish #
118
138
# ############################################################################
0 commit comments