{"action":"created","issue":{"url":"https://api.github.com/repos/randombit/botan/issues/91","labels_url":"https://api.github.com/repos/randombit/botan/issues/91/labels{/name}","comments_url":"https://api.github.com/repos/randombit/botan/issues/91/comments","events_url":"https://api.github.com/repos/randombit/botan/issues/91/events","html_url":"https://github.com/randombit/botan/issues/91","id":74637597,"number":91,"title":"Add coveralls.io support","user":{"login":"cordney","id":8866185,"avatar_url":"https://avatars.githubusercontent.com/u/8866185?v=3","gravatar_id":"","url":"https://api.github.com/users/cordney","html_url":"https://github.com/cordney","followers_url":"https://api.github.com/users/cordney/followers","following_url":"https://api.github.com/users/cordney/following{/other_user}","gists_url":"https://api.github.com/users/cordney/gists{/gist_id}","starred_url":"https://api.github.com/users/cordney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cordney/subscriptions","organizations_url":"https://api.github.com/users/cordney/orgs","repos_url":"https://api.github.com/users/cordney/repos","events_url":"https://api.github.com/users/cordney/events{/privacy}","received_events_url":"https://api.github.com/users/cordney/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-05-09T09:56:39Z","updated_at":"2015-05-12T10:45:48Z","closed_at":"2015-05-12T10:45:48Z","body":"Please add support for https://coveralls.io code coverage reporting. I successfully enabled it for a branch in my fork: https://github.com/cordney/botan/tree/add-coveralls-support\r\nSee the resulting coveralls.io report: https://coveralls.io/builds/2524372\r\n\r\nThe following steps are necessary:\r\n\r\n* Register at https://coveralls.io with your GitHub account\r\n* Add the randombit/botan repo to coveralls.io\r\n* Add code coverage support to `.travis.yml`, see https://github.com/cordney/botan/blob/add-coveralls-support/.travis.yml for an example; its basically:\r\n  * Set link to `gcov` version matching the gcc version via `update-alternatives` (this is important, I had huge problems when the two don`t match)\r\n  * Install latest `lcov` 1.11 from source (I had no success with the lcov version installed via apt) \r\n  * Install coveralls.io report upload tool `coveralls-lcov`\r\n  * Reset all previous coverage data via `lcov --directory . --zerocounters` before building (normally, this should not be necessary, as Travis CI always starts with a clean build, but this may change in the future - who knows)\r\n  * Build\r\n  * Run tests (these take a bit longer with coverage reporting on)\r\n  * Collect results using lcov\r\n  * Remove includes of system headers and test code from reporting\r\n  * Upload report to coveralls.io via `coveralls-lcov`\r\n  * Last but not least, add the coveralls repo token to a environment variable in Travis CI (the repo token should not be public)\r\n* Add coverage badge to GitHub README (instructions are on coveralls.io for your repo)\r\n\r\nAll changes to `.travis.yml` are largely inspired by http://gronlier.fr/blog/2015/01/adding-code-coverage-to-your-c-project/. The build runs at 18 mins now for a shared library build. I had no success running this on clang, I think you would have to use the gcov from clang as mentioned in PR 72. IMHO using code coverage only on the GCC build should be enough though.\r\n\r\nAs you are doing an out of source build, the coverage reports reference the headers in build/, which are also included in the report on coveralls.io. However, coveralls does not follow symlinks, so for these files, coveralls can not show the source online, which is not critical but it would ne nice to have. See for example https://coveralls.io/builds/2524372/source?filename=build%2Finclude%2Fbotan%2Finternal%2Fcompress_utils.h."},"comment":{"url":"https://api.github.com/repos/randombit/botan/issues/comments/101234158","html_url":"https://github.com/randombit/botan/issues/91#issuecomment-101234158","issue_url":"https://api.github.com/repos/randombit/botan/issues/91","id":101234158,"user":{"login":"randombit","id":469092,"avatar_url":"https://avatars.githubusercontent.com/u/469092?v=3","gravatar_id":"","url":"https://api.github.com/users/randombit","html_url":"https://github.com/randombit","followers_url":"https://api.github.com/users/randombit/followers","following_url":"https://api.github.com/users/randombit/following{/other_user}","gists_url":"https://api.github.com/users/randombit/gists{/gist_id}","starred_url":"https://api.github.com/users/randombit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/randombit/subscriptions","organizations_url":"https://api.github.com/users/randombit/orgs","repos_url":"https://api.github.com/users/randombit/repos","events_url":"https://api.github.com/users/randombit/events{/privacy}","received_events_url":"https://api.github.com/users/randombit/received_events","type":"User","site_admin":false},"created_at":"2015-05-12T10:45:48Z","updated_at":"2015-05-12T10:45:48Z","body":"This is looking good now (besides the header sources not being available in the report) and is active on the main tree. Thanks so much for setting this up!"}}