X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/95b811e451757b09f4cec2bef4c870d576dea8c3..refs/heads/master:/sonar-project.properties diff --git a/sonar-project.properties b/sonar-project.properties index eea3c1dce4..a9d571e93a 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,75 +1,169 @@ -# This file is used to scan the project for issues automatically -# Browse the result here: https://nemo.sonarqube.org/overview?id=simgrid +# This file is used to scan the project for issues automatically +# Browse the result here: https://sonarcloud.io/organizations/simgrid/projects?sort=-size -sonar.projectKey=simgrid +sonar.organization=simgrid +sonar.projectKey=simgrid_simgrid sonar.projectName=SimGrid -sonar.projectVersion=3.15 +sonar.projectVersion=3.35.1 -sonar.links.homepage=http://simgrid.org -sonar.links.issue=https://github.com/simgrid/simgrid/issues -sonar.links.scm=https://github.com/simgrid/simgrid.git +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,c1,c2,c3,c4 +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 -# 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 - -# "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.c1.ruleKey=cpp:S3630 -sonar.issue.ignore.multicriteria.c1.resourceKey=src/bindings/java/*.cpp - -# Pointers should not be cast to integral types -# But we need that for jMSG -sonar.issue.ignore.multicriteria.c2.ruleKey=cpp:S1767 -sonar.issue.ignore.multicriteria.c2.resourceKey=**/*.cpp +# 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 check our usage on a large panel of architectures on purpose -sonar.issue.ignore.multicriteria.c3.ruleKey=cpp:PPStringifyAndPastingUsage -sonar.issue.ignore.multicriteria.c3.resourceKey=**/*.cpp +# 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.c4.ruleKey=c:PPMacroName -sonar.issue.ignore.multicriteria.c4.resourceKey=include/smpi/smpi_extended_traces.h +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: -# - our unit tests -# - the tests that we borrowed elsewhere (MPICH and ISP) +# - 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 -sonar.exclusions=src/*_unit.c*,teshsuite/smpi/mpich3-test/**,teshsuite/smpi/isp/**,**/*_dtd.c,**/*_dtd.h,**/*yy.c,src/smpi/colls/*,examples/smpi/NAS/* - -# Ignore some files based on regex on their content (not working) -#sonar.issue.ignore.allfile=flexGenerated,flexMLGenerated -# - The one that are generated from Flex -#sonar.issue.ignore.allfile.flexGenerated.fileRegexp="generated by flex" -# - The one that are generated from FlexML (the header files are directly generated, not going though Flex) -sonar.issue.ignore.allfile.flexMLGenerated.fileRegexp="generated with the FleXML XML processor generator" - -# Ignore the files that SMPI scavenged here and there (not working) -#sonar.issue.ignore.allfile=mpiColls -#sonar.issue.ignore.allfile.flexGenerated.mpiColls="Ahmad Faraj" -#sonar.issue.ignore.allfile=mpivapich -#sonar.issue.ignore.allfile.flexGenerated.mpivapich="This file is part of the MVAPICH2 software package" -#sonar.issue.ignore.allfile=mpiOmpi -#sonar.issue.ignore.allfile.flexGenerated.mpiOmpi="University of Tennessee" +# - 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 -sonar.java.source=7 +# Version of the used prog languages +sonar.python.version=3 -# Talk to me (travis don't like it, it's too much) -# sonar.verbose=true +### 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