-
Notifications
You must be signed in to change notification settings - Fork 94
/
sonar-project.properties
169 lines (137 loc) · 7.51 KB
/
sonar-project.properties
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# This file is used to scan the project for issues automatically
# Browse the result here: https://sonarcloud.io/organizations/simgrid/projects?sort=-size
sonar.organization=simgrid
sonar.projectKey=simgrid_simgrid
sonar.projectName=SimGrid
sonar.projectVersion=3.36.1
sonar.links.homepage=https://simgrid.org
sonar.links.issue=https://framagit.org/simgrid/simgrid/issues
sonar.links.scm=https://framagit.org/simgrid/simgrid/
# Comma-separated paths to directories with sources (required)
sonar.sources=src,examples,include,teshsuite
# Disable some rules on some files
sonar.issue.ignore.multicriteria=c1,c2a,c2b,c3,c5a,c5b,c6a,c6b,c7,c8,c9,c10a,c10b,c10c,cex1a,cex1b,cex2a,cex2b,cex3,cex4,f1,p1,s1,s2,s3,s4,s5
# Pointers should not be cast to integral types
# But we need that for smpi and other places
sonar.issue.ignore.multicriteria.c1.ruleKey=cpp:S1767
sonar.issue.ignore.multicriteria.c1.resourceKey=**/*.cpp
# Preprocessor operators "#" and "##" should not be used
# This poses portability issues, but we test on a large panel of architectures on purpose
# Until after Augustin goes to rehab, we cannot remove them all
sonar.issue.ignore.multicriteria.c2a.ruleKey=c:PPStringifyAndPastingUsage
sonar.issue.ignore.multicriteria.c2a.resourceKey=**/*
sonar.issue.ignore.multicriteria.c2b.ruleKey=cpp:PPStringifyAndPastingUsage
sonar.issue.ignore.multicriteria.c2b.resourceKey=**/*
# Macro names should comply with a naming convention
# But the macros in this file are named after the MPI standard
sonar.issue.ignore.multicriteria.c3.ruleKey=c:PPMacroName
sonar.issue.ignore.multicriteria.c3.resourceKey=include/smpi/smpi_extended_traces.h
# Replace alternative operator "not" with "!"
# I like it better, so please leave me alone
sonar.issue.ignore.multicriteria.c5a.ruleKey=cpp:S3659
sonar.issue.ignore.multicriteria.c5a.resourceKey=**/*.cpp
sonar.issue.ignore.multicriteria.c5b.ruleKey=cpp:S3659
sonar.issue.ignore.multicriteria.c5b.resourceKey=**/*.hpp
# Dynamically allocated memory should be released
# We have better ways to detect memleaks in SimGrid
# This is not disabled in example/ because our code should be nice looking
sonar.issue.ignore.multicriteria.c6a.ruleKey=cpp:S3584
sonar.issue.ignore.multicriteria.c6a.resourceKey=src/**/*.cpp
sonar.issue.ignore.multicriteria.c6b.ruleKey=cpp:S3584
sonar.issue.ignore.multicriteria.c6b.resourceKey=teshsuite/**/*.cpp
# Macros should not be used to define constants
# *.h includes are meant to be usable in C
sonar.issue.ignore.multicriteria.c7.ruleKey=cpp:S5028
sonar.issue.ignore.multicriteria.c7.resourceKey=**/*.h
# Deprecated code should be removed
# We do have a process to remove deprecated code
sonar.issue.ignore.multicriteria.c8.ruleKey=*:S1133
sonar.issue.ignore.multicriteria.c8.resourceKey=**/*
# Lambda return types should be implicit
# I don't see the point in general, plus we mostly use them when forced, to disambiguate
sonar.issue.ignore.multicriteria.c9.ruleKey=cpp:S3574
sonar.issue.ignore.multicriteria.c9.resourceKey=**/*
# Standard outputs should not be used directly to log anything
# Irrelevant for parsing examples
sonar.issue.ignore.multicriteria.c10a.ruleKey=cpp:S106
sonar.issue.ignore.multicriteria.c10a.resourceKey=teshsuite/s4u/evaluate-*-time/*.cpp
sonar.issue.ignore.multicriteria.c10b.ruleKey=cpp:S106
sonar.issue.ignore.multicriteria.c10b.resourceKey=teshsuite/s4u/is-router/*.cpp
sonar.issue.ignore.multicriteria.c10c.ruleKey=cpp:S106
sonar.issue.ignore.multicriteria.c10c.resourceKey=teshsuite/platforms/*.cpp
# Declarations should be placed in a namespace
# But examples are intended to remain small and simple
sonar.issue.ignore.multicriteria.cex1a.ruleKey=cpp:GlobalNamespaceMembers
sonar.issue.ignore.multicriteria.cex1a.resourceKey=examples/**/*.cpp
sonar.issue.ignore.multicriteria.cex1b.ruleKey=cpp:GlobalNamespaceMembers
sonar.issue.ignore.multicriteria.cex1b.resourceKey=examples/**/*.hpp
# Functions which do not return should be declared as "noreturn"
# But examples are intended to remain small and simple
sonar.issue.ignore.multicriteria.cex2a.ruleKey=c:S5271
sonar.issue.ignore.multicriteria.cex2a.resourceKey=examples/**/*.c
sonar.issue.ignore.multicriteria.cex2b.ruleKey=cpp:S5271
sonar.issue.ignore.multicriteria.cex2b.resourceKey=examples/**/*.cpp
# Unused function parameters should be removed, but not in examples
sonar.issue.ignore.multicriteria.cex3.ruleKey=c:S1172
sonar.issue.ignore.multicriteria.cex3.resourceKey=examples/**/*.c
# no need for constness precision in examples
sonar.issue.ignore.multicriteria.cex4.ruleKey=c:S995
sonar.issue.ignore.multicriteria.cex4.resourceKey=examples/**/*.c
# "reinterpret_cast" should not be used
# But we need this to interface C and Fortran
sonar.issue.ignore.multicriteria.f1.ruleKey=cpp:S3630
sonar.issue.ignore.multicriteria.f1.resourceKey=src/smpi/bindings/smpi_f77*.cpp
# In Python, Using command line arguments is security-sensitive
# But we are cautionous with it
sonar.issue.ignore.multicriteria.p1.ruleKey=python:S4823
sonar.issue.ignore.multicriteria.p1.resourceKey=**/*.py
# In MPI, there are C function pointers
sonar.issue.ignore.multicriteria.s1.ruleKey=cpp:S5205
sonar.issue.ignore.multicriteria.s1.resourceKey=src/smpi/**/*.cpp
# MPI standard has long prototypes
sonar.issue.ignore.multicriteria.s2.ruleKey=cpp:S107
sonar.issue.ignore.multicriteria.s2.resourceKey=src/smpi/**/*.cpp
# MPI standard uses void*
sonar.issue.ignore.multicriteria.s3.ruleKey=cpp:S5008
sonar.issue.ignore.multicriteria.s3.resourceKey=src/smpi/**/*.cpp
# MPI standard uses const, sometimes const_cast is needed
sonar.issue.ignore.multicriteria.s4.ruleKey=cpp:S859
sonar.issue.ignore.multicriteria.s4.resourceKey=src/smpi/**/*.cpp
# Pointer and reference parameters should be "const" if the corresponding object is not modified
# AFAICT, the "constness" is required by the MPI standard and cannot be fixed.
sonar.issue.ignore.multicriteria.s5.ruleKey=cpp:S995
sonar.issue.ignore.multicriteria.s5.resourceKey=src/smpi/bindings/*.cpp
# Exclude some files from the analysis:
# - the tests that we borrowed elsewhere (MPICH, MBI, McMini)
# - Flex-generated files
# - Collectives that we borrowed elsewhere (mpich, openMPI and other implems)
# - the NAS, that are included in our examples
# - The Catch2 library, that is included in our unit tests
# - The xxHash library, used by the MC
sonar.exclusions=src/3rd-party/*,teshsuite/smpi/mpich3-test/**,teshsuite/smpi/MBI/**,teshsuite/mc/mcmini/**,**/*_dtd.c,**/*_dtd.h,**/*yy.c,src/smpi/colls/**/*,examples/smpi/NAS/*,examples/smpi/gemm/gemm.c
# Exclude our examples from the duplication detection.
# Examples are expected to be somehow repetitive
sonar.cpd.exclusions=examples/**,teshsuite/**
# The build-wrapper output dir
sonar.cfamily.build-wrapper-output=bw-outputs
# Allow multithreaded execution
sonar.cfamily.threads=4
# Where the coverage files are located
# See https://docs.sonarqube.org/pages/viewpage.action?pageId=5312222
sonar.cfamily.gcov.reportsPath=Testing/CoverageInfo
# Files to ignore from coverage analysis:
# - foreign test suites
# - examples in smpi/mc (coverage doesn't work with model checker)
# - XML files
# - Python files used to generate either simcalls or deployment files
sonar.coverage.exclusions=teshsuite/smpi/mpich3-test/**,teshsuite/smpi/MBI/**,examples/smpi/mc/**,**/*.xml,**/generate.py,
# Encoding of the source files
sonar.sourceEncoding=UTF-8
# Version of the used prog languages
sonar.python.version=3
### NOTE: the following properties are overridden by Jenkins configuration
###
#sonar.cfamily.build-wrapper-output
#sonar.cfamily.gcov.reportsPath
#sonar.python.coverage.reportPaths
#sonar.cfamily.threads