Logo AND Algorithmique Numérique Distribuée

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