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
|
# 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=4.0
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.java.source=8
sonar.java.binaries=build/CMakeFiles/simgrid_jar.dir,build/simgrid.jar,build/examples/java
sonar.java.libraries=
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
|