Coder Social home page Coder Social logo

cov's People

Contributors

mzdun avatar trellixvulnteam avatar

Stargazers

 avatar

cov's Issues

Implement function coverage SERDES

Note: this is only feature-worthy.

  • prepare serializer
  • attach to cov report
  • attach to cov log (also prepare for branch coverage in docs)
  • attach to file-level cov show
  • attach to cov show table
  • %C(rating:fn)

add branch coverage for as many reporters as possible

  • find subset of information common to gcov and llvm-cov
  • investigate jest branch coverage capabilites
  • create JSON schema
  • create branch_coverage / "bran" SERDES
  • create cov::branch_coverage interface
  • update report to write "bran" when available
  • update show to read "bran"
    • and show it in tables
    • and show it in file printout

`cov show` could also show other objects by hash

The <rev>..<rev> has only sense, where there is a history, same for <rev>~ and <rev>^. Builds have none, but showing a single build is wanted, and is currently thwarted by rev parser

  • disallow paired revs and ~/^ suffixes for all, but reports, but single unadorned revs should be valid, if they are visible to repo in any form
  • add warning to cov log if a revison fails is_a<cov::report> test
  • add cov show view for cov::build coming from an unpaired revision
  • add cov show view for cov::files coming from an unpaired revision
  • add warning to cov show if unpaired revison fails all is_a<cov::report>, is_a<cov::build> and is_a<cov::files> tests
    • only cov::object_with_id can be located and only those classes implement it.

Filters: use environment path

There is need to locate filters in more, than one directory -- and it should not be $PATH.

  • Prepare platform::run_filter (and possibly platform::run_tool) to accept environment variable to look for their respective programs
    • Posix (with : as path separator)
    • Windows (with ; as separator)
  • Use current root directory as fallback

Note: this is only fix-worthy.

Propsets: show in `log`

Note: this is only fix-worthy.

  • parse loops ops: %L(build){%}
  • introduce formatter sub-views façades
  • change --decorate to mean "with labels"
  • add --[no]-prop-names to cov show and cov log (defaulting to no)
  • update format_descriptions in show_range.cc:
    • short & medium
    • full & fuller
    • raw

full, fuller

- build $BUILD
  Config:   %mD
  Coverage: [%pP] %C(faint normal)%pC/%pR%Creset %C(faint rating)(%pr)%Creset

raw

- build $BUILD
  files $FILE_LIST
  stats $RAW_STATS
  props $JSON_DICT

build set manipulation (adding, removing from HEAD)

  • remove a build by reference from top report
  • append a build by report JSON + propset, error if propset already in report?
  • update a build by report JSON + propset?
  • cov show changes: take a list of properties to select only some builds

freeze strings

  • add message for any missing cov::errc
  • consider message for any missing git::errc
  • freeze the language identifiers

update `./tools/release.py` to be able to drop stability

  • If --force == stability,
    • if stability is empty, perform normal version bump and set stability to "-rc.1"
    • otherwise, bump stability counter (or set to ".2", if missing)
  • otherwise,
    • if stability starts with "-rc.", drop stability
    • otherwise, perform normal version bump

add pager

at least on Linuxes, pipe the output throught less

  • add --pipe to main app
  • investigate pseudo terminal on linux
  • patch all uses of is_terminal, if pty is not possible
  • investigate pty-analogue on Windows
  • provide more as alternative on Windows

AddressSanitizer: heap-buffer-overflow in git::oid::oid(git_oid const&)

  SUMMARY: AddressSanitizer: heap-buffer-overflow /home/runner/work/cov/cov/libs/cov-api/include/cov/git2/oid.hh:42 in git::oid::oid(git_oid const&)
  Shadow bytes around the buggy address:
    0x606000037780: fd fd fd fa fa fa fa fa fd fd fd fd fd fd fd fa
    0x606000037800: fa fa fa fa fd fd fd fd fd fd fd fa fa fa fa fa
    0x606000037880: fd fd fd fd fd fd fd fa fa fa fa fa fd fd fd fd
    0x606000037900: fd fd fd fa fa fa fa fa fd fd fd fd fd fd fd fa
    0x606000037980: fa fa fa fa fd fd fd fd fd fd fd fa fa fa fa fa
  =>0x606000037a00: 00 00 00 00 00 00 00[fa]fa fa fa fa fa fa fa fa
    0x606000037a80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
    0x606000037b00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
    0x606000037b80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
    0x606000037c00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
    0x606000037c80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  Shadow byte legend (one shadow byte represents 8 application bytes):
    Addressable:           00
    Partially addressable: 01 02 03 04 05 06 07 
    Heap left redzone:       fa
    Freed heap region:       fd
    Stack left redzone:      f1
    Stack mid redzone:       f2
    Stack right redzone:     f3
    Stack after return:      f5
    Stack use after scope:   f8
    Global redzone:          f9
    Global init order:       f6
    Poisoned by user:        f7
    Container overflow:      fc
    Array cookie:            ac
    Intra object redzone:    bb
    ASan internal:           fe
    Left alloca redzone:     ca
    Right alloca redzone:    cb

add `cov export <report>`, `<build>` and `<files>`

For given reference, produce a view of the coverage

  • new command (including translations)
  • add optional propset to the JSON schema
  • add additional JSON schema for collection of reports -- textual inclusion or external reference
  • support --json
  • support --html

Fully alias co-existing functions

Currently, only functions with the same demangled names are aliased for the console printout. But, while different destructors will have the same demangled name, different instantiations will differ.

  • Alias by position alone — all functions occupying the same space are the same function
  • Alias also during stats calculations — if we are treating the functions as called in printout, store "better" stats
  • Decide the color cues based on whole alias, but still show 0x for uncalled function, where neither name nor demangled name matches.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.