Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-07-21 | Disable use of 'constant dynamic' bytecodeandroid-s-beta-5android-s-beta-5 | Maurice Lam | |
See https://github.com/jacoco/jacoco/issues/1151. Bug: 194171230 Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true FooTest Change-Id: Idd5b9f2fd3824b8ee7f5a71504bd816694416b37 | |||
2020-10-22 | Handle exceptions instead of passing them on. | Oliver Nguyen | |
Exceptions propagated down the stack are causing instability issues and random failures. Fall back where possible to normal ExecutionData instances instead. Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true CLANG_COVERAGE=true and check boot Bug: 171333204 Change-Id: I091d66d7aacbbbe70db10cc1a1c9b5ffbda7131b | |||
2020-10-12 | Implement delegate that can swap to memory-mapped execution data. | Oliver Nguyen | |
Implements memory-mapped ExecutionData class. Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true CLANG_COVERAGE=true and check for /data/misc/trace/jacoco-*.mm.ec files Bug: 169426258 Change-Id: I0eb564bc66650e2fd53573dd173dc141a8f4ffbe Change-Id: I8bc1f724071f267b3d44350eb96d20900068d66f | |||
2020-09-25 | Revert "Implement memory-mapped ExecutionData class." | Oliver Nguyen | |
This reverts commit cb523bf186baa02b7478c81a7a64d2a2ee3d6b5f. Reason for revert: Fix boot failure Change-Id: I7480ca95e548ea663b3d16ca62cc5b5ec3d30514 | |||
2020-09-15 | Implement memory-mapped ExecutionData class. | Oliver Nguyen | |
This allows apps to write coverage to disk during execution and not require any flushing mechanism in order to collect coverage. The results will be left in /data/misc/trace/jacoco-*.mm.ec and can be collected later for coverage analysis. These .mm.ec files conform to the current exec file format and can be loaded with the command-line tool. Test: m -j EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true and generate coverage report from /data/misc/trace Bug: 147904124 Change-Id: If08492405b86a063ae714c259a2fb954bc5aa946 | |||
2020-08-17 | Revert "Revert "Add IExecutionData interface and move all usage ..." | Oliver Nguyen | |
Revert "Revert "Update JavaCodeCoverageListenerTest to new IExec..." Revert submission 1398750-revert-1364940-IExecutionData-FHXOSGWBLA Reason for revert: Fixed build Reverted Changes: I609da053c:Revert "Add IExecutionData interface and move all ... Iff176c367:Revert "Update JavaCodeCoverageListenerTest to new... Change-Id: I2b1653276b15049c53c8f186a603cfc4b2015ed5 | |||
2020-08-13 | Revert "Add IExecutionData interface and move all usage to the i..." | Jackal Guo | |
Revert "Update JavaCodeCoverageListenerTest to new IExecutionDat..." Revert submission 1364940-IExecutionData Reason for revert: b/163919667 Reverted Changes: I4fbee7a43:Update JavaCodeCoverageListenerTest to new IExecut... I41235626b:Add IExecutionData interface and move all usage to... Change-Id: I609da053cf4427b250efe222ee3d54fb0a9f21d2 | |||
2020-08-11 | Add IExecutionData interface and move all usage to the interface. | Oliver Nguyen | |
Abstracts the underlying execution data implementation to allow for more complex execution data storage mechanisms. For offline instrumentation, classes store the IExecutionData object and make calls into it to set probe data. This results in additional overhead of looking up the vtable for the interface and making the method call, rather than just directly setting the value in the boolean array. Bug: 147904124 Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true and verify Java coverage collection and parsing Change-Id: I41235626b1040a6a21c6aef300f2dfe064393e1f | |||
2019-05-16 | Upgrade jacoco to v0.8.4android-o-mr1-iot-release-1.0.14android-o-mr1-iot-release-1.0.13 | Haibo Huang | |
Test: None Change-Id: I4ca05dd439b98fabd6054bee728d85e3aa11486d | |||
2019-03-16 | module-info.class should be excluded from analysis (#859) | Evgeny Mandrikov | |
2019-03-14 | `nextIsInvokeStatic` and `nextIsInvokeVirtual` should check method ↵ | Evgeny Mandrikov | |
descriptor (#857) | |||
2019-03-09 | Fix unlikely yet theoretically possible NPE (#853) | Evgeny Mandrikov | |
2019-03-08 | Method `needsFrames` should also consider high byte of version (#854) | Evgeny Mandrikov | |
2019-03-08 | Remove redundant parentheses | Evgeny Mandrikov | |
2019-03-08 | Upgrade ASM to 7.1 (#851) | Evgeny Mandrikov | |
2019-03-08 | Fix typo (#852) | Evgeny Mandrikov | |
2019-03-05 | Use condy for probes array in Java 11+ class files (#845) | Evgeny Mandrikov | |
2019-03-04 | Remove `instrument(ClassReader)` and `analyzeClass(ClassReader)` (#850) | Evgeny Mandrikov | |
* they use field `ClassReader.b` which is marked as deprecated in ASM 7.1 * they don't work when field contains more than just bytes of one class (see `ClassReader(byte[] classFileBuffer, int classFileOffset, int classFileLength)`) | |||
2019-03-04 | Update KotlinCoroutineFilter for Kotlin 1.3.30 (#849) | Evgeny Mandrikov | |
2019-03-01 | Add missing Javadocs | Evgeny Mandrikov | |
2019-01-23 | Rename method 'isEmpty' to 'containsCode' | Evgeny Mandrikov | |
2019-01-22 | Add experimental support for Java 13 class files (#835) | Evgeny Mandrikov | |
2019-01-21 | Agent can inject class into Java 9+ bootstrap class loader (#829) | Evgeny Mandrikov | |
2019-01-19 | Happy New Year 2019! | Evgeny Mandrikov | |
2019-01-18 | Preserve empty class and sourcefile nodes in XML report (#817) | Evgeny Mandrikov | |
2019-01-16 | Fix typo | Evgeny Mandrikov | |
2019-01-08 | Add filter for Kotlin not-null assertion operator (#815) | Evgeny Mandrikov | |
2019-01-08 | Extend filtering by annotation name to ones that simply contain Generated (#822) | Evgeny Mandrikov | |
2019-01-06 | Fix typo | Evgeny Mandrikov | |
IStructureVisitor has been replaced by ICoverageVisitor in version 0.5.0 | |||
2018-12-30 | Update filter for Kotlin suspending functions (#809) | Evgeny Mandrikov | |
2018-12-28 | synthetic methods that represent Kotlin suspend functions should not be ↵ | Evgeny Mandrikov | |
ignored (#804) | |||
2018-12-27 | Reduce duplication of code (#808) | Evgeny Mandrikov | |
2018-12-26 | Update filter for Kotlin coroutines that restore state (#803) | Evgeny Mandrikov | |
2018-12-21 | Add filter for Kotlin coroutines (#802) | Evgeny Mandrikov | |
2018-12-14 | Fix filtering in case of inlining top level function into class in same file ↵ | Evgeny Mandrikov | |
(#798) | |||
2018-12-10 | Add filter for instructions inlined by Kotlin compiler (#764) | Evgeny Mandrikov | |
2018-11-27 | Report code coverage correctly for Kotlin methods with default arguments (#774) | Evgeny Mandrikov | |
2018-11-15 | Refactor coverage analysis package (#744) | Marc R. Hoffmann | |
* Encapsulate insn/branch status tracking in Instruction * Move Instruction to the analysis package * Encapsulate Instruction building in new class InstructionsBuilder * Separate coverage calculation from filtering | |||
2018-10-29 | Upgrade ASM to 7.0 for official support of Java 11 | Evgeny Mandrikov | |
2018-10-18 | Remove redundant modifiers in interfaces (#768) | Thomas Traude | |
2018-10-11 | fix typos | Renuka Fernando | |
2018-10-11 | make constant values readable | Renuka Fernando | |
2018-10-05 | Add filter for Kotlin "unsafe" cast operator (#761) | Evgeny Mandrikov | |
2018-10-03 | Remove unused import | Evgeny Mandrikov | |
2018-10-03 | No need to modify class bytes for Java 10 support (#740) | Marc R. Hoffmann | |
2018-08-20 | Get rid of unnecessary instances of Matcher in KotlinLateinitFilter (#750) | Evgeny Mandrikov | |
2018-08-20 | KotlinWhenFilter should be stateless (#749) | Evgeny Mandrikov | |
2018-08-20 | All merged instructions should have same covered branches (#747) | Evgeny Mandrikov | |
Because result of merge might be used to compute coverage of instructions with replaced branches. | |||
2018-08-20 | StringSwitchEcjFilter and KotlinWhenStringFilter should use correct ↵ | Evgeny Mandrikov | |
VarInsnNode (#746) | |||
2018-08-20 | Add support for Java 11 and 12 class files with "preview features" (#743) | Evgeny Mandrikov | |