Commit Graph

656 Commits

Author SHA1 Message Date
Daniel Marjamäki 27829383a5 xml dump: Read scope-type attribute in cppcheckdata.py module 2014-07-16 16:15:28 +02:00
Daniel Marjamäki d734a98c89 xml dump: Added tools/cppcheckdata.py that loads the dump. 2014-07-16 15:26:59 +02:00
Matthias Krüger bfb2ebedec daca: keep files that we can check (see path.cpp). 2014-07-09 18:47:44 +02:00
PKEuS 62d07878d7 Fixed two issues in matchcompiler:
- Use correct findmatch or findsimplematch for verification
- Print failing pattern also for findmatch/findsimplematch
2014-07-02 15:25:54 +02:00
PKEuS ec59f1d9df matchcompiler.py: Check Token::type() before comparing Token::str() against "||" or "|" 2014-06-30 14:04:18 +02:00
PKEuS 78f0a47170 matchcompiler.py: Show pattern that caused the InternalError 2014-06-30 14:04:18 +02:00
Daniel Marjamäki 1bcb22e4a4 ci.py: run daca2 in alphabetical order again 2014-06-28 20:11:46 +02:00
Toralf Förster c1d8d1b26a tools/times.sh: exit if prereq were not met
Signed-off-by: Toralf Förster <toralf.foerster@gmx.de>
2014-06-25 22:55:51 +02:00
Toralf Förster 4b135b935d tools/times.sh: use always long-opts
Signed-off-by: Toralf Förster <toralf.foerster@gmx.de>
2014-06-25 22:49:47 +02:00
Toralf Förster fa18adea6f tools/times.sh: prefer a loop over repeating the same command
Signed-off-by: Toralf Förster <toralf.foerster@gmx.de>
2014-06-25 22:48:56 +02:00
Toralf Förster da017d6888 tools/times.sh: adapt comment to the actual loops
left over from #ea9f0718

Signed-off-by: Toralf Förster <toralf.foerster@gmx.de>
2014-06-25 22:46:31 +02:00
PKEuS e2b77a33dd Fixed test_matchcompiler.py 2014-06-18 18:51:24 +02:00
PKEuS 47a1122eb8 Updated matchcompiler to latest changes 2014-06-14 10:57:38 +02:00
orbitcowboy 5c2ed8450e Revert my previous fix 28763fa020 and suppress gcc false positive warnings. 2014-06-13 15:46:43 +02:00
Alexander Mai 16aa891da2 #5798 cfg files are not installed to CFGDIR. Extend patch to update dmake.cpp. Also fix some g++ compiler warnings 2014-05-17 11:05:42 +02:00
Alexander Mai fc592673a1 Fix gcc compiler warning by adding #ifdef GDB_HELPERS 2014-05-15 21:02:08 +02:00
Matthias Krüger 52ba857f8d dmake: make clean: also remove objects files inside tools/ (dmake.o, reduce.o) 2014-05-14 13:20:24 +02:00
Matthias Krüger f138bf004b dmake: make clean: remove dmake binary as well. 2014-05-09 08:45:25 +02:00
Alexander Mai 417a916ece Use CXXFLAGS upon linking dmake for consistency 2014-05-04 20:52:54 +02:00
Daniel Marjamäki 636a15ac55 Doublefree: Fixed FP when exit() is called 2014-05-04 12:02:55 +02:00
amai a5aac3b551 Add missing dependencies for dmake 2014-05-03 20:05:58 +02:00
amai 3bdfad0b73 reduce and dmake now use existing object files as dependencies whenever possible. Fix compilation for reduce on cygwin. 2014-05-03 18:54:48 +02:00
Alexander Mai 0b26a1f27a Fix compiler warnings 2014-04-27 18:56:54 +02:00
Alexander Mai 9e9bc1e457 Since reduce shares object files with cppcheck it should use the same compiler and linker flags 2014-04-27 18:56:30 +02:00
Alexander Mai 290f0ef022 #5644 Compilation failure on Cygwin - related to tinyxml2 (#undefine __STRICT_ANSI__ on cygwin). Patch by ir0nh34d 2014-04-24 22:22:43 +02:00
Daniel Marjamäki ea016d4d73 dmake: include lib/cxx11emu.h in release builds also 2014-04-20 12:30:05 +02:00
orbitcowboy bd242c07eb Fixed typo in travis script and tools/readme.md, no functional change. 2014-04-13 23:17:41 +02:00
Alexander Mai 9ac83d7624 reduce is linking against LIBS as well, to keep build scripts e.g. on travis working 2014-04-11 23:24:47 +02:00
Alexander Mai fb13c56ef0 Makefile: reduce now also depends on LIBOBJ: command not found 2014-04-11 22:27:29 +02:00
Daniel Marjamäki c27a482a84 Merge pull request #284 from matthiaskrgr/dmake
"make dmake" will now compile dmake and directly run it afterwards, bump kernel version checked by travis to 3.14
2014-04-05 08:23:15 +02:00
Daniel Marjamäki 749117a7ff daca2: we must bailout for now when checking insighttoolkit because there is some hang 2014-04-03 17:10:35 +02:00
Matthias Krüger 4481015bdc dmake: "make dmake" now also runs the binary after compilation. 2014-04-03 16:41:58 +02:00
Daniel Marjamäki 22c4d45ca0 astyle formatting 2014-03-31 03:06:57 +02:00
Alexander Mai 0242a3c188 -rdynamic cannot be used on mingw 2014-03-30 20:50:03 +02:00
Daniel Marjamäki 568b9677d7 daca2: Added script that downloads all packages and save reduced archives in the folder ~/daca2-packages 2014-03-23 11:45:29 +01:00
Alexander Mai 29165f3e5f Add -rdynamic to the linker flags to allow obtaining a bracktrace 2014-03-21 22:33:07 +01:00
XhmikosR 1df5ccf315 daca2-report.py: add missing new line in the generated HTML.
[ci skip]
2014-03-21 20:38:02 +02:00
XhmikosR fc54e6acc4 Trim tailing spaces and convert tabs to spaces. 2014-03-18 17:00:28 +02:00
XhmikosR 4928dc52bb daca2: Move style into daca2.css. 2014-03-18 16:50:38 +02:00
XhmikosR b608a8904a Minify sorttable.min.js and use that in daca2-report.py. 2014-03-18 16:48:03 +02:00
Matthias Krüger 76fb3903ff tools: times.sh: show more information in stdout (while still printing it to the log), compute averages of runs, automatically compile and run "times" binary after generating the log. 2014-03-17 02:12:37 +01:00
XhmikosR 66e448f0fd daca2-report.py: tweak style more.
[ci skip]
2014-03-16 13:27:24 +02:00
XhmikosR 9e80080738 Add sorttable.js to the repository. 2014-03-16 13:22:22 +02:00
XhmikosR c7b2f08782 daca2-report.py: move script inclusion after any style.
[ci skip]
2014-03-16 13:14:19 +02:00
XhmikosR bfd388dc15 daca2-report.py: fix CSS style.
[ci skip]
2014-03-16 12:19:52 +02:00
XhmikosR 98fcaa7a9e daca2-report.py: remove unneeded end tags.
[ci skip]
2014-03-16 12:08:58 +02:00
Matthias Krüger ea18e4b245 daca: count varid 0 occurences per file. 2014-03-12 12:49:06 +01:00
XhmikosR aabee422e0 PEP8 fixes. 2014-03-11 17:42:14 +02:00
Alexander Mai b44c1b52ee daca2: made mainpage report sortable 2014-03-09 08:33:27 +01:00
Simon Martin a3d1cac79c Ticket #5373: Keep track whether tokens come from a C or C++ file to properly handle %type% in Token::Match with "delete" 2014-03-08 21:26:06 +01:00
Daniel Marjamäki dddd9848b8 daca2: remove ../clang/INPUTS/.. files since these take so long time to scan 2014-03-06 20:36:52 +01:00
Daniel Marjamäki 5eb79f0fa5 Merge pull request #252 from matthiaskrgr/dmake_externals
Dmake externals
2014-03-04 06:04:11 +01:00
Matthias Krüger c108321329 dmake: when building cppcheck. do not include "externals" dir, there are no files in there (only the tinyxml dir which is already handled via -Iexternals/tinyxml). 2014-03-03 12:09:21 +01:00
Matthias Krüger a9df4a3288 man, htdocs, gui, test, tools: bump a few more copyrights to 2014 2014-03-03 11:03:17 +01:00
Daniel Marjamäki 43d48574c5 ci.py: fixed daca2folder() when results is empty 2014-02-23 10:26:01 +01:00
Daniel Marjamäki 1d801ce7b1 daca2: fixed wget function 2014-02-23 10:21:00 +01:00
Daniel Marjamäki 6273a270c7 daca2: tell wget to overwrite file. We want that the correct file is used. 2014-02-22 07:52:51 +01:00
Lauri Nurmi 91340d4043 Emulate the C++11 'nullptr' and 'static_assert' 2014-02-15 07:52:17 +01:00
Daniel Marjamäki fd3a8a2a18 Update copyright 2014-02-15 07:45:39 +01:00
Daniel Marjamäki b88fbb9857 CI: run daca2 on oldest folder 2014-02-07 06:37:42 +01:00
Matthias Krüger ec7e54c123 daca2: count crashes of cppcheck in index table. 2014-01-29 12:54:52 +01:00
Daniel Marjamäki a7146916b1 Makefile: added -Wno-sign-compare. I don't like this warning 2014-01-18 09:51:48 +01:00
Ryan Pavlik 065db3d9f6 Add a rule to the cli makefile to actually build TinyXML2 2014-01-17 15:52:05 -06:00
Matthias Krüger 0cfd60aa34 travis: rewrite config file.
Uses CXXFLAGS -O2 instead of default flags to speed up self checking.

Testing is done with the following settings:

1) gcc    CXXFLAGS=-O2
2) gcc    CXXFLAGS=-O2  SRCDIR=build VERIFY=1
3) gcc    CXXFLAGS=-O2  MAKEFLAGS="HAVE_RULES=yes"
4) gcc    CXXFLAGS=-O2  SRCDIR=build VERIFY=1  MAKEFLAGS="HAVE_RULES=yes"
5) clang  CXXFLAGS=-O2
6) clang  CXXFLAGS=-O2  SRCDIR=build VERIFY=1
7) clang  CXXFLAGS=-O2  MAKEFLAGS="HAVE_RULES=yes"
8) clang  CXXFLAGS=-O2  SRCDIR=build VERIFY=1  MAKEFLAGS="HAVE_RULES=yes"

Changes made to before_install:
installe libpcre3

Changes made to script:
* make and make test are now called seperately
* cppcheck also checks "build" folder (created by SRCDIR=build) if existing.
* gui is built twice, one time with HAVE_RULES=yes as qmake argument and one time without it.
* a script has been added and run which returns false if cppcheck --showtime=top5 does not return 7 lines indicating that something is broken
2014-01-12 22:47:21 +01:00
Daniel Marjamäki 424675982a dmake: use -std=c++0x instead of -std=c++11 as it's supported by earlier gcc 2014-01-12 15:38:51 +01:00
Daniel Marjamäki 50c8075b15 dmake: use -std=c++11 even if CXXFLAGS is redefined 2014-01-12 13:47:53 +01:00
Daniel Marjamäki 4224f873fd dmake: added -std=c++11 flag 2014-01-12 13:14:46 +01:00
Daniel Marjamäki d618730c96 Merge pull request #211 from matthiaskrgr/filemodes
make tools/times-tags.sh and tools/times.sh executable (mode 755).
2014-01-05 22:17:55 -08:00
Daniel Marjamäki af8f5ef57c daca2: remove aws code from daca2-report 2014-01-06 06:51:04 +01:00
Matthias Krüger bf34a0aafa make tools/times-tags.sh and tools/times.sh executable (mode 755). 2014-01-05 13:58:59 +01:00
Daniel Marjamäki 0851408a26 times.sh: Use SRCDIR to get more accurate results 2014-01-05 13:07:32 +01:00
Daniel Marjamäki cb40e83261 daca2: added --tries and --timeout in wget command 2014-01-02 16:50:12 +01:00
Daniel Marjamäki 5d31385161 daca2: fixed exitcode handling 2013-12-31 20:56:16 +01:00
Daniel Marjamäki 56a5b0d55f daca2: If cppcheck crash, the exitcode is nonzero. Write message in the report when the exitcode is nonzero. 2013-12-31 18:24:32 +01:00
Daniel Marjamäki a3a8edc00d ci: use CFGDIR flag 2013-12-28 12:17:30 +01:00
Daniel Marjamäki 9e0d7d86e9 dmake: Improved handling of CFGDIR 2013-12-28 12:15:08 +01:00
Lucas Manuel Rodriguez 4a46029ba6 Add readme.md for 'tools' directory 2013-12-27 13:58:08 -02:00
Daniel Marjamäki d3a848f2e6 Makefile: Added optional CFGDIR parameter that allows user to specify where Cppcheck will look for cfg files. 2013-12-26 18:41:51 +01:00
Daniel Marjamäki 31368d946b daca2-report: insert spaces between 'Most recently updated' items 2013-12-15 12:33:06 +01:00
Daniel Marjamäki 825174d394 ci.py: changed scp commands 2013-12-13 06:57:08 +01:00
Daniel Marjamäki 77a5ad03a6 ci: minor updates 2013-12-12 21:08:15 +01:00
Daniel Marjamäki 17099d74d6 ci.py: copy std.cfg to daca2 folder to get better results. 2013-12-12 20:10:46 +01:00
Daniel Marjamäki 663f5a14b0 daca2: avoid hang for iceowl package 2013-11-30 16:16:11 +01:00
Daniel Marjamäki 2b7835c5f9 daca2-report: Removed text about hardware running daca2 2013-11-28 19:27:37 +01:00
Daniel Marjamäki a4eeddd0f6 daca2-report: handle when datestr is None 2013-11-28 17:44:50 +01:00
Daniel Marjamäki 6b4016be42 daca2-report: get results from aws and show most recent results on web 2013-11-27 19:17:22 +01:00
Daniel Marjamäki d60c885f08 Daca2: use proper build flags in ci.py 2013-11-24 14:57:54 +01:00
Daniel Marjamäki 4e626d0907 daca2: update aws script. copy results for raspberry. 2013-11-24 14:55:49 +01:00
Daniel Marjamäki d5bb5d6b77 daca2: Change date field to date when analysis ends. 2013-11-24 10:50:16 +01:00
Daniel Marjamäki 02c299405b daca2: write number of error,warning,performance,portability,style in report 2013-11-24 10:47:12 +01:00
Daniel Marjamäki 514218da31 Daca2: Updated aws compilation flags 2013-11-23 16:38:52 +01:00
Daniel Marjamäki 0be5caf48d Daca2: updated aws script 2013-11-23 16:35:52 +01:00
Daniel Marjamäki a62a46c010 DACA2: little cleanup of aws script 2013-11-23 16:25:04 +01:00
Daniel Marjamäki a35a3236d6 Daca2: Added aws.py for secondary daca2 script 2013-11-23 16:22:11 +01:00
Daniel Marjamäki 992f61d911 ci.py: refactoring 2013-11-23 16:00:28 +01:00
Daniel Marjamäki 007e2d9dd5 daca2: handle links better 2013-11-18 17:59:47 +01:00
XhmikosR ff4cf68338 Improve daca2-report.py.
* remove empty <td>
* add meta charset
* remove double space
* remove unneeded escapes
2013-11-10 17:35:31 +02:00
Daniel Marjamäki e73acbaab6 daca2-report: graphical updates. write date when each 'folder' is updated. write some more description about the project. try to fix problem that & is not displayed properly 2013-11-04 13:18:01 +01:00
Daniel Marjamäki 46b4a19bd3 Added CI script to repo 2013-11-02 17:39:42 +01:00
Daniel Marjamäki e948f4c9ee daca2: don't remove large text files. there was some strange problem that results.txt was removed when a results.txt in a subfolder was removed. 2013-11-02 12:03:25 +01:00
Daniel Marjamäki b577b12660 daca2: skip boost to avoid hang 2013-10-28 18:09:05 +01:00
Daniel Marjamäki 9faaef840b daca2: check all extracted files 2013-10-27 07:53:23 +01:00
Daniel Marjamäki aaf5bbb7ad daca2: minor tweaks of wget and removeLargeFiles 2013-10-26 11:47:15 +02:00
Daniel Marjamäki 45e7c488a0 daca2: dont terminate when a package fails. try to continue. 2013-10-25 06:43:08 +02:00
Daniel Marjamäki 2f864dec49 daca2: fixes 2013-10-24 18:36:08 +02:00
Daniel Marjamäki ab2864e1cb daca2: use ls-lR file 2013-10-24 18:22:15 +02:00
Daniel Marjamäki fc9998e439 daca2: bailout if download fails 2013-10-24 17:39:37 +02:00
Daniel Marjamäki b15eeb0aa8 autopep8 formatting 2013-10-20 18:36:33 +02:00
Daniel Marjamäki 47766736fc daca2: handle xz compression 2013-10-20 12:45:05 +02:00
Daniel Marjamäki f58b4b61e2 daca2: improved command line flags 2013-10-20 11:28:16 +02:00
Daniel Marjamäki 17f8edfada daca2: tried to improve getpackages to be more robust 2013-10-20 11:25:31 +02:00
Daniel Marjamäki 4debaa2b92 daca2: alloc passing rev to script 2013-10-20 10:49:54 +02:00
Daniel Marjamäki 7f9f624215 daca2: more reliable ftp 2013-10-19 13:46:15 +02:00
Daniel Marjamäki c9491f952b daca2: skip flite, quick fix of possible hang 2013-10-19 09:53:23 +02:00
XhmikosR 0dba668661 daca2-report.py: use a doctype. 2013-10-18 17:37:03 +02:00
Daniel Marjamäki 88447385c2 autopep8 formatting 2013-10-18 17:35:59 +02:00
Daniel Marjamäki 072c80bde8 daca2: cleanup large files before cppcheck starts 2013-10-18 05:31:00 +02:00
Daniel Marjamäki 91e23c0660 daca2: don't check large files 2013-10-18 04:53:14 +02:00
Daniel Marjamäki 2d38245ea7 daca2-report: rephrazed 'Most recently updated' 2013-10-16 22:31:33 +02:00
Daniel Marjamäki c593092611 daca2-report.py: Added script that generates daca2 report 2013-10-16 18:15:51 +02:00
Daniel Marjamäki 94f91f20e1 daca2: improved cleanup 2013-10-16 17:22:00 +02:00
Daniel Marjamäki cee40beee1 daca2: removing readonly files/folders 2013-10-14 15:49:11 +02:00
Daniel Marjamäki 554790afcf daca2: refactoring. gather list of archives from ftp server then disconnect. 2013-10-13 14:13:10 +02:00
Daniel Marjamäki a305698442 daca2: catch EOFError exceptions 2013-10-13 13:10:25 +02:00
Daniel Marjamäki cb56db5f21 daca2: import missing datetime module 2013-10-13 11:47:51 +02:00
Daniel Marjamäki a61ccf2e9a daca2: write date in results 2013-10-13 11:43:05 +02:00
Daniel Marjamäki 69ec624ea5 daca2: refactoring 2013-10-13 11:10:22 +02:00
Daniel Marjamäki 398ed973f4 matchcompiler: autopep8 formatting 2013-10-13 11:01:50 +02:00
Daniel Marjamäki a7e925283a daca2: autopep8 formatting 2013-10-13 10:51:18 +02:00
Daniel Marjamäki 9aee165650 daca2: catch exception when generating daca2 report 2013-10-13 10:40:01 +02:00
Daniel Marjamäki b1470dc36e daca2: choose folder from command line 2013-10-13 08:35:20 +02:00
Daniel Marjamäki 95138dbead daca2: generate report 2013-10-13 08:07:39 +02:00
Daniel Marjamäki aa1b77f45d daca2: removed -j2 to reduce cpu load 2013-10-12 20:40:04 +02:00
XhmikosR e6e6335473 Revert 568a49c409 and do the changes properly. 2013-10-12 19:44:07 +03:00
XhmikosR 568a49c409 daca2.py: PEP8 fixes 2013-10-12 18:50:54 +03:00
Daniel Marjamäki d30ebe268a daca2: refactorings and fix of indentlevel that might have screwed up the script. 2013-10-12 16:49:37 +02:00
Daniel Marjamäki 0b9d0e48cf daca2: added script that runs cppcheck on debian source code 2013-10-12 14:02:03 +02:00
Daniel Marjamäki ee325008c4 dmake: install htmlreport 2013-10-12 12:26:27 +02:00
Daniel Marjamäki 3f1e074846 reduce: Fixed compiler error (MathLib::longToString() doesnt exist) 2013-10-06 19:07:47 +02:00
Robert Reif bf8a786265 reduce: add more settings from cppcheck cli 2013-08-19 06:06:53 +02:00
Daniel Marjamäki 982f63d58e reduce: update #include order 2013-08-18 18:19:24 +02:00
Robert Reif 784a8a1fcb reduce: refactorings 2013-08-18 18:15:46 +02:00
Daniel Marjamäki 6a369f0841 astyle formatting 2013-08-18 09:01:26 +02:00
Robert Reif 865ff82425 reduce: add -D 2013-08-18 07:24:30 +02:00
Daniel Marjamäki 99cb04306d reduce: allow -I command flag to specify include paths 2013-08-17 19:46:56 +02:00
Daniel Marjamäki d41e0f82cf reduce: Fix compilation problems 2013-08-17 19:20:47 +02:00
Daniel Marjamäki cb73a1d0c7 tools/times: modified script to allow longer dataseries 2013-07-21 13:16:34 +02:00
Daniel Marjamäki 8ba14edb51 dmake: fixed lib.pri for gui (tinyxml) 2013-07-08 21:56:09 +02:00
Daniel Marjamäki d96fb577cd CLI: Added --environment flag 2013-07-02 07:18:19 +02:00
Andreas Bießmann 90a6472af9 dmake: fix for local includes
When building cppcheck we may pull in conflicting global definitions before
local ones, rearrange include order to prevent this.

Signed-off-by: Andreas Bießmann <andreas@biessmann.de>
2013-06-03 19:45:29 +02:00
Daniel Marjamki 45cf562212 matchcompiler: fixed find(simple)match compiler problems. 2013-06-02 13:57:25 +02:00
Daniel Marjamki 35b13da3a5 matchcompiler: find(simple)match doesn't work well. the compiled functions are not static => the wrong function can be executed. this is a quick fix that just disable find(simple)match compiled patterns. 2013-06-02 12:41:34 +02:00
Frank Zingsheim 650027a07a Fixed #4797 (matchcompiler.py cannot handle overloaded findsimplematch and findmatch) 2013-05-15 18:18:58 +02:00
Daniel Marjamäki e1fd003e2d makefile: make it possible to turn on matchcompiler verifications with 'VERIFY=1' 2013-05-15 13:04:19 +02:00
XhmikosR ae73466f97 Python scripts: PEP8 fixes 2013-03-03 09:59:16 +01:00
PKEuS 2ad38c8701 Updated matchcompiler to support %cop% 2013-03-01 02:52:44 -08:00
Daniel Marjamäki c07576e07e dmake: generating unix makefile from windows. Ticket: #3887
When you commit the generated Makefile from windows you must probably be careful about the line endings.
2013-02-24 03:30:58 -08:00
Stefan Naewe 26ddf07366 tools/dmake: update with MINGW32 support
Signed-off-by: Stefan Naewe <stefan.naewe@googlemail.com>
2013-02-08 12:15:41 +01:00
Daniel Marjamäki 0a88a136ca Reduce: Added --cfg command 2013-01-27 03:20:24 +01:00
Daniel Marjamäki 89b54cb2c9 reduce: reduce structs/enums/etc better 2013-01-20 09:05:50 +01:00
Daniel Marjamäki d87d54339d reduce: fix output 2013-01-17 21:02:52 +01:00
Thomas Jarosch 4fb6751d08 MC: Enable compiled matches for Token::findmatch() and Token::findsimplematch()
Speed is exactly the same and the --verify mode of the
match compiler ensured everything works as expected.
2013-01-16 21:50:32 +01:00
Thomas Jarosch 9f9c654621 MC: Implement verify mode for compiled Token::findmatch patterns 2013-01-14 11:18:33 +01:00
Thomas Jarosch 63e18d6b1c MC: Split _replaceTokenFindMatch() into two small functions 2013-01-14 11:06:59 +01:00
Thomas Jarosch 017783a77e MC: Save one indentation level 2013-01-14 11:06:55 +01:00
Thomas Jarosch 06a7d301e2 MC: Switch to assertEqual function from python's unittest 2013-01-14 11:06:40 +01:00
Thomas Jarosch 3bb8237cdc MC: Turn MatchCompiler tests into python unit test 2013-01-14 11:06:33 +01:00
Thomas Jarosch c0044122f4 Add self test for _replaceTokenFindMatch 2013-01-12 15:28:38 +01:00
Thomas Jarosch ff9e864a07 Add self test for replaceTokenMatch 2013-01-12 15:28:38 +01:00
Thomas Jarosch a7377f180a Quote output of _assertEquals()
It's easier to detect trailing spaces this way.
2013-01-12 15:28:38 +01:00
Thomas Jarosch 4038d4b562 Place main code into own function 2013-01-12 15:28:38 +01:00
Thomas Jarosch fdcfbd5ff9 Add missing copyright header 2013-01-10 11:10:45 +01:00
Thomas Jarosch 6bd7463c54 Add local copy of argparse module to support python 2.6 / python 3.0 2013-01-09 21:30:53 +01:00
Edoardo Prezioso 6236e1dc38 Token::Match: removed harmless special code for initial '!!foo' patterns. 2013-01-09 20:13:33 +01:00
Thomas Jarosch de36324d62 Match compiler: Add cmdline handling 2013-01-09 19:41:03 +01:00
Thomas Jarosch 97e1e50139 Match compiler: Workaround broken code generation for "!!foo" patterns
This is just meant for the upcoming release.
2013-01-09 19:25:24 +01:00
Thomas Jarosch e1be85a552 Match compiler: Be more user friendly on how to invoke it 2013-01-09 19:22:40 +01:00
Thomas Jarosch ade0b741b7 Match compiler: Create 'build' directory if needed 2013-01-09 19:15:13 +01:00
Thomas Jarosch 982503f457 Match compiler: Workaround broken optimizations in verify mode
If the match compiler uses the 'verify' mode and we
compile with -O2, some tests comparing the on-the-fly-parser
to the compiled match fail.

Small functions are inlined by the -O2 compile flag.
If we disable function inlining and still compile with -O2,
everything is back to normal.

gdb didn't show anything useful during the mismatch
since the needed variables are optimized out. Once
we start printing them, the problem vanishes, too.
-> Can only be diagnosed at the x86 assembly level.

The problem vanished by switching the invocation order
of Token::Match() and the compiled match, so just swap them.

Also add commented out helper code
to better diagnose mismatch problems.
2013-01-09 19:03:42 +01:00
Daniel Marjamäki 9ecc74e845 tools/reduce: change default timeout to 5 minutes no matter if --hang is used or not. 2013-01-08 07:10:14 +01:00
Thomas Jarosch 9970414a2f Match compiler: Implement 'verify mode' for Token::Match
Verify mode runs the same ::Match pattern on a token
using the on-the-fly parser and the compiled match parser.
The result is compared and we abort on mismatch.

Already detected an error in our test suite, needs investigation.
2013-01-07 22:27:57 +01:00
Thomas Jarosch 9b51d81e99 Match compiler: Split _replaceTokenMatch() into two small functions 2013-01-07 21:39:49 +01:00
Daniel Marjamäki 7657b84c44 reduce: rename stdout to print to avoid name clash 2013-01-07 18:45:29 +01:00
Thomas Jarosch 3918948dd5 Match compiler: Aggregate match functions with the same pattern / function call signature
Reduces the number of generated functions from 2290 to 1916.
2013-01-04 04:47:01 +01:00
Thomas Jarosch 5f09cb2e4d Match compiler: Store matchFunctions and matchStrs in the class instead of passing it around 2013-01-04 03:56:21 +01:00
Thomas Jarosch 542c6e82d3 Match compiler: Cosmetic changes after running pylint 2013-01-04 03:44:04 +01:00
Thomas Jarosch 71a236b3df Match compiler: Turn code into a python class
This will make passing around internal states a lot easier
2013-01-04 03:38:40 +01:00
Thomas Jarosch f9c752667e Match compiler: Inline generated pattern match code for Token::findmatch
Verified the output in build/ stayed the same
if Token::findmatch support is disabled.
2013-01-04 03:13:22 +01:00
Thomas Jarosch 4b386986fc Match compiler: Check varid on first use like Token::Match does 2013-01-04 01:14:52 +01:00
Thomas Jarosch 5d5efdf99f Match compiler: Add support for Token::findmatch
(still disabled for performance reasons)
2013-01-04 01:01:57 +01:00
Thomas Jarosch 241d23ba8e Remove reduce tool in 'make clean' 2013-01-03 21:59:28 +01:00
Thomas Jarosch 4a2d2f78ef tools/reduce: Remove unused variable detected by cppcheck
[reduce.cpp:475]: (style) Variable 'decl' is assigned a value that is never used.
2013-01-03 21:38:47 +01:00
Thomas Jarosch 7417144784 Match compiler: Compile Token::findsimplematch() calls
Disabled for now as it runs slowers than before.
2013-01-03 19:33:37 +01:00
Daniel Marjamäki 76c8887f5f tools/reduce: remove cast in function parameter 2013-01-03 18:28:20 +01:00
Daniel Marjamäki 16612d010d tools/reduce: improvements to make it possible to reduce code that hangs 2013-01-03 15:22:54 +01:00
Daniel Marjamäki ed803b302b reduce: remove more stuff. unneeded #define , unneeded constructors, unneeded #ifndef etc 2013-01-02 17:08:04 +01:00
Daniel Marjamäki 1f3628a2fe reduce: remove more code blocks 2013-01-02 15:37:41 +01:00
Daniel Marjamäki 28d5ad9d21 dmake: fixed reduce compilation 2013-01-02 15:36:17 +01:00
Daniel Marjamäki 7f2d9cb7eb dmake: fixed compilation of reduce 2013-01-02 14:43:31 +01:00
Daniel Marjamäki 9877b77291 dmake: use 'make reduce' to compile the reduce program 2013-01-02 13:30:06 +01:00
Daniel Marjamäki e0a902e071 tools/reduce: various improvements to remove more code 2013-01-01 20:18:31 +01:00
Reijo Tomperi 5d5f7085bf Updating year 2012 -> 2013 to .cpp and .h files and man page. 2013-01-01 18:29:08 +02:00
Daniel Marjamäki f2f8780504 tools/reduce: better handling of #include 2013-01-01 16:18:06 +01:00
Daniel Marjamäki e824f76ed7 tools/reduce: removing blocks of code that contain #if,#else,#endif 2013-01-01 14:33:32 +01:00
Daniel Marjamäki 6ee32943f2 tools/reduce: speedup, terminate checking when error is found 2013-01-01 13:56:37 +01:00
Thomas Jarosch 62b05193c4 MC: Split convertFile() function into smaller pieces
Output of build/ stayed the same.
2012-12-31 15:30:27 +01:00
Thomas Jarosch 311630ac1c Match compiler: Python syntax simplification
Output in build/ stayed the same
2012-12-31 15:03:00 +01:00
Thomas Jarosch 51cff0cb9b Match compiler: Speed up Token comparison with string literals. Ticket #4451
"Cache" string literals as C++ std::string objects.
The string length gets cached and so we don't need to
call strlen() on the literals at runtime.
2012-12-31 14:45:16 +01:00
Daniel Marjamäki 676b5a15a6 reduce: Added simple command line tool that reduces code for a false positive. 2012-12-31 12:41:36 +01:00
Thomas Jarosch 3c915b534d Match compiler: Collect and cache plain C-strings
Profiler runs with gperftools showed we were spending
a lot of time in strlen() even with compiled match patterns.

If you compare a std::string with a plain C-string,
the comparison operator needs to calculate the length
of the C-string via strlen().

We can avoid this by turning all C-strings into C++ strings,
which cache the string length internally.

The match compiler has been adapted to collect all
C-strings during compilation and aggregate them.

Benchmark on the 'rpm' code base on a Core i7 920 box:

cppcheck without matchcompiler:
real    0m30.977s

cppcheck with previous matchcompiler:
real    0m28.157s

cppcheck with cached C-strings:
real    0m17.823s
2012-12-30 23:24:28 +01:00
Thomas Jarosch fe5ee76165 Match compiler: No need to handle %num% twice 2012-12-30 20:33:49 +01:00
Thomas Jarosch 33f4bd0298 Silence cppcheck warning 2012-12-25 15:28:58 +01:00
Thomas Jarosch 3d0b4a9f7e Add execute permissions to matchcompiler.py on linux 2012-12-25 13:18:24 +01:00
Thomas Jarosch a2885a1759 Python 3 compatibility for the helper scripts
print() is a function in python 3.
Works with pyhton 2.x, too.
2012-12-25 13:12:58 +01:00
Daniel Marjamäki 3b3fe1c616 matchcompiler: throw InternalError if Token::Match is called with the varid 0 2012-12-19 06:45:05 +01:00
XhmikosR 9f11c01450 apply astyle 2012-12-15 09:46:02 +01:00
Daniel Marjamäki b6786c87b4 matchcompiler: handle %varid% 2012-12-14 16:59:37 +01:00
Daniel Marjamäki 7c931960bd Merge pull request #123 from Keruspe/master
build: Fix sources location
2012-12-11 11:13:39 -08:00
Marc-Antoine Perennou cd9782472f build: rename LIBDIR to SRCDIR
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2012-12-11 09:30:37 +01:00
Daniel Marjamäki 2d8ed65d43 compiled Token::Match patterns: refactorings,improvements 2012-12-10 20:28:11 +01:00
Daniel Marjamäki a11ec4a5ee matchcompiler: replaced regular expression with simple code that parses the code better 2012-12-08 19:29:16 +01:00
Daniel Marjamäki 9fcfb38a1c matchcompiler: merged regular expressions to a single expression 2012-12-08 16:22:55 +01:00
Daniel Marjamäki bef0cf149b matchcompiler: reverted changes so the 'make test' works again 2012-12-08 07:41:18 +01:00
Daniel Marjamäki 9bd222970e matchcompiler: fixed hang. don't know why it hangs. 2012-12-04 23:38:49 +01:00
Daniel Marjamäki ae7846bf7e matchcompiler: added some selftests for findMatchPattern 2012-12-04 22:57:52 +01:00
Daniel Marjamäki 514d06b015 Makefile: minor cleanup 2012-12-03 06:34:43 +01:00
Daniel Marjamäki 94930c3bd7 Compiled Token::Match patterns: let 'make clean' cleanup compiled patterns 2012-12-02 13:42:48 +01:00
Daniel Marjamäki ef5eece286 Compiled Token::Match patterns: extended match patterns and refactored the script a little 2012-12-02 13:39:59 +01:00
Daniel Marjamäki d630d34b62 Compiled Token::Match patterns. Added python script solution. Python is required to build with compiled patterns. To build cppcheck with compiled patterns use 'make LIBDIR=build'. 2012-12-02 12:36:55 +01:00
Daniel Marjamäki 29263e63fe times: added shell script that executes previous tags 2012-11-30 12:12:04 +01:00
Daniel Marjamäki ea9f0718b0 tools/times: minor tweaks 2012-11-27 12:20:23 +01:00
Daniel Marjamäki b200e1c430 tools/times: tweaked shell script to work better 2012-11-27 07:24:18 +01:00
Daniel Marjamäki 1ebab4a442 tools/times: added simple scripts to generate time stats for cppcheck 2012-11-27 06:08:26 +01:00
XhmikosR 941945bf42 missing tab to space 2012-09-29 18:02:34 +02:00
XhmikosR 9b5c245899 tabs to spaces, remove trailing spaces and extra empty lines at the end of files 2012-09-29 13:49:16 +02:00
Daniel Marjamäki ce862e02aa dmake: New version of TinyXml needs -DTIXML_USE_STL define in linux 2012-09-09 13:08:04 +02:00
Edoardo Prezioso 826d5bb00b Since the GCC -Wconversion warnings are fixed (at least on a x86-64 environment), enable it in the Makefile. 2012-07-18 00:50:30 +02:00
Kimmo Varis fe9e6130cf Add general PRO file for console builds.
It is easier to maintain PRO files when we keep all the console-
build specific general options in one file. For example changes to
compiler options affect to all console builds.
2012-06-18 09:28:32 +03:00
Daniel Marjamäki f98179a835 astyle formatting 2012-06-18 06:41:04 +02:00
Kimmo Varis 7b603813d7 dmake: Apply small fix from Dan.
This fixes the potential (but not likely to happen) case when
file list is empty. Dan suggested this change when reviewing my
earlier patch.
2012-06-11 22:09:09 +03:00
Kimmo Varis 734d4af007 Tests: Generate test file listing with dmake.
Use dmake to generate a test/testfiles.pri with all the files
containing tests. The testfiles.pri is included by the test/test.pro,
which compiles the test runner. This automates the test file listing
instead of former way to hand-edit the file list.

Fixes ticket #3885 (dmake needs to create a list of test files for qmake)
2012-06-11 22:05:55 +03:00
Kimmo Varis be21a44dd2 Tools: Adding a tools.pro to build dmake. 2012-06-11 14:45:32 +03:00
Daniel Marjamäki 16427b40b9 dmake: move . this fixes compiler errors when compiling with some old gcc 3.X compiler 2012-02-26 10:18:21 +01:00
Edoardo Prezioso f37f13c3ad Fixed typo in make file generation. 2012-02-17 20:12:41 +01:00
Daniel Marjamäki f183954150 dmake: keep some dummy debug code in release Makefiles to make the debug/release more similar 2012-02-12 03:30:58 +01:00
Edoardo Prezioso f20e88fcc5 tools/dmake.cpp: nitpicky reorder of commented warnings in alphabet order with uncommented ones. 2012-01-03 15:10:32 +01:00
Reijo Tomperi 8cae17fda8 Update year to 2012 2012-01-01 01:05:37 +02:00
Daniel Marjamäki 5cc5330d95 extracttests.py: reverted last change. see comments on github. 2011-12-07 21:49:34 +01:00
Daniel Marjamäki ab348387b5 extracttests.py: python 3 compatibility updates 2011-12-07 17:05:24 +01:00
Daniel Marjamäki e9546c5042 extracttests.py: create output folders if they dont exist 2011-12-04 21:46:56 +01:00