Philippe Mathieu-Daudé <f4...@amsat.org> writes: > Another item from my 'automated testing' list: use travis-ci to run coccinelle > scripts. This series is more of a PoC. The idea would be to run it once a day > only on /master. > > Patch 1 is here only to speedup travis testing. > > Patch 3 add a script which run each cocci script sequencially. If the script > modified any file from the repo, changes are commited. If the script generated > some output (i.e. using python), this output is logged in an empty commit. > Spatch is run thru a debian-based Docker image. > > Patch 4 is the travis job: it calls the previous script. To respect travis > time > limit timeout, each script is limited to <10min. If any commit were > generated, they are pushed to my gh-repo: > > https://github.com/philmd/qemu/compare/travis-cocci_v1...philmd:autogenerated-coccinelle-20170625-126 > > Build output (Ran for 23 min 7 sec): > https://travis-ci.org/philmd/qemu/builds/246848085 > > Any idea is welcome :)
Are we sure all the Coccinelle scripts always produce desirable and correct results? I often use Coccinelle to do the tedious 95% of the job, followed by a bit of manual cleanup. What if manual cleanup is required to make things compile cleanly? Say because the transformation leaves unused variables behind. What if the transformation is wanted in 19 out of 20 cases? Say because it replaces a bulky expression by the helper call created for this purpose (good), including in the helper function (bad)?