diff --git a/.cppcheck b/.cppcheck new file mode 100644 index 0000000..4094858 --- /dev/null +++ b/.cppcheck @@ -0,0 +1,7 @@ +returnByReference:Chaos/Hash/Md4.hpp:141 +returnByReference:Chaos/Hash/Md5.hpp:165 +returnByReference:Chaos/Hash/Sha1.hpp:134 +useInitializationList:Chaos/Service/SeArray.hpp:25 +accessMoved:ChaosTests/Service/SeArrayTests.cpp:309 +accessMoved:ChaosTests/Service/SeArrayTests.cpp:331 +accessMoved:ChaosTests/Service/SeArrayTests.cpp:367 diff --git a/.gitea/workflows/ChaosCi.yaml b/.gitea/workflows/ChaosCi.yaml index ab45374..cf115f1 100644 --- a/.gitea/workflows/ChaosCi.yaml +++ b/.gitea/workflows/ChaosCi.yaml @@ -58,6 +58,38 @@ jobs: include-hidden-files: true retention-days: 10 + static-analysis: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + + - name: Install + run: | + sudo apt-get update + sudo apt-get install -y build-essential cmake cppcheck + + - name: Generate compile commands + run: | + mkdir build-debug + cmake -S . -B build-debug/ -D CMAKE_BUILD_TYPE=Debug -D CMAKE_EXPORT_COMPILE_COMMANDS=ON + + - name: Run cppcheck + run: | + cppcheck --version + cppcheck --project=build-debug/compile_commands.json \ + --file-filter='*ChaosTests/*' \ + --file-filter='*ChaosBenches/*' \ + --enable=warning,performance,portability \ + --suppress='*:*/_deps/*' \ + --suppress=missingIncludeSystem \ + --suppressions-list=.cppcheck \ + --inline-suppr \ + --error-exitcode=1 + benchmark: runs-on: ubuntu-latest