Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: tools/telemetry/third_party/coverage/TODO.txt

Issue 1366913004: Add coverage Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 Coverage.py TODO
2
3 Key:
4 * Heading
5 - Not done yet.
6 + Done.
7 x Not going to do.
8
9 * 4.0
10
11 - What defaults should change?
12 x --source = . ?
13 x --branch = True ?
14
15 - Remove 2.3, 2.4, 2.5 limitations
16 + set, sorted, reversed, rpartition
17 + generator expressions
18 + decorators
19 + collections.defaultdict
20 + .startswith((,))
21 + "with" statements
22 - .format() ?
23 + try/except/finally
24 + with assertRaises
25 + addCleanup instead of tearDown
26 + exec statement can look like a function in py2 (since when?)
27 - runpy ?
28 + we can use "except ExcClass as e:"
29
30 - Plugins
31 + Clean up
32 + implement plugin support in CTracer
33 + remove plugin support from PyTracer
34 x add services:
35 - filelocator
36 - warning
37 - dynamic_source_filename: return should be a canonical path
38 - update the omit test to use "quux*" instead of "*quux*"
39 + docs
40 + Make reports use filenames, not module names
41 - documentation
42 - test helpers
43 + cov.config["run:branch"] api (well, coverage.get_option etc)
44 + "added in 4.0"
45 - tweaks to theme?
46 - Plugins!
47 Once per process
48 Once per file
49 - create a file tracer
50 - call its has_dynamic_source_file()
51 Once per call
52 Once per line
53 - build process
54 - don't publish to nedbat.com any more (but still need the sample html repor ts)
55 + don't need .px tooling
56 - write a new nedbat.com/code/coverage page.
57 - all doc links should point to rtfd
58 + Remove code only run on <2.6
59 + Change data file to json
60 + Create data api
61 + gevent, etc.
62 + Remove the old command-line syntax
63 + A pain, b/c of the structure of the tests.
64 + BTW: make an easier way to write those tests.
65
66 - tests
67 - test the kit has the right contents
68 - test the kit installs the right stuff
69
70
71 * --source stuff:
72 + warn if a package is never found.
73 + warn if no data was collected
74 - tie --source into reporting
75
76 * Soon
77
78 + Better omit handling that ignores files during measurement.
79 - Deal with ~ in specified paths correctly.
80 + while TRUE claims to be partial.
81 + A way to mark lines as partial branches, with a regex?
82 + Default to "while True:", "while 1:"
83 + HTML keyboard short cuts
84
85
86 * 3.2
87
88 + Some kind of indication in the HTML where yellow lines aren't going.
89 - Profile the reporting code: it's REALLY slow.
90 - parser is doing some redundant work.
91 + Analysis class should do rolling up of stats also (actually Numbers)
92 + Update docs for --branch.
93 x self.coverage.data.has_arcs is ugly.
94 + Branches that never jump to nocover lines shouldn't be marked as partial.
95 (see top of test_cogapp for examples)
96 + Maybe turning off yellow lines should make those lines green?
97 + A missing branch to leave the function shows an annotation of -1. Now "exit".
98 + XML report needs to get branch information.
99 + Add branch info to "coverage debug data"
100 + Polish up the help, and double-check the docs.
101
102
103 * Speed
104
105 + C extension collector
106 - bitvector in trace extension.
107 - Ignore certain modules
108 + Record linenos rather than (file,lineno) pairs in tracer.
109 x Tricky swapping of collector like figleaf, pycov, et al. (Don't need to do
110 this with C collector).
111 - Seems like there should be a faster way to manage all the line number sets in
112 CodeParser.raw_parse.
113 - If tracing, canonical_filename_cache overlaps with should_trace_cache. Skip
114 canonical_filename_cache. Maybe it isn't even worth it...
115 - Would pre-allocating line number integers make the C tracer faster? It would
116 use less memory.
117
118
119 * Accuracy
120
121 - Record magic number of module to ensure code hasn't changed
122 - Record version of coverage data file, so we can update what's stored there.
123 - Record options in coverage data file, so multiple runs are certain to make
124 sense together.
125 - Do I still need the lines in annotate_file that deal specially with "else"?
126
127
128 * Power
129
130 + Branch coverage
131 Titus' idea:
132 1: if a:
133 2: b = 2
134 3: c = 3
135 if the coverage data shows 1,2,3, it was if-then. if it's 1,3, then the
136 missing else was executed.
137 + API for getting coverage data.
138 - Instruction tracing instead of line tracing.
139 - Path tracing (how does this even work?)
140 - Count execution of lines
141 - Track callers of functions (ala std module trace)
142 - Method/Class/Module coverage reporting.
143 - .coverage files that can be kept separate, rather than accumulated.
144 - test/coverage map: http://rbtcollins.wordpress.com/2009/09/16/back-from-hiatus /
145 - Similar to figleaf's sections.
146
147
148 * Convenience
149
150 - Command line modules should also be directories, meaning all the modules in th at
151 directory.
152 - Why can't a morf also be a string, the name of a module?
153 - ignore by module as well as file?
154 + Use a .coveragerc file to control coverage.py without the programmatic API.
155 - Add a --data switch to explicitly control the data file on the command line.
156 x Why can't you specify execute (-x) and report (-r) in the same invocation?
157 Maybe just because -x needs the rest of the command line?
158 + Support 2.3 - 3.1!
159 http://pythonology.blogspot.com/2009/02/making-code-run-on-python-20-through -30.html
160 http://www.rfk.id.au/blog/entry/preparing-pyenchant-for-python-3
161 http://pydev.blogspot.com/2008/11/making-code-work-in-python-2-and-3.html
162 + Explicitly set pickle protocol to 2.
163 - An inference mode that marks lines as executed if they "must have been" execut ed:
164 class definitions, etc, when coverage is started after the class is defined.
165 - Different categories of exclude pragma? So you can enable and disable them
166 from the command line, to reconsider exclusions.
167 + Reporting on files never touched by coverage.py (package completeness)
168 - A setup.py command? http://jeetworks.org/node/50
169 - Deltas: indicate the change in coverage percentage from the last run.
170 + Show lines missing rather than lines run in the reporting, since that's what
171 you need to focus on.
172
173
174 * Beauty
175
176 + HTML report
177 - Colored bars indicating coverage per file.
178 - Package navigation.
179 - Rolled-up statistics.
180 - Some way to focus in on red and yellow
181 - Show only lines near highlights?
182 + Jump to next highlight?
183 + Keyboard navigation: j and k.
184 - Cookie for changes to pyfile.html state.
185 + Clickable column headers on the index page.
186 + Syntax coloring in HTML report.
187 + Dynamic effects in HTML report.
188 + Footer in reports pointing to coverage.py home page.
189 + Baseline grid for linenumber font.
190 + Separate out css and HTML.
191 + Does it work right with utf-8 source files? http://www.python.org/dev/peps /pep-0263/
192 - Use vim modeline to determine tab width: http://vimdoc.sourceforge.net/htm ldoc/options.html#modeline
193
194
195 * Community
196
197 + New docs, rather than pointing to Gareth's
198 + Min python version is 2.3.
199 - Three phases of work:
200 - Collection
201 - Analysis
202 - Reporting
203 - Distinction between:
204 - ignore (files not to collect)
205 - exclude (lines not to report as missed)
206 - omit (files not to report)
207 - Changes from coverage.py 2.x:
208 - Bare "except:" lines now count as executable code.
209 - Double function decorators: all decorator lines count as executable co de.
210 x Document the .coverage file format.
211 + HTML reporting.
212 - Much more detail about what's in the report.
213 - References between pages are off:
214 - They have <em> tags around them.
215 - They use #anchors that don't survive the px->html conversion.
216 + Be sure --help text is complete (-i is missing).
217 + Host the project somewhere with a real bug tracker: bitbucket.org
218 + Point discussion to TIP
219 - PEP 8 compliance?
220
221
222 * Programmability
223
224 + Don't use sys.exit in CoverageScript.
225 + Remove singleton
226 + Initialization of instance variables in the class.
227
228
229 * Installation
230
231 x How will coverage.py package install over coverage.py module?
232 x pip can't install it: it reads the coverage.py html page, and finds the kit li nk,
233 but then can't handle the root-relative link.
234
235
236 * Modernization
237
238 + Decide on minimum supported version
239 + 2.3
240 + Get rid of the basestring protection
241 + Use enumerate
242 + Use sets instead of dicts
243 + Switch from getopt to optparse.
244 + Get rid of the recursive nonsense.
245 + Docstrings.
246 + Remove huge document-style comments.
247 - Better names:
248 + self.cache -> self.cache_filename -> CoverageData.filename
249 + self.usecache -> CoverageData.use_file
250 - More classes:
251 - Module munging
252 + Coverage data files
253 + Why are some imports at the top of the file, and some in functions?
254 + Get rid of sys.exitfunc use.
255 + True and False (with no backward adaptation: the constants are new in 2.2.1)
256 + Get rid of compiler module
257 + In analyzing code
258 + In test_coverage.py
259 + Style:
260 + lineno
261 + filename
262
263
264 * Correctness
265
266 - What does -p (parallel mode) mean with -e (erase data)?
267
268
269 * Tests
270
271 + Switch to a real test runner, like nose.
272 + Test both the C trace function and the Python trace function.
273 + parser.py has no direct tests.
274 + Tests about the .coverage file.
275 + Tests about the --long-form of arguments.
276 + Tests about overriding the .coverage filename.
277 - Tests about parallel mode.
278 + Tests about assigning a multi-line string.
279 - Tests about tricky docstrings.
280 + Coverage test coverage.py!
281 - Tests that tracing stops after calling stop()
282 - More intensive thread testing.
283 x Tests about the "import __main__" in cmdline.py
284 + What happens if the -x script raises an exception?
285 - Test that the kit has all the proper contents.
OLDNEW
« no previous file with comments | « tools/telemetry/third_party/coverage/README.rst ('k') | tools/telemetry/third_party/coverage/__main__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698