forked from simgrid/simgrid
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsonar-project.properties
More file actions
187 lines (151 loc) · 8.21 KB
/
sonar-project.properties
File metadata and controls
187 lines (151 loc) · 8.21 KB
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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
# This file is used to scan the project for issues automatically
# Browse the result here: https://sonarcloud.io/dashboard/?id=simgrid
sonar.organization=simgrid
sonar.projectKey=simgrid_simgrid
sonar.projectName=SimGrid
sonar.projectVersion=3.23.3
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=j1,j2,j3,j4,j5,jni1,jni2,c1,c2a,c2b,c3,c4a,c4b,c5a,c5b,c6a,c6b,c7,c8,c9,c10,f1,p1,s1,s2,s3,s4
# The Object.finalize() method should not be overriden
# But we need to clean the native memory with JNI
sonar.issue.ignore.multicriteria.j1.ruleKey=squid:ObjectFinalizeOverridenCheck
sonar.issue.ignore.multicriteria.j1.resourceKey=**/*.java
# Throwable.printStackTrace(...) should not be called
# But we don't have no better mechanism, and our Java apps are not rocket science
sonar.issue.ignore.multicriteria.j2.ruleKey=squid:S1148
sonar.issue.ignore.multicriteria.j2.resourceKey=**/*.java
# Using command line arguments is security-sensitive
# But the authors of the applications using our library will be their only users, so there is no security concern
sonar.issue.ignore.multicriteria.j3.ruleKey=squid:S4823
sonar.issue.ignore.multicriteria.j3.resourceKey=**/*.java
# Standard outputs should not be used directly to log anything
# But this file is used before SimGrid is initialized
sonar.issue.ignore.multicriteria.j4.ruleKey=squid:S106
sonar.issue.ignore.multicriteria.j4.resourceKey=src/bindings/java/org/simgrid/NativeLib.java
# Deprecated code should be removed
# We do have a process to remove deprecated code
sonar.issue.ignore.multicriteria.j5.ruleKey=squid:S1133
sonar.issue.ignore.multicriteria.j5.resourceKey=**/*.java
# "reinterpret_cast" should not be used
# But this is exactly intended to store a pointer into a long -- what we do here
sonar.issue.ignore.multicriteria.jni1.ruleKey=cpp:S3630
sonar.issue.ignore.multicriteria.jni1.resourceKey=src/bindings/java/*.cpp
# Unused function parameters should be removed
# But JNI mandates these parameters
sonar.issue.ignore.multicriteria.jni2.ruleKey=cpp:S1172
sonar.issue.ignore.multicriteria.jni2.resourceKey=src/bindings/java/*.cpp
# Pointers should not be cast to integral types
# But we need that for jMSG, 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
# Declarations should be placed in a namespace
# But examples are intended to remain small and simple
sonar.issue.ignore.multicriteria.c4a.ruleKey=cpp:GlobalNamespaceMembers
sonar.issue.ignore.multicriteria.c4a.resourceKey=examples/**/*.cpp
sonar.issue.ignore.multicriteria.c4b.ruleKey=cpp:GlobalNamespaceMembers
sonar.issue.ignore.multicriteria.c4b.resourceKey=examples/**/*.hpp
# 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=cpp: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 in teshsuite/simdag
sonar.issue.ignore.multicriteria.c10.ruleKey=cpp:S106
sonar.issue.ignore.multicriteria.c10.resourceKey=teshsuite/simdag/**/*.cpp
# "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
# Exclude some files from the analysis:
# - our unit tests
# - the tests that we borrowed elsewhere (MPICH and ISP)
# - 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
# - RngStream, that is included in SimGrid
sonar.exclusions=src/include/catch.hpp,src/*_unit.c*,teshsuite/smpi/mpich3-test/**,teshsuite/smpi/isp/**,**/*_dtd.c,**/*_dtd.h,**/*yy.c,src/xbt/automaton/parserPromela.tab.*,src/smpi/colls/**/*,examples/smpi/NAS/*,examples/smpi/gemm/gemm.c,src/xbt/RngStream.c,include/xbt/RngStream.h
# 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
# - XML files
# - Python files used to generate either simcalls or deployment files
# - Any java source code (it's deprecated now)
sonar.coverage.exclusions=teshsuite/smpi/isp/**,teshsuite/smpi/mpich3-test/**,**/*.xml,src/simix/simcalls.py,**/generate.py,**/*.java,src/bindings/java/**
# Encoding of the source files
sonar.sourceEncoding=UTF-8
# Version of the used prog languages
sonar.java.source=7
sonar.java.binaries=CMakeFiles/simgrid-java_jar.dir,examples/deprecated/java
# Don't talk to me: travis don't like your verbosity
# sonar.verbose=true
### NOTE: the following properties are overridden by Jenkins configuration
###
#sonar.java.binaries
#sonar.cfamily.build-wrapper-output
#sonar.cfamily.gcov.reportsPath
#sonar.python.coverage.reportPath
#sonar.coverage.jacoco.xmlReportPaths
#sonar.cfamily.threads