summaryrefslogtreecommitdiff
path: root/src/rebar_prv_cover.erl
Commit message (Collapse)AuthorAgeFilesLines
* Fix path coverage loading artifactsFred Hebert2018-11-261-2/+1
| | | | | | | | | | The old path handling routine would force loading a bunch of applications, but it did not necessarily unload them aside from specific calls that the other test handlers used to need to do, but no longer needed under the updated path management of 3.7.0. The leftover calls in the cover compilation bits caused some apps to be loaded and to remain loaded before tests started.
* Merge pull request #1679 from ferd/min-coverageFred Hebert2017-12-041-13/+44
|\ | | | | Support minimal coverage validation in tests
| * Support minimal coverage validation in testsFred Hebert2017-12-021-13/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds an option (-m, --min_coverage, or {cover_opts, {min_coverage,X}}) to the 'cover' command, where the value is an integer between 0 and 100. If the total coverage during the analysis is below the value received, the command will fail with output like: ===> Requiring 64% coverage to pass. Only 62% obtained If the rate is correct, the command silently passes as it currently does. This feature allows to enforce code coverage standards in a project if desired.
* | add eunit and ct option to set coverdata file nameTristan Sloughter2017-12-041-2/+2
|/
* Fix coverage percentage on modules with 0 lines to be coveredVitor Enes Duarte2017-08-101-1/+1
|
* Fix total coverageVitor Enes Duarte2017-08-101-26/+18
|
* Unicode support in all the placesFred Hebert2017-08-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is done through 3 main change groups: - replacing `~s` by `~ts` in format strings, so that strings that contain unicode are properly printed rather than crashing - adding the `unicode` argument to all function of the `re` module to ensure transformations on strings containing unicode data are valid instead of crashing (see issue #1302) - replacing `ec_cnv:to_binary/1` and `ec_cnv:to_list/1` with matching functions in `rebar_utils`. The last point has been done, rather than modifying and updating erlware commons, because binary and list conversions can be a contentious subject. For example, if what is being handled is actually bytes from a given binary stream, then forcing a byte-oriented interpretation of the data can corrupt it. As such, it does not appear safe to modify erlware commons' conversion functions since it may not be safe for all its users. Instead, rebar3 reimplements a subset of them (only converting atoms and chardata, ignoring numbers) with the explicit purpose of handling unicode string data. Tests were left as unchanged as possible. This may impact the ability to run rebar3's own suites in a unicode path, but respects a principle of least change for such a large patch.
* Typo: seperate -> separateMichiel Beijen2017-03-271-5/+5
|
* Allow exclusion of apps in coverDrew Varner2017-01-301-8/+9
| | | | | Adds a new option `{cover_excl_apps, Apps}` to exclude apps from coverage analysis by name.
* Fix rebar3 dialyzer warningsFred Hebert2016-11-191-8/+3
| | | | Some tricky changes in there but should be okay
* only compile/cover compile when generating analysisalisdair sullivan2016-09-201-4/+13
| | | | don't compile when resetting coverdata
* cover compile prior to calculating coveragealisdair sullivan2016-09-201-1/+6
| | | | fixes #1327
* reset accumulated coverdata on writing out to disk. this preventsalisdair sullivan2016-08-271-0/+2
| | | | | provider chains like `eunit, ct, proper` from misreporting cover stats from providers later in the sequence
* Re-format cover exclusion codeFred Hebert2016-08-271-17/+26
| | | | | | - brings back former error handling and debug messages - keeps the filtering of excluded mods and debug messages - breaks up code into multiple functions and removes nesting
* Merge branch 'cover_excl_mods' of https://github.com/lpgauth/rebar3 into ↵Fred Hebert2016-08-271-15/+23
|\ | | | | | | lpgauth-cover_excl_mods
| * Add support for cover_excl_modsLouis-Philippe Gauthier2016-06-151-15/+23
| |
* | Merge pull request #1164 from snaiper80/fix_cover_compile_erroralisdair sullivan2016-06-061-1/+4
|\ \ | |/ |/| Fix compile error case when cover compilation
| * Fix compile error case when cover compilationLee GiTack2016-04-181-1/+4
| | | | | | | | | | | | | | Dependent libs is required for some module when cover compiling. So all dependencies should be available on code path. This fixes #1148 issue.
* | don't generated coverage for `extra_src_dirs`alisdair sullivan2016-05-151-17/+2
|/ | | | closes #1057 and #1179
* Account for division by zeroPanagiotis PJ Papadomitsos2015-12-161-0/+2
|
* Add support for total code coveragePanagiotis PJ Papadomitsos2015-12-161-0/+16
|
* fixes for cover under new compiler/eunit/ctalisdair sullivan2015-11-011-14/+18
| | | | | | * only try to cover compile directories that actually exist * recover from failures where source files don't contain required attributes for cover compilation and print warning
* refactor `rebar_erlc_compiler`alisdair sullivan2015-10-261-7/+25
| | | | | | | | | | | | | | | | | | | * modify compiler interface to work on either application objects or directories containing source files * compile all sources in `src_dirs` to the application `ebin` dir and all sources in `extra_src_dirs` to a directory mirroring it's position in the app's `_build` directory. for example, `apps/foo/more` would compile to `_build/default/lib/foo/more` for `extra_src_dirs` in the root of a project with multiple applications (so orphan directories that don't "belong" to an application) compile to `_build/default/extras/more` * copy directories specified in `extra_src_dirs` into the `_build` directory so tools like `ct` and `xref` that expect source to be in a particular location still work * clean compiled artifacts from all `extra_src_dirs` * alter `eunit`, `ct` and `cover` to work with the new directory structure * billions of new tests
* cover compile beams compiled for ct/eunit seperately from beams compiled ↵alisdair sullivan2015-09-111-20/+19
| | | | | | otherwise fixes #788
* Merge pull request #583 from talentdeficit/remove_cover_print_enabledTristan Sloughter2015-07-011-6/+14
|\ | | | | remove `cover_print_enabled` and `cover_data_dir` config options and replace with `cover_opts`
| * remove `cover_print_enabled` and `cover_data_dir` config optionsalisdair sullivan2015-07-011-6/+14
| | | | | | | | and replace with `cover_opts`
* | fix bareness issuesFred Hebert2015-05-311-1/+1
|/ | | | | | - Crashes in providers lib when no providers in a namespace are bare - Making sure bareness matches semantics; i.e. a bare provider is visible, a non-bare provider is hidden.
* track and cleanup code paths for different contextsTristan Sloughter2015-04-211-1/+1
|
* Provide descriptions for all tasksFred Hebert2015-04-041-1/+1
|
* add default test paths in the `shell` and `cover` providersalisdair sullivan2015-04-031-6/+5
|
* modify `ct` provider to copy selected directories and compile themalisdair sullivan2015-04-031-10/+12
| | | | | | alongside their source (ie, if `some_tests` is a directory that contains test suites beams resulting from compiling them will be placed in `some_tests` in the appropriate `_build` directory
* attempt to load paths to test modules in cover modules toalisdair sullivan2015-03-251-10/+20
| | | | generate line by line coverage reports
* execute `cover` task as `test` profile and write generated dataalisdair sullivan2015-03-251-2/+4
| | | | to the appropriate `_build` dir
* update all examples in providers to use rebar3Tristan Sloughter2015-03-071-2/+2
|
* rename `_logs` and `_cover` dirs to `logs` and `cover`, respectivelyalisdair sullivan2015-03-031-1/+1
|
* move `_logs` and `_cover` to `_build` diralisdair sullivan2015-03-031-1/+1
|
* erlang r15x (and possibly earlier) don't put the correct path toalisdair sullivan2015-03-031-0/+3
| | | | | | source files in the `compile` key of `module_info/1` so `rebar cover` struggles locating source in some instances. in these cases a warning is printed and crappy coverage info is written rather than none at all
* print warning if cover can't annotate source and skip filealisdair sullivan2015-03-031-1/+9
|
* replace use of `float_to_list/2` for r15xalisdair sullivan2015-03-031-2/+2
|
* generate cover data (via the `{cover_enabled, true}` option inalisdair sullivan2015-03-031-0/+332
`rebar.config` or via the `-c\--cover` flag given to the appropriate task) from the `eunit` and `ct` tasks and add a `cover` task to write coverage analysis to disk