-
Notifications
You must be signed in to change notification settings - Fork 694
Gcov for swss daemon #1737
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gcov for swss daemon #1737
Changes from 118 commits
f9c08ea
0e117c3
112e7d4
4d81e30
254411b
92dd3d9
ddf04a6
f81aa65
9a6555e
43d291d
0893a34
87d45c2
6763c2a
b8734d7
9e151da
c34e006
0c9707d
340441f
5783f27
24dff6b
5d10659
84fec35
770e49f
de30000
2905898
6f9a927
c09aa2e
4d066c5
a95e118
3ee3d39
c32521d
da8c474
526a359
82081b5
f70b8df
c3bab57
8d4aa90
57fc240
faecfc0
217116a
01519f9
2814fb3
10855c3
11a5df9
8cce398
670a1da
088401f
dec56af
c1cc68f
d647a3c
66c456b
d9b4251
4b57f87
69968b5
0a08eb7
f2e8065
2bf7008
7398f03
7d8ff8f
ee5ed49
a4bff79
dfc610e
e66f7a6
1157911
76c0225
5809e34
78da84b
46489b2
07b1ecf
3666083
7bc6614
ca58c3e
2f71faf
5256239
e4d14c9
e84bdea
e86d027
11972f0
d8f7598
2741801
7b85423
f2b7518
b272321
2faf8c2
7fce788
0dd818b
5e0a3cf
1afddb7
ad81f2d
a529559
90dbed2
07343cb
a43cc97
67a2ba0
289d962
a4f1815
d3547cd
01c246d
548fdd5
61903dd
c7c4209
9677675
d94dc22
bc4e415
4e28e19
0c6224d
cb9a082
29c643d
7e26737
549a0df
a851188
2096b14
8b38232
6b13bb1
b162721
efc9512
c3c1786
fffde5b
2ab0297
ad84dd8
2296c82
751b457
c86d16e
a2bd4a7
a60c02a
225caf1
165066a
4bd191d
3bf64a0
2baf49b
75532f1
b300392
9aebbdd
3238444
c9eb9bd
c321351
ef11208
32bf0ac
886eecf
964afc0
0dc108e
cd14c5e
01ff966
ac48807
bc1b23c
a89bc59
d42d23a
0d1af2d
1ceb8e8
73f92dc
9b2dd7f
ed3956f
6ca2c2e
c68fc15
cf05e3a
ce60f63
23a2abd
8427585
8a396b7
a4d9459
2993055
7a3978d
f801a4a
cb541dc
5002831
276840a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,8 +3,6 @@ parameters: | |
| type: string | ||
| values: | ||
| - amd64 | ||
| - armhf | ||
| - arm64 | ||
| default: amd64 | ||
|
|
||
| - name: timeout | ||
|
|
@@ -41,15 +39,6 @@ jobs: | |
| runVersion: 'latestFromBranch' | ||
| runBranch: 'refs/heads/master' | ||
| displayName: "Download sonic swss common deb packages" | ||
| - task: DownloadPipelineArtifact@2 | ||
| inputs: | ||
| source: specific | ||
| project: build | ||
| pipeline: 12 | ||
| artifact: ${{ parameters.sairedis_artifact_name }} | ||
| runVersion: 'latestFromBranch' | ||
| runBranch: 'refs/heads/master' | ||
| displayName: "Download sonic sairedis deb packages" | ||
| - task: DownloadPipelineArtifact@2 | ||
| inputs: | ||
| artifact: ${{ parameters.swss_artifact_name }} | ||
|
|
@@ -72,6 +61,16 @@ jobs: | |
|
|
||
| cp -v ../*.deb .azure-pipelines/docker-sonic-vs/debs | ||
|
|
||
| curl -k -O -L "https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&target=target/debs/buster/libsaivs_1.0.0_amd64.deb" | ||
| curl -k -O -L "https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&target=target/debs/buster/libsaivs-dev_1.0.0_amd64.deb" | ||
| curl -k -O -L "https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&target=target/debs/buster/libsairedis_1.0.0_amd64.deb" | ||
| curl -k -O -L "https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&target=target/debs/buster/libsairedis-dev_1.0.0_amd64.deb" | ||
| curl -k -O -L "https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&target=target/debs/buster/libsaimetadata_1.0.0_amd64.deb" | ||
| curl -k -O -L "https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&target=target/debs/buster/libsaimetadata-dev_1.0.0_amd64.deb" | ||
| curl -k -O -L "https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&target=target/debs/buster/syncd-vs_1.0.0_amd64.deb" | ||
|
||
|
|
||
| cp -v *.deb .azure-pipelines/docker-sonic-vs/debs | ||
|
|
||
| pushd .azure-pipelines | ||
|
|
||
| docker build --no-cache -t docker-sonic-vs:$(Build.DefinitionName).$(Build.BuildNumber) docker-sonic-vs | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,8 +3,6 @@ parameters: | |
| type: string | ||
| values: | ||
| - amd64 | ||
| - armhf | ||
| - arm64 | ||
| default: amd64 | ||
|
|
||
| - name: pool | ||
|
|
@@ -73,25 +71,32 @@ jobs: | |
| runVersion: 'latestFromBranch' | ||
| runBranch: 'refs/heads/master' | ||
| displayName: "Download sonic swss common deb packages" | ||
| - task: DownloadPipelineArtifact@2 | ||
| inputs: | ||
| source: specific | ||
| project: build | ||
| pipeline: 12 | ||
| artifacts: ${{ parameters.sairedis_artifact_name }} | ||
| runVersion: 'latestFromBranch' | ||
| runBranch: 'refs/heads/master' | ||
| displayName: "Download sonic sairedis deb packages" | ||
|
|
||
| - script: | | ||
| curl -k -O -L "https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&target=target/debs/buster/libsaivs_1.0.0_amd64.deb" | ||
| curl -k -O -L "https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&target=target/debs/buster/libsaivs-dev_1.0.0_amd64.deb" | ||
| curl -k -O -L "https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&target=target/debs/buster/libsairedis_1.0.0_amd64.deb" | ||
| curl -k -O -L "https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&target=target/debs/buster/libsairedis-dev_1.0.0_amd64.deb" | ||
| curl -k -O -L "https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&target=target/debs/buster/libsaimetadata_1.0.0_amd64.deb" | ||
| curl -k -O -L "https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&target=target/debs/buster/libsaimetadata-dev_1.0.0_amd64.deb" | ||
| curl -k -O -L "https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&target=target/debs/buster/syncd-vs_1.0.0_amd64.deb" | ||
| sudo dpkg -i ${{ parameters.swss_common_artifact_name }}/libswsscommon_1.0.0_${{ parameters.arch }}.deb | ||
| sudo dpkg -i ${{ parameters.swss_common_artifact_name }}/libswsscommon-dev_1.0.0_${{ parameters.arch }}.deb | ||
| sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsaivs_*.deb | ||
| sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsaivs-dev_*.deb | ||
| sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsairedis_*.deb | ||
| sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsairedis-dev_*.deb | ||
| sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsaimetadata_*.deb | ||
| sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsaimetadata-dev_*.deb | ||
| sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/syncd-vs_*.deb | ||
| #sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsaivs_*.deb | ||
| #sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsaivs-dev_*.deb | ||
| #sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsairedis_*.deb | ||
| #sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsairedis-dev_*.deb | ||
| #sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsaimetadata_*.deb | ||
| #sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsaimetadata-dev_*.deb | ||
| #sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/syncd-vs_*.deb | ||
|
|
||
| sudo dpkg -i libsaivs_*.deb | ||
| sudo dpkg -i libsaivs-dev_*.deb | ||
| sudo dpkg -i libsairedis_*.deb | ||
| sudo dpkg -i libsairedis-dev_*.deb | ||
| sudo dpkg -i libsaimetadata_*.deb | ||
| sudo dpkg -i libsaimetadata-dev_*.deb | ||
| sudo dpkg -i syncd-vs_*.deb | ||
| workingDirectory: $(Pipeline.Workspace) | ||
| displayName: "Install sonic swss common and sairedis" | ||
| - checkout: self | ||
|
|
@@ -100,6 +105,8 @@ jobs: | |
| set -x | ||
| tar czf pytest.tgz tests | ||
| cp -r pytest.tgz $(Build.ArtifactStagingDirectory)/ | ||
| sudo cp libgcov_preload.so /usr/lib/ | ||
|
||
| ls -lh | ||
| ./autogen.sh | ||
| dpkg-buildpackage -us -uc -b -j$(nproc) && cp ../*.deb . | ||
| displayName: "Compile sonic swss" | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,110 @@ | ||
| parameters: | ||
| - name: arch | ||
| type: string | ||
| values: | ||
| - amd64 | ||
| default: amd64 | ||
|
|
||
| - name: pool | ||
| type: string | ||
| values: | ||
| - sonicbld | ||
| - default | ||
| default: default | ||
|
|
||
| - name: timeout | ||
| type: number | ||
| default: 180 | ||
|
|
||
| - name: sonic_slave | ||
| type: string | ||
|
|
||
| - name: sairedis_artifact_name | ||
| type: string | ||
|
|
||
| - name: swss_common_artifact_name | ||
| type: string | ||
|
|
||
| - name: swss_artifact_name | ||
| type: string | ||
|
|
||
| - name: artifact_name | ||
| type: string | ||
|
|
||
| - name: archive_pytests | ||
| type: boolean | ||
| default: false | ||
|
|
||
| jobs: | ||
| - job: | ||
| displayName: ${{ parameters.arch }} | ||
| timeoutInMinutes: ${{ parameters.timeout }} | ||
|
|
||
| pool: | ||
| ${{ if ne(parameters.pool, 'default') }}: | ||
| name: ${{ parameters.pool }} | ||
| ${{ if eq(parameters.pool, 'default') }}: | ||
| vmImage: 'ubuntu-20.04' | ||
|
|
||
| container: | ||
| image: sonicdev-microsoft.azurecr.io:443/${{ parameters.sonic_slave }}:latest | ||
|
|
||
| steps: | ||
| - script: | | ||
| sudo apt-get install -y lcov | ||
| displayName: "Install dependencies" | ||
| - task: DownloadPipelineArtifact@2 | ||
| inputs: | ||
| artifact: ${{ parameters.artifact_name }} | ||
| displayName: "Download gcov artifact" | ||
| - script: | | ||
| set -x | ||
| ls -lh | ||
| sudo tar -zxvf sonic-gcov.tar.gz | ||
| sudo cp -rf sonic-gcov $(Build.ArtifactStagingDirectory) | ||
| sudo rm sonic-gcov.tar.gz | ||
| ls -lh | ||
| workingDirectory: $(Pipeline.Workspace) | ||
| displayName: "store sonic-gcov" | ||
| - checkout: self | ||
| submodules: true | ||
| - script: | | ||
| set -x | ||
|
|
||
| wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb | ||
| sudo dpkg -i packages-microsoft-prod.deb | ||
| sudo apt-get update | ||
| sudo apt-get install -y apt-transport-https | ||
| sudo apt-get update | ||
| sudo apt-get install -y dotnet-sdk-5.0 | ||
|
|
||
| ls -lh | ||
| pushd ./s/ | ||
| sudo tar -zcvf swss.tar.gz ./* | ||
| sudo cp -rf swss.tar.gz $(Build.ArtifactStagingDirectory)/sonic-gcov | ||
| popd | ||
|
|
||
| sudo cp -rf $(Build.ArtifactStagingDirectory)/sonic-gcov ./ | ||
| pushd sonic-gcov | ||
| ls -lh | ||
| sudo chmod +x gcov_support.sh | ||
| sudo ./gcov_support.sh generate | ||
| sudo ./gcov_support.sh merge_container_info $(Build.ArtifactStagingDirectory) | ||
| sudo cp -rf gcov_output $(Build.ArtifactStagingDirectory) | ||
| ls -lh $(Build.ArtifactStagingDirectory) | ||
| popd | ||
| workingDirectory: $(Pipeline.Workspace) | ||
| displayName: "generate gcov reports" | ||
|
|
||
| - publish: $(Build.ArtifactStagingDirectory)/gcov_output | ||
| artifact: gcov_info | ||
| displayName: "Archive gcov info" | ||
| condition: always() | ||
|
|
||
| - task: PublishCodeCoverageResults@1 | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Looks like the task PublishCodeCoverageResults supports to publish multiple coverage files in single task, @pettershao-ragilenetworks, have you tried to merged the coverage files by the task itself? I am not sure it works or not.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. we only publish total.info(which later be convert into coverage.xml)one time. |
||
| inputs: | ||
| codeCoverageTool: Cobertura | ||
| summaryFileLocation: '$(Build.ArtifactStagingDirectory)/gcov_output/AllMergeReport/coverage.xml' | ||
| reportDirectory: '$(Build.ArtifactStagingDirectory)/gcov_output/AllMergeReport/' | ||
| displayName: 'Publish c c++ test coverage' | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| parameters: | ||
| - name: timeout | ||
| type: number | ||
| default: 60 | ||
|
|
||
| - name: gcov_artifact_name | ||
| type: string | ||
|
|
||
| jobs: | ||
| - job: | ||
| displayName: publish-gcov | ||
| timeoutInMinutes: ${{ parameters.timeout }} | ||
|
|
||
| pool: | ||
| vmImage: 'ubuntu-20.04' | ||
|
|
||
| steps: | ||
| - task: DownloadPipelineArtifact@2 | ||
| inputs: | ||
| artifact: ${{ parameters.gcov_artifact_name }} | ||
| displayName: "Download gcov info files" | ||
| - script: | | ||
| set -x | ||
|
|
||
| # Install .NET CORE | ||
| wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb | ||
| sudo dpkg -i packages-microsoft-prod.deb | ||
| sudo apt-get update | ||
| sudo apt --fix-broken install -y | ||
| sudo apt-get install -y apt-transport-https | ||
| sudo apt-get update | ||
| sudo apt-get install -y dotnet-sdk-5.0 | ||
|
|
||
| sudo cp -rf AllMergeReport $(Build.ArtifactStagingDirectory) | ||
|
|
||
| workingDirectory: $(Pipeline.Workspace) | ||
| displayName: "Install Publish Dependencies" | ||
|
|
||
| - task: PublishCodeCoverageResults@1 | ||
| inputs: | ||
| codeCoverageTool: Cobertura | ||
| summaryFileLocation: '$(Build.ArtifactStagingDirectory)/AllMergeReport/coverage.xml' | ||
| reportDirectory: '$(Build.ArtifactStagingDirectory)/AllMergeReport/' | ||
| displayName: 'Publish c c++ test coverage' |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -6,6 +6,12 @@ parameters: | |
| - name: log_artifact_name | ||
| type: string | ||
|
|
||
| - name: gcov_artifact_name | ||
| type: string | ||
|
|
||
| - name: sonic_slave | ||
| type: string | ||
|
|
||
| jobs: | ||
| - job: | ||
| displayName: vstest | ||
|
|
@@ -50,7 +56,7 @@ jobs: | |
| docker ps | ||
| ip netns list | ||
| pushd tests | ||
| sudo py.test -v --force-flaky --junitxml=tr.xml --imgname=docker-sonic-vs:$(Build.DefinitionName).$(Build.BuildNumber) | ||
| sudo py.test -v --force-flaky --junitxml=tr.xml --keeptb --imgname=docker-sonic-vs:$(Build.DefinitionName).$(Build.BuildNumber) | ||
|
||
| displayName: "Run vs tests" | ||
|
|
||
| - task: PublishTestResults@2 | ||
|
|
@@ -61,10 +67,24 @@ jobs: | |
|
|
||
| - script: | | ||
| cp -r tests/log $(Build.ArtifactStagingDirectory)/ | ||
| #sudo apt-get install -y gcc-8 g++-8 | ||
| #sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100 | ||
| #sudo update-alternatives --config gcc | ||
| #sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100 | ||
| #sudo update-alternatives --config g++ | ||
| sudo apt-get install -y lcov | ||
| ./tests/gcov_support.sh set_environment $(Build.ArtifactStagingDirectory) | ||
| docker stop $(docker ps -q -a) | ||
| docker rm $(docker ps -q -a) | ||
| displayName: "Collect logs" | ||
| condition: always() | ||
|
|
||
| - publish: $(Build.ArtifactStagingDirectory)/gcov_tmp | ||
| artifact: ${{ parameters.gcov_artifact_name }} | ||
| displayName: "Publish gcov output" | ||
| condition: always() | ||
|
|
||
| - publish: $(Build.ArtifactStagingDirectory)/ | ||
| artifact: ${{ parameters.log_artifact_name }}@$(System.JobAttempt) | ||
| displayName: "Publish logs" | ||
| condition: always() | ||
| condition: always() | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please revert it back.