Commit Graph

1298 Commits

Author SHA1 Message Date
Oliver Stöneberg 34317f86ab
reduce.py: several improvements (#3701) 2022-01-13 07:52:47 +01:00
Oliver Stöneberg 4f508c93c4
reduce.py: improved --segfault / added detection of "hang" caused by reduced code / cleanups (#3693) 2022-01-12 22:26:32 +01:00
guillaume-uH57J9 dfd22919bc
donate_cpu_lib.py: fix callstack capture, fix dependency check (#3665)
* donate_cpu_lib.py: fix callstack capture, fix dependency check

check_requirements: verify that module psutil is available. 
scan_package: collect crash callstack regardless of cppcheck_path and cppcheck version

* donate_cpu_lib.pu: remove debug code

* donate_cpu_lib.py: add parameter capture_callstack
2022-01-02 22:16:00 +01:00
Daniel Marjamäki 4d5ad5e42e triage: make it possible to copy selected results 2021-12-22 18:58:11 +01:00
guillaume-uH57J9 a3560aaf5a
Better git usage in donate-cpu.py to reduce bandwidth and disk usage (#3584)
* Better git usage in donate-cpu.py to reduce bandwidth and disk usage

Main changes:
* Bump client version
* Move try+retry logic to function try_retry to reduce duplication
* Use exponential backoff for try_retry
* git clone with --depth=1 to reduce bandwidth and disk use
* Use multiple worktree to work with multiple versions, instead of back-and-forth checkouts

* donate-cpu.py fixes for review comments and automated check failures

* Move compile_cppcheck within (if ver == 'main) branch to avoid duplicate compile_cppcheck+compile_version cals
* Use classic format syntax for python 3.5 compatibility
* Fix undefined CalledProcessError detected by pylint

* donate-cpu.py code changes following code review

* Migration existing "cppcheck" directory if available instead of "git clone"
* Logging message tweaks
* Use subprocess' cwd parameter instead of os.chdir() to avoid risk around changing and not restoring the working directory

* Update tools/test-my-pr.py to account for donate_cpu_lib changes

* donate-cpu.py: ensure correct workspace locations with relative --work-path
2021-12-19 18:52:36 +01:00
Rikard Falkeborn 5fd17ef2c2
test-my-pr: Allow to specify packages to process (#3605) 2021-12-05 20:25:38 +01:00
Oliver Stöneberg 54d621555d
scan GUI sources with clang-tidy in CI (#3233)
* build UI dependencies before running clang-tidy

* clang-tidy.yml: enabled GUI sources and build some dependencies for clang-tidy

* work around missing dependency for Qt install step
2021-10-31 20:15:32 +01:00
Paul Fultz II 8c9c46835a
Fix for 6597: false negative: uninitialized variable usage not detected (ValueFlow , multi variables) (#3535) 2021-10-30 22:13:58 +02:00
Oliver Stöneberg b4704ba065
use target-specific configuration instead of global ones in CMake (#3534) 2021-10-30 09:08:07 +02:00
Oliver Stöneberg 7004ceb691
donate_cpu_lib.py: fixed detection of ThreadExecutor error (#3521) 2021-10-24 11:02:51 +02:00
Oliver Stöneberg 90ba25a6bc
donate-cpu-server.py: another function compression improvement for stack trace overview in crash report (#3520) 2021-10-24 11:01:48 +02:00
Oliver Stöneberg c49d246303
donate-cpu-server.py: improved function compression in stack trace overview of crash report (#3513) 2021-10-18 07:25:31 +02:00
Oliver Stöneberg 48d5f47e73
Fix #10509 (donate_cpu_lib.py: fixed stupid error in lookup of signal in internal error) (#3503) 2021-10-13 14:51:56 +02:00
Oliver Stöneberg 85b02e4ecb
Fix #10509 (improved signal detection daca@home client) / also optimized stack trace generation (#3157) 2021-10-11 19:07:19 +02:00
Oliver Stöneberg 3f8e523c71
donate_cpu_lib.py: some cleanups (#3490) 2021-10-09 14:51:24 +02:00
Daniel Marjamäki 5be950a4ff donate-cpu-server: OLD_VERSION=2.6 2021-10-02 15:22:19 +02:00
Daniel Marjamäki ca047e57bf Switch from http to https on our sourceforge webpage 2021-08-28 12:46:54 +02:00
Daniel Marjamäki 08d02432a4 removed old daca2 script 2021-08-28 12:11:14 +02:00
Alfi Maulana aab5b39e2d
feat: add support for .ipp and .ixx extensions (#3383) 2021-08-09 10:46:56 +02:00
Daniel Marjamäki dc65f9b1a7 Remove astyle scripts 2021-08-07 21:06:14 +02:00
Paul Fultz II 7f358b2bed
Format with uncrustify (#3388) 2021-08-07 20:51:18 +02:00
Paul Fultz II a9daa1abd5
Add creduce.py script to run creduce (#3341) 2021-07-18 07:51:01 +02:00
chrchr-github 8cd8b9c64e
Fix MSVC build and some warnings (#3334) 2021-07-16 21:55:12 +02:00
Daniel Marjamäki beac3d37b5 daca@home: OLD_VERSION=2.5 2021-07-04 11:12:48 +02:00
Maksim Derbasov 5dae162780
[triage tool] Keep UI alive while wget and tar execution (#3296) 2021-06-13 10:51:42 +02:00
Daniel Marjamäki 2cfe05b256 extracttests; allow several check functions 2021-05-22 09:43:56 +02:00
Daniel Marjamäki 2c10e0747a extracttests: ensure error comment is written on proper line 2021-05-16 08:40:04 +02:00
Daniel Marjamäki db050d0796 extracttests: write expected warning as comment in testfile 2021-05-15 19:59:28 +02:00
Daniel Marjamäki 2925627eb6 extracttests.py: add a few missing includes 2021-05-13 20:50:24 +02:00
Daniel Marjamäki 6d3d907e10 extracttests.py: Fix syntax error 2021-05-13 20:33:27 +02:00
Daniel Marjamäki d549770b5b updated extracttests.py. fix syntax errors in test cases. 2021-05-13 20:21:02 +02:00
amai2012 f371a92501
Fix CodeQL security warnings
Cure warning "Incomplete regular expression for hostnames"
2021-04-20 11:08:01 +02:00
Ken-Patrick Lehrmann 5768c3a726
Check stat return value in addFiles2 (#3214) 2021-04-18 21:52:14 +02:00
Oliver Stöneberg 5de58c4ddd
added clang-tidy to CI (#3218) 2021-04-18 21:51:47 +02:00
Oliver Stöneberg 98335e5d5f
moved more tests from Travis to GitHub actions (#3201) 2021-04-09 07:47:11 +02:00
Oliver Stöneberg 6397e29f84
cleaned up includes based on include-what-you-use (#3141) 2021-04-03 21:30:50 +02:00
Oliver Stöneberg 4d526dcbf7
extended the Python script checks in the CI and adjusted some scripts (#3186) 2021-03-31 22:09:42 +02:00
DGarry82 77716ee398
fix w64-mingw32-ld linking error (#3184)
* fix w64-mingw32-ld linking error

use shlwapi instead of Shlwapi.lib in mingw-w64 build environment
(prevents "/usr/bin/x86_64-w64-mingw32-ld: cannot find -lShlwapi" error)

* same MinGW shlwapi fix for {tests,tools}/CMakeLists.txt

Co-authored-by: Igor Rondarev <igor.rondarev@gmail.com>
2021-03-29 17:04:42 +02:00
Bo Rydberg 99e2f49559
Use v2.4 as old for comparing against latest (#3181)
This is regarding donate-cpu functionality.
2021-03-22 18:35:38 +01:00
Daniel Marjamäki 42437277dc Update Copyright year 2021-03-21 20:58:32 +01:00
Oliver Stöneberg f8edb7b6e6
various daca@home client cleanups (#3161) 2021-03-06 12:34:12 +01:00
Oliver Stöneberg 0c6bb44ea5
donate_cpu_lib.py: fixed timeout handling - again (#3158) 2021-03-02 10:05:49 +01:00
Oliver Stöneberg 4b1d1ebe41
donate_cpu_lib.py: fixed potential hang in timeout handling (#3155) 2021-03-01 22:17:00 +01:00
Oliver Stöneberg be62fab737
donate_cpu_lib.py: improved timeout reporting and process handling (#3153) 2021-02-27 03:19:08 +01:00
Oliver Stöneberg dcf32563ea
various daca@home improvements (#3139) 2021-02-21 08:47:58 +01:00
Oliver Stöneberg 4dd7b2e958
donate_cpu_lib.py: reduced daca timeout to 1800 seconds (#3140) 2021-02-20 13:44:14 +01:00
Oliver Stöneberg e219596797
donate-cpu-server.py: if a Python exception was raised return it instead of just closing the connection (#3130) 2021-02-14 16:16:28 +01:00
Oliver Stöneberg d008356c28
fixed #9965: handle template function names properly in stack trace o… (#3125) 2021-02-11 08:04:26 +01:00
Oliver Stöneberg ff125f6ac6
fixed #9965: improved stack trace overview in daca crash report (#3122)
- HTML escape the traces
- handle traces without a code line
- handle frames without a source file
- handle frames without an address
2021-02-09 22:17:14 +01:00
Rikard Falkeborn 332c59df51
tools/readme.md: Remove astyle_client description (#3115) 2021-02-07 09:03:37 +01:00
Oliver Stöneberg 4a9166c3bd
donate-cpu-server.py: added "Date Time" column to time reports / optimized file parsing in some reports (#3105) 2021-01-31 21:20:52 +01:00
Oliver Stöneberg b472b4e65d
some Python cleanups based on PyCharm inspections (#2999)
* some Python cleanups based on PyCharm inspections

* test-helloworld.py: adjusted assert in test_addon_relative_path()
2021-01-31 14:27:11 +01:00
Oliver Stöneberg 1b9865be12
donate-cpu-server.py: sort time report entries by factor and corrected titles (#3102) 2021-01-31 12:01:01 +01:00
Oliver Stöneberg 99d9abee41
donate-cpu-server.py: fixed daca crash report (#3092) 2021-01-29 10:28:35 +01:00
Oliver Stöneberg ff9d6499ec
donate-cpu-server.py: split time report into improvement and regression report (#3081) 2021-01-25 08:10:28 +01:00
Oliver Stöneberg f46a9e3543
fixed/excluded some shellcheck warnings and actually fail the build when something is found (#3068) 2021-01-20 18:43:49 +01:00
Rikard Falkeborn 50cdb6cbfc
Astyle: sync windows and linux folders (#3016) 2021-01-06 17:13:44 +01:00
Oliver Stöneberg 96704c9971
fixed and enabled some more clang-tidy warnings (#3007) 2021-01-05 17:51:32 +01:00
orbitcowboy 01c434f8bf donate_cpu: Auto detect ntl-library 2021-01-04 16:28:05 +01:00
Rikard Falkeborn 8dc8aa0459
Matchcompiler parse all Match|simpleMatch on the same line (#2993)
* MatchCompiler: Neaten error messages

Especially the added space makes it a little more readable.

* MatchCompiler: Add spaces between operators

* Matchcompiler: Don't bailout if non-const pattern

If matchcompiler found a call to Token::Match() or Token::simpleMatch()
with an unknown string argument, subsequent calls to Token::Match() or
Token::simpleMatch() on the same line would not be processed by
matchcompiler.

To fix this, keep track of the last index we found a match, and update
it accordingly when the line is modified. To avoid having to keep track
of if "Match" or "simpleMatch" is the first match we find, just make a
loop over them.
2020-12-31 19:28:06 +01:00
orbitcowboy c643e7e7b5 donate_cpu: Improved auto detection of bsd library configuration 2020-12-28 18:08:36 +01:00
orbitcowboy 922e2b5713 donate_cpu: Added auto detection for GiNaC 2020-12-28 17:41:16 +01:00
orbitcowboy 28b4d1a6b3 donate_cpu: Auto detect pcre.h 2020-12-28 09:30:39 +01:00
orbitcowboy 81be03fd6d donate_cpu: Incremented client version. 2020-12-27 14:41:36 +01:00
orbitcowboy 4ab5b33cc7 donate_cpu: Auto detect wxSqlite3 includes 2020-12-27 12:44:56 +01:00
Oliver Stöneberg 018b26a4ef
donate_cpu_lib.py: fixed some cases with missing error information / cleanups (#2982) 2020-12-26 17:59:19 +01:00
orbitcowboy 23c7621b24 donate_cpu_lib.py: Improved auto detection of bsd config 2020-12-18 13:23:41 +01:00
orbitcowboy 52e6bd76c4 donate_cpu_lib.py: Improved auto detection of bsd config 2020-12-18 13:21:49 +01:00
orbitcowboy 099d4ce574 donate_cpu: Add another header to auto detect BSD configuration. 2020-12-12 17:36:31 +01:00
orbitcowboy 4b079c8934 donate_cpu: Add rule for automatically activate bsd.cfg 2020-12-12 17:29:25 +01:00
Daniel Marjamäki dffa40803e donate-cpu-server: update versions 2020-12-05 13:23:53 +01:00
Daniel Marjamäki c7cbe7f2d3 rename externals/tinyxml to externals/tinyxml2 2020-11-16 09:11:53 +01:00
Daniel Marjamäki f779a44be0 astyle formatting 2020-11-14 21:40:38 +01:00
Daniel Marjamäki ef5d5e84c5 Fixed #8936 (Add PicoJSON Copyright notice) 2020-11-14 21:31:50 +01:00
Daniel Marjamäki 5b156d20bd compare_ast_symdb.py: small fix and refactorings 2020-10-31 17:37:23 +01:00
Daniel Marjamäki 6cf571af97 compare_ast_symdb.py: improved script for comparing cppcheck/clang ast etc 2020-10-31 14:57:12 +01:00
Daniel Marjamäki b96f23a388 Fixed tools/compare_ast.py 2020-10-30 10:14:18 +01:00
Daniel Marjamäki ef42b82a49 fix tools/compare_ast.py 2020-10-29 21:18:40 +01:00
Daniel Marjamäki 417bc5c732 tools; remove old script for comparing cppcheck and clang asts 2020-10-27 21:02:34 +01:00
orbitcowboy d37ddc7114 donate_cpu_lib.py: Formatted Qt list, there are no functional changes 2020-10-04 18:42:59 +02:00
orbitcowboy 9d2564993a donate_cpu_lib.py: Improved Qt config detection by adding more Qt-headers. 2020-10-04 18:31:30 +02:00
orbitcowboy 71f5e5bb46 donate_cpu_lib.py: Improved detection of Qt-includes by adding <QMetaType> 2020-10-03 20:38:42 +02:00
orbitcowboy 1886a43f98 donate_cpu_lib.py: Improved detection of Qt headers: added <Qtest> detection. 2020-10-03 20:15:08 +02:00
orbitcowboy 5eb718f9b4 donate_cpu_lib.py: Improved detection of GTK headers 2020-10-03 19:36:32 +02:00
Daniel Marjamäki ad620413f1 donate-cpu-server: OLD_VERSION=2.2 2020-10-03 12:55:55 +02:00
orbitcowboy 0b62ca7250 donate_cpu.py: Improved detection of Qt headers 2020-10-03 12:19:02 +02:00
orbitcowboy 14f70cf131 Attempt to make travis happy 2020-10-02 20:45:06 +02:00
orbitcowboy b19e631292 Added macros from ICU-Project (ref. to https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/index.html). This found by daca@home. 2020-10-02 20:01:06 +02:00
Daniel Marjamäki 8a90e55ece triage: fix version match for 2.1 2020-09-14 15:43:24 +02:00
firewave fa7e687853 donate_cpu_lib.py: fixed Python error 2020-06-15 22:12:22 +02:00
Daniel Marjamäki 33388217a5 new default branch is main 2020-06-15 20:04:57 +02:00
Daniel Marjamäki 60208a11d1 donate_cpu: Update OLD_VERSION to 2.1 2020-06-15 19:48:20 +02:00
Daniel Marjamäki e2c99ee697 donate_cpu: master branch was renamed to main 2020-06-15 19:46:34 +02:00
Daniel Marjamäki 37245a8179 Update copyright year 2020-06-13 16:37:12 +02:00
Oliver Stöneberg 37bc0483a4
made check.h less heavy (#2633) 2020-05-23 07:16:49 +02:00
Ken-Patrick Lehrmann d1279856d5
Fix cmake in Release mode (#2655)
In tools/, it did not understand that some files are generated by
matchcompiler.py.

```
CMake Error at tools/CMakeLists.txt:7 (add_executable):
  Cannot find source file:

    </some/path>/cppcheck/build/lib/build/mc_pathmatch.cpp

  Tried extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm
  .hpp .hxx .in .txx

CMake Error at tools/CMakeLists.txt:7 (add_executable):
  No SOURCES given to target: dmake

```

Co-authored-by: Ken-Patrick Lehrmann <kp.lehrmann@gmail.com>
2020-05-22 20:20:22 +02:00
Ken-Patrick Lehrmann 9a5e53032d
Update matchcompiler after change in Token::Match (#2653)
The change in token.cpp was done in f6788c047
This should fix the failures in travis.

Co-authored-by: Ken-Patrick Lehrmann <kp.lehrmann@gmail.com>
2020-05-20 21:33:29 +02:00
Daniel Marjamäki c5455764ad astyle formatting
[ci skip]
2020-05-20 16:39:27 +02:00
Daniel Marjamäki e2ead44a2d dmake updates. externals/z3_version.h should never be added as a dependency 2020-05-19 20:14:29 +02:00
Daniel Marjamäki d8d794c522 Fix validateXML 2020-05-15 17:05:55 +02:00
Rikard Falkeborn 1d80cd23ca
test-my-pr: Add timing info (#2642) 2020-05-14 19:45:53 +02:00
Oliver Stöneberg 4f7d162555
matchcompiler.py: only add additional includes if necessary (#2636) 2020-05-12 21:49:39 +02:00
Oliver Stöneberg e066300f95
added dmake targets to CMake (#2634) 2020-05-10 16:41:50 +02:00
Daniel Marjamäki 8d25901a96 daca@home: update OLD_VERSION 2020-05-10 14:30:53 +02:00
Oliver Stöneberg 1388e9385b
cleaned up setting of compiler options and a few more things in CMake (#2599)
* cleaned up compiler options related code in CMake

* moved cmake_minimum_required() and raised to latest 2.8.x version

* use proper compiler version check / print compiler version

* fixed linking of sanitized builds

* added proper version checks to newer Clang warnings and enabled them / moved tinyxml_objs flags to proper compiler

* disabled -Wdeprecated-declarations for Clang

* compileroptions.cmake: removed unnecessary check for clang++ existence - CMAKE_CXX_COMPILER_ID is determined by CMake

* printInfo.cmake: removed unnecessary message for ANALYZE_ADDRESS - LSAN is part of ASAN and enabled by default

* cleaned up if() comparisons in CMake

* added/adjusted TODOs
2020-04-22 11:04:19 +02:00
Oliver Stöneberg 1af959af2c
fixed -Wextra-semi-stmt Clang warnings (#2553)
* fixed -Wextra-semi-stmt Clang warnings

* adjusted REDIRECT macro to require a semicolon

* testmathlib.cpp: rolled back accidental change
2020-04-21 17:27:51 +02:00
Sebastian feb767a66b
donate_cpu_lib.py: Fix that timed out analyses are handled as crashes (#2561)
Sometimes it could happen that SIGSEGV is thrown when Cppcheck is killed
because of a timeout. Then the execution is wrongly handled as a crash
and debugged with gdb instead of marking it as timed out.
This fixes that issue by checking the time out before checking sig_num.
2020-02-28 08:12:10 +01:00
Rikard Falkeborn 73ee317866
donate_cpu: Fix timeout if multithreaded (#2510)
Highly inspired by https://stackoverflow.com/a/4791612.
2020-02-25 11:49:56 +01:00
versat bdf715b3e5 donate-cpu-server.py: Fix link in headline and code inspection warnings 2020-02-19 09:42:32 +01:00
Rikard Falkeborn b13ae83845
donate_cpu: Use with ... as (#2520) 2020-02-03 10:27:32 +01:00
Rikard Falkeborn 0d361f8a2e
test-my-pr: Retry if failed to get package (#2515) 2020-02-02 18:00:36 +01:00
Rikard Falkeborn 60c3d4c482
daca@home: Add links to packages on time page (#2518)
Also, increase the size of the package field to match the setting for
the other pages (some packages are too small to fit at the moment).
2020-02-02 16:36:19 +01:00
Rikard Falkeborn 50216d53dd tools/test: Make scripts executable (#2509) 2020-01-27 06:53:58 +01:00
Rikard Falkeborn ba33c7f6cd daca2: Improve package sorting using natsort (#2505)
* daca2: Improve package sorting using natsort

This switches the external dependency from semver to natsort, and
improves comparison of packages where one or more of the packages do not
use semantic versioning (major.minor.patch).

This also makes daca2-download and daca2-getpackages work with python 3.
In theory, they should work with python 2 as well, but I have not tested
it.

* Make daca2 scripts executable

* Update hashbangs to python3

* Update usage description

To avoid specifying python version in the usage description, just
show how to execute the scripts and leave the rest to the shebangs.

* No need to specify python version in start_donate_cpu_server_test_local.sh

Leave it to the hashbang instead.
2020-01-26 18:39:37 +01:00
Sebastian 206eb0f527
Fix #9584: Limit stack trace depth in daca@home crash page (#2502)
This limits the backtrace to a maximum of 50 entries.
Trac ticket: https://trac.cppcheck.net/ticket/9584
2020-01-25 15:20:06 +01:00
versat 7280dab5b2 donate-cpu-server.py: Fix rejection of xz packages 2020-01-24 13:31:55 +01:00
Sebastian 2d95c35974
Donate CPU/test-my-pr: Add timeout for the Cppcheck execution (#2500)
This adds a timeout of 60 minutes for the Cppcheck analysis.
Timed out results do not count as crash but they are uploaded and
marked with "TO!" in the list of the latest results. No "diff" is
generated for timed out results so they do not add wrong entries to
the "Diff report".
In test-my-pr.py the timed out results are listed separately just like
the crashes.
donate-cpu-server.py: Add timeout report
2020-01-24 12:33:51 +01:00
Sebastian d8e0f40663
donate-cpu/test-my-pr: Minor fixes (PEP 8, old Python 2 code, ...) (#2499)
* donate-cpu/test-my-pr: Minor fixes (PEP 8, old Python 2 code, ...)

* test-my-pr.py: Add Python 3 shebang
2020-01-21 14:27:39 +01:00
Sebastian 7c7b0e55ed
daca2-getpackages.py: Fix #9508: Add support for xz compressed archives (#2493)
Using .tar.xz packages adds about 4500 additional packages that can be
tested and changes many existing packages where a more recent version
can be used now that is only available as .tar.xz file.

Related ticket: https://trac.cppcheck.net/ticket/9508

donate-cpu.py: Require at least Python 3.4
xz support was added with 3.3.
2020-01-17 12:23:07 +01:00
Sebastian 53623ddf6f
daca2-getpackages.py: Fix semver sorting and getting latest package (#2490)
There were two issues:
1. The version was not correctly extracted out of the filename. When
extracting a sub-string in Python one has to specify start index and
end index instead of start index and length.
2. The function `semver.cmp()` does nothing useful. Instead the function
`semver.compare()` must be called when two version should be compared.
See https://github.com/python-semver/python-semver/issues/117#issuecomment-479188221

Because `semver.compare()` now really compares the versions it is
possible that an exception is thrown if a version is not in the semver
version format. In such cases the sorting is aborted and the last
filename in the array is returned. This is often but not always already
the latest version from what I have seen.
2020-01-16 20:02:56 +01:00
Sebastian cd9ec5aac6
daca@home client: Require at least Python 3 from now on (#2491)
This makes it possible to implement new features like .tar.xz support
(see https://trac.cppcheck.net/ticket/9508) or aborting endlessly
running analysis via timeout (see
https://sourceforge.net/p/cppcheck/discussion/development/thread/86813a8a53/).
2020-01-16 20:01:46 +01:00
Rikard Falkeborn 41caf28c6f Make triage work with log-files from test-my-pr.py (#2468)
* triage: Allow master as version

Log-files from test-my-pr.py shows "master" as version. Extend regexp to
match "master", and improve regexp handling slightly to avoid making
assumptions on the length of the version.

* triage: Show log-files when opening files

test-my-pr.py defaults to save output as "my_check_diff.log". Show
log-files by default to make it more convenient to check these files as
well.
2020-01-03 19:33:42 +01:00
versat 5715ba7ce0 Donate CPU client test scripts: Use Python from shebang 2019-12-22 19:33:10 +01:00
versat 5d007bb9bb donate_cpu_lib.py: Enable library detection as planned after 1.90 release 2019-12-21 19:26:31 +01:00
versat 7216c3079c donate-cpu-server.py: Set OLD_VERSION to 1.90 2019-12-21 19:12:41 +01:00
Daniel Marjamäki 6890757986 Update Copyright year 2019-12-21 11:23:01 +01:00
Rikard Falkeborn eb6203cee3 test-my-pr: Allow work_path to be relative (#2444)
Previously, calling test-my-pr with a relative work-path resulted in a
crash when trying to create the result file (due to the change of
current working directory).
2019-12-12 16:43:40 +01:00
Rikard Falkeborn 3ff4d83e6d donate_cpu_lib: Fix python 3 crash if fail to get package (#2445)
* donate_cpu_lib: Fix python 3 crash if fail to get package

Decoding a string is not allowed in python 3 (in python 2 it works).
If fetching the package fails, assign an empty byte string instead to
avoid crashing.

* Initialize package instead
2019-12-12 15:04:25 +01:00
Sebastian de4d44ae2f
opencv2.cfg: Add initial OpenCV 2.x API Library Configuration (#2439) 2019-12-10 19:34:30 +01:00
amai2012 7fdaa4ae89 Sync dmake and Makefile (change missing from 3a71eb834d) 2019-12-04 20:27:48 +01:00
amai2012 3a71eb834d Run xmllint on cppcheck-errors.rng. Speed up creation of example XML output for validateXML target 2019-12-02 22:03:59 +01:00
Bo Rydberg e6d692d960 Fix daca2 using latest version of package (#2393)
* Add semver import for sorting ls-lR list

* Fix using latest release version of package

* Import semver with pip in travis file
2019-11-24 13:05:21 +01:00
Sebastian 1b28fb2d1a
donate-cpu.py: Verify argument for jobs (-jN) (#2386)
Yesterday, I observed that some client with a wrong jobs setting
(only "-j") requested one package after another and always uploaded
results where it only said that the argument "-j" is invalid for
Cppcheck.
This check should avoid such cases where results are overwritten with
useless data and the server is kept busy for nothing.
2019-11-22 22:04:41 +01:00
Sebastian 5f2f19a646
dmake: Update Visual Studio solution and project (#2385)
This also fixes syntax errors for modern code that is not supported
by old Visual Studio IDEs/compilers.
2019-11-21 19:39:19 +01:00
versat 946c5e4dbc astyle client/server: Remove scripts because they are not used
If someone needs them please tell us and we can restore the scripts
and let the server run again.
2019-11-21 08:06:26 +01:00
Sebastian 590ec74998
astyle client/server: Update server address + minor changes (#2383) 2019-11-21 08:01:05 +01:00
Armin Müller 130ebe4b85 Typos found by running "codespell" (#2380) 2019-11-19 20:02:24 +01:00
amai2012 0024c3e446 Run xmllint on cfg/cppcheck-cfg.rng 2019-11-17 16:25:10 +01:00
Sebastian 9e0ae11ca2
Donate CPU client: Fix TortoiseSVN analysis (#2353)
- Keep Visual Studio Solution/Project files
- Remove Linux library configurations
- Use correct path to solution file
2019-11-12 15:34:04 +01:00
versat c04589faf3 donate_cpu_lib.py: Prepare using new configs mfc.cfg, microsoft_atl.cfg
This will especially improve analysis of Windows projects like
TortoiseSVN which has been added with fb8b9b12cb
2019-11-12 12:15:50 +01:00
Daniel Marjamäki fb8b9b12cb donate-cpu: adjust options for TortoiseSVN 2019-11-10 13:36:34 +01:00
Daniel Marjamäki 8c9b717773 donate-cpu-server: tweaks for package http://cppcheck.sf.net/tortoisesvn.tgz 2019-11-09 19:30:15 +01:00
Sebastian b93321e038
donate-cpu.py: Add shebang, warn when run under Python 2 (#2336)
Add shebang to run the client via Python 3 by default.
Add warning if Python 2 is used.
As discussed in the forum https://sourceforge.net/p/cppcheck/discussion/development/thread/86813a8a53/ switching to Python 3 has some benefits.
2019-11-09 18:18:57 +01:00
Sebastian 828a3fda1f
pylintrc_travis: Enable more checks, fix anomalous-backslash-in-string issues (#2334) 2019-11-06 17:49:37 +01:00
Sebastian 0a38b1b511 pylintrc_travis: Enable more messages and fix issues (#2332)
The plan is to enable more and more useful messages and fix the issues
step by step to improve the code quality.
2019-11-05 21:05:43 +01:00
Sebastian 83caedec8a
donate-cpu.py: Fix two pylint warnings (#2327)
Line 102: Comparison to literal
Line 117: Unnecessary "else" after "break"
2019-11-04 18:36:14 +01:00
Maksim Derbasov afe59531c7 Triage cleanup (#2324)
* regex for version

* fields names improved

* codestyle

* m prefix for fsmodel

* string duplication removed

* find in files: show all entries

* spaces

* added hint to checkboxes; element naming fixed

* layout naming improvement

* spacing 6->1
2019-11-04 07:10:31 +01:00
Maksim Derbasov 7de55b09f8 Triage tool ui improvement (#2320)
* triage tool: ui improvement

* small code tweak

* ci fix

* ci fix 2nd attempt
2019-11-03 08:30:30 +01:00
Armin Müller c95b5d0a3c donate-cpu-server.py: Add explanation how to read timing list (#2315)
* Add explanation how to read timing list

* fixed HTML
2019-11-03 08:27:05 +01:00
Daniel Marjamäki 908cd39572 daca2-packages: improved filter for versions 2019-11-03 08:13:06 +01:00
Daniel Marjamäki dbbea54b74 daca2-getpackages: if a package has many versions then only scan latest 2019-11-03 08:05:06 +01:00
Maksim Derbasov 91a4bcd71e Triage tool usability improvement (#2319)
* gitignore for triage tool

* window header

* Search filename / in files functionallity for triage tool

* small codeclean
2019-11-01 09:29:00 +01:00
Sebastian 8b2903d5ce openssl.cfg: Add OpenSSL library configuration with tests (#2248)
* openssl.cfg: Add OpenSSL library configuration with tests

Reference: https://www.openssl.org/docs/man1.1.1/man3/

* openssl.cfg: Add some configurations for EVP functions

Add alloc/dealloc configuration for EVP_CIPHER_CTX_new and
EVP_CIPHER_CTX_free.
Add configuration for encryption functions that are used in example code
which is added to the tests.
2019-10-31 09:21:08 +01:00
Maksim Derbasov e1c41765f5 Update tools/readme.md (#2300)
* Update readme.md

* Update readme.md
2019-10-29 20:05:16 +01:00
Sebastian ec521fba36
donate-cpu-server.py: Upgrade to work with Python 3 (drop Python 2 support) (#2292)
* donate-cpu-server.py: Use tools to prepare code to work with Python 3

The following commands were used for these changes:
futurize -1 -w donate-cpu-server.py
2to3 -w donate-cpu-server.py

* Make the server work under Python 3

Manually fixed the Unicode issues. Received data is decoded, sent data
is encoded.

* Add backward compatible type hints (in comments)

This enables better static analysis and suggestions in an IDE.

* Fix Pylint warning "Comparison to literal"

* .travis.yml: Fix/enhance pylint verification and Python compilation

donate-cpu-server.py is only Python 3 compatible, so it must be ignored
for pylint verification under Python 2.
All Python scripts that were verified with pylint under Python 2 are
now also verified with pylint under Python 3.

* donate-cpu-server.py: Add shebang and mark script as executable

* start_donate_cpu_server_test_local.sh: Directly execute server

Since the server script is executable now and has a shebang it can
be directly executed.

* Use Python 3.0 function annotations instead of comment type hints

Reference: https://www.python.org/dev/peps/pep-3107/
2019-10-26 21:10:21 +02:00
Daniel Marjamäki 575fa35ce2 daca@home: Use ftp server in germany instead of sweden, that is closer for most/all active clients 2019-10-26 17:47:42 +02:00
Sebastian 8fb794e731
libsigc++.cfg: Add configuration for library libsigc++ (#2291)
* libsigc++.cfg: Add configuration for library libsigc++

Reference: https://libsigcplusplus.github.io/libsigcplusplus/

* Make code compatible with libsigc++-2.0 instead of 3.0

Since Version 3.0 C++14 is required which is not (fully) supported in
some older GCC versions.
2019-10-26 17:37:14 +02:00
Maksim Derbasov 48012aceb4 test-my-pr.py: several improvements (#2294)
* test-my-pr.py: specify remote branch explicitly

When I merged (local) branch to master, `merge-base` returned me not valid commit hash.

* donate_cpu_lib.py: strip filename properly

* test-my-pr.py: reduced packages count; reduced output

* donate_cpu_lib.py: fix previous change
2019-10-24 21:54:22 +02:00
Maksim Derbasov 2500964b58 [tools] test-my-PR functionality (#2288)
* test my PR functionallity

* Improvement for test-my-pr script

* test-my-pr align master with branch
2019-10-23 09:12:15 +02:00
Daniel Marjamäki dc7cf10962 daca2-getpackages: update instructions 2019-10-19 18:49:58 +02:00
Maksim Derbasov a7a568d75a donate cpu server: added 2 commands (#2283) 2019-10-19 10:52:04 +02:00
Sebastian f3f00d1780
donate-cpu-server.py: Use "/var/daca@home" as work path by default. (#2281)
Fall back to "~/daca@home" if "/var/daca@home" does not exist.
Print the used work path when the script starts.
This way we do not have to change the server script before uploading
it to the server while being fully backwards compatible.
2019-10-18 20:04:50 +02:00
Sebastian c8e1ca7127
donate-cpu-server.py: Fix PEP8 issues (#2280) 2019-10-18 12:57:51 +02:00
versat cde08fb950 Remove accidentally added files 2019-10-18 12:53:25 +02:00
versat 094caf31ac std.cfg: Remove redundant configurations for vector::(push|pop)_back()
Add tests in std.cpp to verify that a configuration for the functions
exists.
2019-10-18 12:40:10 +02:00
Rikard Falkeborn 6e1c7e48b6 Donate cpu server crash locations (#2276)
donate-cpu-server: Print grouped stack traces in crash report

Example output:

	Packages: psi xenomai
	Token::hasKnownValue (this=0x0) at lib/token.h:988
	988	        return mImpl->mValues && std::any_of(mImpl->mValues->begin(), mImpl->mValues->end(), std::mem_fn(&ValueFlow::Value::isKnown));
	#0 Token::hasKnownValue (...) at lib/token.h:988
	#1 valueFlowReverse (...) at build/valueflow.cpp:3775
	#2 valueFlowBeforeCondition (...) at /usr/include/c++/8/bits/stl_list.h:301
	#3 ValueFlow::setValues (...) at build/valueflow.cpp:8403
	#4 Tokenizer::simplifyTokens1 (...) at build/tokenize.cpp:11095
	#5 CppCheck::checkFile (...) at build/cppcheck.cpp:513
	#6 CppCheck::check (...) at /usr/include/c++/8/bits/basic_string.h:936
	#7 CppCheckExecutor::check_internal (...) at cli/cppcheckexecutor.cpp:884
	#8 CppCheckExecutor::check (...) at cli/cppcheckexecutor.cpp:198
	#9 main (...) at cli/main.cpp:95

	Packages: broker
	valueFlowReverse (tokenlist=tokenlist@entry=0x7fffffffbce0, tok=tok@entry=0x555555cc9930, varToken=varToken@entry=0x555555cc9b70, val=..., val2=..., errorLogger=errorLogger@entry=0x7fffffffcb20, settings=0x7fffffffcd40) at build/valueflow.cpp:3775
	3775	                if (!assignTok->hasKnownValue()) {
	#0 valueFlowReverse (...) at build/valueflow.cpp:3775
	#1 valueFlowBeforeCondition (...) at build/valueflow.cpp:4092
	#2 ValueFlow::setValues (...) at build/valueflow.cpp:8406
	#3 Tokenizer::simplifyTokens1 (...) at build/tokenize.cpp:11095
	#4 CppCheck::checkFile (...) at build/cppcheck.cpp:513
	#5 CppCheck::check (...) at build/cppcheck.cpp:197
	#6 CppCheckExecutor::check_internal (...) at cli/cppcheckexecutor.cpp:884
	#7 CppCheckExecutor::check (...) at cli/cppcheckexecutor.cpp:198
	#8 main (...) at cli/main.cpp:95
2019-10-18 09:56:15 +02:00
Sebastian 478625c802
kde.cfg: Add KDE configuration and tests (#2278)
Reference: https://kde.org
2019-10-17 21:29:32 +02:00
Sebastian 75e4e70ce4
Fix #9299 (Makefile: tools/matchcompiler.py is executed via Python 2) (#2247)
Check if "python" is available, if not check for "python3" and use
the available Python interpreter. If no Python interpreter is found,
"make" fails with an according error message.
This solves the issue that not all modern Linux distributions any longer
install Python 2 by default, so "python" is not available and
"make MATCHCOMPILER=yes" would fail. Instead of forcing the users to
install Python 2, Python 3 is used in such a case now if it is
available.
2019-10-08 10:55:40 +02:00
Sebastian bfbfeefbb3 reduce.py: Allow reducing error messages, print output in case of error (#2179)
* reduce.py: Allow reducing error messages, print output in case of error

Allow reducing code that triggers (false positive) error messages.
Print Cppcheck output in case Cppcheck returns unsuccessfully and no
segfault is expected. This helps fixing messed up command lines (for
example issues with the path).

* Use "else" as suggested
2019-10-04 21:22:59 +02:00
Daniel Marjamäki 7ab22c7176 ExprEngine: Use smt solver Z3 2019-10-02 17:59:04 +02:00
Sebastian bf8f96255b
donate-cpu.py: Add internal timing information of Cppcheck to output (#2217)
* donate-cpu.py: Add internal timing information of Cppcheck to output

The option "--showtime=top5" is added to the Cppcheck command line.
The timing output is collected and only for HEAD it is shown in the new
category "head-timing-info" in the results output.
The timing output is indented with one white space, so even in the
unlikely case that a function is named "head result:" or "diff:" it does
not break the parser in the server.

* donate-cpu.py: Also print the "old" timing information for comparison
2019-09-28 22:09:58 +02:00
amai2012 16f1d8196b Add validateRules target (xmllint) for rules/*.xml 2019-09-21 20:33:48 +02:00
Rikard Falkeborn 518bb5195c dmake: Sort header dependencies (#2182)
Makes it simpler to check diffs, and prevents updates to Makefile due to
changes in header includes.
2019-09-19 09:26:59 +02:00
Sebastian 8207fb7b14
cairo.cfg: Add library configuration/tests/... for cairo library (#2176)
Reference: https://www.cairographics.org/
2019-09-19 08:48:04 +02:00
Sebastian fe236dbdc4 donate-cpu.py: Improve Qt library detection (#2171)
Some projects only use this (older?) style of Qt header inclusion.
There are (older) books and examples which use this style, too.
It seems to be perfectly valid, so we should support it.
2019-09-12 15:14:18 +02:00
Rikard Falkeborn afe05d019c dmake: Improve dependency detection of external and cli includes (#2163)
Previously, external files were not searched at all, and dependencies
on header files in cli was not taken into account for test files.

To add dependency of headers in externals, we also need to search for
includes with angular brackets.
2019-09-10 10:32:36 +02:00
Sebastian 5a05e8d242
donate-cpu-server.py: Get rid of hard-coded paths (#2159) 2019-09-10 07:58:37 +02:00
Rikard Falkeborn 32eb6e1b19 donate-cpu: Only check libraries once (#2158)
There is no point in checking which libraries to use for each cppcheck
version since there is no change. Refactor the checking to a separate
function and run that once instead. This halves the time it takes to
check for libraries.
2019-09-09 13:42:57 +02:00
Daniel Marjamäki 92ab7c6b92 donate-cpu: switch to new server 2019-09-06 22:28:34 +02:00
Sebastian 1c77661b7e donate-cpu.py: Improve detection of Ruby library usage (#2148)
I looked into many packages where the detection failed and they all use
`#include "ruby.h"`. Some of these packages seem to be Ruby modules,
others seem to be "normal" software.
2019-09-05 20:33:12 +02:00
versat 8b5191416e dmake.cpp: Fix typo in warning message 2019-09-05 11:43:13 +02:00
Rikard Falkeborn 02fd1ac7f7 donate-cpu: Show cppcheck head git hash and commit time (#2096)
This adds one line in the package report to show the git hash and commit
date. This makes it possible to see exactely which revision the result
was obtained with.

The cppcheck head info line is now shown as

	head-info: 1a25d3f9e (2019-08-30 18:34:14 +0200)
2019-09-05 09:08:45 +02:00
Daniel Marjamäki 04295802f9 fix run-coverity.sh script. It will run in the cppcheck-devinfo folder from now on. 2019-09-04 17:12:03 +02:00
Daniel Marjamäki 6e00db379f Update run-coverity.sh script 2019-09-03 21:28:57 +02:00
versat 8b949c33de donate-cpu-server.py: Fix crash during diff report generation
If there are *.diff files with old version numbers the server script
crashed because it always expects a key with the current OLD_VERSION.
This fix ignores entries in *.diff files that are not made against the
current OLD_VERSION.
2019-09-02 13:46:57 +02:00
Sebastian 901565233b
donate-cpu.py: Enable detection of new library configurations (#2139) 2019-09-02 11:32:50 +02:00
Daniel Marjamäki 8865fb544d createrelease: clarify daca@home update 2019-09-01 15:34:06 +02:00
Sebastian a501f65c8c
libcurl.cfg: Add library configuration for libcurl (#2120)
Add curl_easy_*() functions and deprecated functions with warnings.
Add tests and prepare donate-cpu.py
Reference: https://curl.haxx.se/libcurl/c/
2019-08-29 15:11:59 +02:00
Sebastian 8782a5f5e4
lua.cfg: Add Lua C API library configuration with tests (#2119) 2019-08-29 11:38:21 +02:00
Sebastian cf7616a5cf donate-cpu.py: Improve detection of SDL library usage. (#2116)
Add more commonly used includes for SDL headers.
2019-08-27 13:09:56 +02:00
Rikard Falkeborn 9a7089d262 donate-cpu.py: Try a fresh clone if fail to update (#2105)
Check if fetching and updating the cppcheck sources are successful. If
not successful after five retries, try removing the existing clone and
checkout again.
2019-08-27 06:48:00 +02:00
Daniel Marjamäki 931587c54b Remove old script daca-test-patch.sh 2019-08-25 13:28:54 +02:00
Rikard Falkeborn 5b5d943976 Remove testfiles.pri (#2106)
qmake is not used to build tests. The only user of testfiles.pri was
removed in 392cda8bce in december 2015.
2019-08-21 06:51:08 +02:00
Sebastian 486170489a donate-cpu.py: Use "gtk" library cfg if "<gnome.h>" is included. (#2103)
Gnome includes GTK+, GLib and other libraries, see
https://developer.gnome.org/platform-overview/unstable/tech.html.en
Some projects simply include "<gnome.h>" and use Gtk/GLib functions.
2019-08-20 21:24:49 +02:00
Daniel Marjamäki e07cb807e1 Make generate_and_run_more_tests happy 2019-08-18 15:13:00 +02:00
Daniel Marjamäki a17f2a6f05 Compiling/Installing : The CFGDIR parameter was removed. Use FILESDIR instead. 2019-08-17 10:53:07 +02:00
Paul Fultz II 7929993b8f Use library to track container lifetimes 2019-08-15 20:36:25 +02:00
Rikard Falkeborn f139558d90 Dmake cleanups (#2077)
* dmake: Refactor object files to separate function

No functional change.

* dmake: Use range for loops

No functional change.

* Add all external cpp files instead of open coding

No functional change.

* Remove duplicate check.h in lib.pri HEADERS

* Add missing newline

No functional change, but the readability of the generated Makefile is
slightly improved.
2019-08-14 20:53:51 +02:00
Rikard Falkeborn 0324bbf63c dmake: Fix check of last header file in lib.pri (#2045)
Since the number of test files is larger than the number of lib files,
this only caused an extra harmless '\' being printed after the last
header file in lib.pri. If the number of test files would have been
smaller than the number of lib files, the generated lib.pri would have
been broken.
2019-07-27 09:45:04 +02:00
Sebastian ee72bb7107
donate-cpu.py: Improve detection of Qt library usage (#2042) 2019-07-26 13:50:04 +02:00