aboutsummaryrefslogtreecommitdiff
path: root/org.jacoco.core/src/org
AgeCommit message (Collapse)Author
2021-07-21Disable use of 'constant dynamic' bytecodeandroid-s-beta-5android-s-beta-5Maurice 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-22Handle 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-12Implement 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-25Revert "Implement memory-mapped ExecutionData class."Oliver Nguyen
This reverts commit cb523bf186baa02b7478c81a7a64d2a2ee3d6b5f. Reason for revert: Fix boot failure Change-Id: I7480ca95e548ea663b3d16ca62cc5b5ec3d30514
2020-09-15Implement 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-17Revert "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-13Revert "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-11Add 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-16Upgrade jacoco to v0.8.4android-o-mr1-iot-release-1.0.14android-o-mr1-iot-release-1.0.13Haibo Huang
Test: None Change-Id: I4ca05dd439b98fabd6054bee728d85e3aa11486d
2019-03-16module-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-09Fix unlikely yet theoretically possible NPE (#853)Evgeny Mandrikov
2019-03-08Method `needsFrames` should also consider high byte of version (#854)Evgeny Mandrikov
2019-03-08Remove redundant parenthesesEvgeny Mandrikov
2019-03-08Upgrade ASM to 7.1 (#851)Evgeny Mandrikov
2019-03-08Fix typo (#852)Evgeny Mandrikov
2019-03-05Use condy for probes array in Java 11+ class files (#845)Evgeny Mandrikov
2019-03-04Remove `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-04Update KotlinCoroutineFilter for Kotlin 1.3.30 (#849)Evgeny Mandrikov
2019-03-01Add missing JavadocsEvgeny Mandrikov
2019-01-23Rename method 'isEmpty' to 'containsCode'Evgeny Mandrikov
2019-01-22Add experimental support for Java 13 class files (#835)Evgeny Mandrikov
2019-01-21Agent can inject class into Java 9+ bootstrap class loader (#829)Evgeny Mandrikov
2019-01-19Happy New Year 2019!Evgeny Mandrikov
2019-01-18Preserve empty class and sourcefile nodes in XML report (#817)Evgeny Mandrikov
2019-01-16Fix typoEvgeny Mandrikov
2019-01-08Add filter for Kotlin not-null assertion operator (#815)Evgeny Mandrikov
2019-01-08Extend filtering by annotation name to ones that simply contain Generated (#822)Evgeny Mandrikov
2019-01-06Fix typoEvgeny Mandrikov
IStructureVisitor has been replaced by ICoverageVisitor in version 0.5.0
2018-12-30Update filter for Kotlin suspending functions (#809)Evgeny Mandrikov
2018-12-28synthetic methods that represent Kotlin suspend functions should not be ↵Evgeny Mandrikov
ignored (#804)
2018-12-27Reduce duplication of code (#808)Evgeny Mandrikov
2018-12-26Update filter for Kotlin coroutines that restore state (#803)Evgeny Mandrikov
2018-12-21Add filter for Kotlin coroutines (#802)Evgeny Mandrikov
2018-12-14Fix filtering in case of inlining top level function into class in same file ↵Evgeny Mandrikov
(#798)
2018-12-10Add filter for instructions inlined by Kotlin compiler (#764)Evgeny Mandrikov
2018-11-27Report code coverage correctly for Kotlin methods with default arguments (#774)Evgeny Mandrikov
2018-11-15Refactor 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-29Upgrade ASM to 7.0 for official support of Java 11Evgeny Mandrikov
2018-10-18Remove redundant modifiers in interfaces (#768)Thomas Traude
2018-10-11fix typosRenuka Fernando
2018-10-11make constant values readableRenuka Fernando
2018-10-05Add filter for Kotlin "unsafe" cast operator (#761)Evgeny Mandrikov
2018-10-03Remove unused importEvgeny Mandrikov
2018-10-03No need to modify class bytes for Java 10 support (#740)Marc R. Hoffmann
2018-08-20Get rid of unnecessary instances of Matcher in KotlinLateinitFilter (#750)Evgeny Mandrikov
2018-08-20KotlinWhenFilter should be stateless (#749)Evgeny Mandrikov
2018-08-20All 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-20StringSwitchEcjFilter and KotlinWhenStringFilter should use correct ↵Evgeny Mandrikov
VarInsnNode (#746)
2018-08-20Add support for Java 11 and 12 class files with "preview features" (#743)Evgeny Mandrikov