From fe065dac0672311a40df0d71f1de526c582dd5bc Mon Sep 17 00:00:00 2001 From: chaozhu Date: Thu, 14 Nov 2024 17:56:01 +0800 Subject: [PATCH 1/6] update jacoco version --- plugins/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/build.gradle b/plugins/build.gradle index b85a435dc30..7028686f3d0 100644 --- a/plugins/build.gradle +++ b/plugins/build.gradle @@ -6,7 +6,7 @@ apply plugin: 'application' apply plugin: 'checkstyle' jacoco { - toolVersion = "0.8.4" + toolVersion = "0.8.8" } def versions = [ checkstyle: '8.7', From 59a6c6c49212e8d639707522dd7c5d1f28ae7261 Mon Sep 17 00:00:00 2001 From: chaozhu Date: Thu, 21 Nov 2024 01:23:21 +0800 Subject: [PATCH 2/6] fix incompatible error output of jacoco and powermock --- build.gradle | 1 + config.gradle | 86 ++++++++++++++++++++++++++++++++++++++++++ framework/build.gradle | 3 ++ 3 files changed, 90 insertions(+) create mode 100644 config.gradle diff --git a/build.gradle b/build.gradle index 8db08f4fe7e..429810dedfb 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,7 @@ allprojects { version = "1.0.0" apply plugin: "java-library" } +apply from : "config.gradle" subprojects { apply plugin: "jacoco" diff --git a/config.gradle b/config.gradle new file mode 100644 index 00000000000..f646245a134 --- /dev/null +++ b/config.gradle @@ -0,0 +1,86 @@ +ext { + jacocoNeedFilterClasses = [ + 'org/tron/core/net/message/adv/**', + 'org/tron/core/net/message/base/**', + 'org/tron/core/net/message/handshake/**', + 'org/tron/core/net/message/keepalive/**', + 'org/tron/core/net/message/pbft/**', + 'org/tron/core/net/message/sync/**', + 'org/tron/core/net/message/PbftMessageFactory*', + 'org/tron/core/net/message/TronMessage*', + 'org/tron/core/net/message/TronMessageFactory*', + 'org/tron/core/net/messagehandler/**', + 'org/tron/core/net/peer/**', + 'org/tron/core/net/service/**', + 'org/tron/core/net/P2pEventHandlerImpl*', + 'org/tron/core/net/TronNetDelegate*', + 'org/tron/core/net/TronNetService*', + 'org/tron/core/config/args/Args*', + 'org/tron/core/config/args/DynamicArgs*', + 'org/tron/core/config/DefaultConfig*', + 'org/tron/core/config/TronLogShutdownHook*', + 'org/tron/core/Wallet*', + 'org/tron/program/**', + 'org/tron/core/trie/**', + 'org/tron/core/consensus/**', + 'org/tron/core/db/accountstate/callback/**', + 'org/tron/core/db/accountstate/storetrie/**', + 'org/tron/core/db/accountstate/AccountStateEntity*', + 'org/tron/core/db/accountstate/TrieService*', + 'org/tron/core/db/api/**', + 'org/tron/core/db/backup/**', + 'org/tron/core/db/Manager*', + 'org/tron/core/db/PendingManager*', + 'org/tron/core/metrics/**', + 'org/tron/core/zen/**', + 'org/tron/core/services/filter/**', + 'org/tron/core/services/http/**', + 'org/tron/core/services/interfaceJsonRpcOnPBFT/**', + 'org/tron/core/services/interfaceJsonRpcOnSolidity/**', + 'org/tron/core/services/interfaceOnPBFT/**', + 'org/tron/core/services/interfaceOnSolidity/**', + 'org/tron/core/services/jsonrpc/**', + 'org/tron/core/services/ratelimiter/**', + 'org/tron/core/services/NodeInfoService*', + 'org/tron/core/services/RpcApiService*', + 'org/tron/core/services/WalletOnCursor*', + 'org/tron/core/services/WitnessProductBlockService*', + 'org/tron/common/application/**', + 'org/tron/common/backup/**', + 'org/tron/common/client/**', + 'org/tron/common/logsfilter/capsule/BlockFilterCapsule*', + 'org/tron/common/logsfilter/capsule/BlockLogTriggerCapsule*', + 'org/tron/common/logsfilter/capsule/ContractEventTriggerCapsule*', + 'org/tron/common/logsfilter/capsule/ContractLogTriggerCapsule*', + 'org/tron/common/logsfilter/capsule/ContractTriggerCapsule*', + 'org/tron/common/logsfilter/capsule/FilterTriggerCapsule*', + 'org/tron/common/logsfilter/capsule/LogsFilterCapsule*', + 'org/tron/common/logsfilter/capsule/SolidityEventCapsule*', + 'org/tron/common/logsfilter/capsule/SolidityLogCapsule*', + 'org/tron/common/logsfilter/capsule/SolidityTriggerCapsule*', + 'org/tron/common/logsfilter/capsule/TransactionLogTriggerCapsule*', + 'org/tron/common/logsfilter/capsule/TriggerCapsule*', + 'org/tron/common/logsfilter/nativequeue/**', + 'org/tron/common/logsfilter/ContractEventParser*', + 'org/tron/common/logsfilter/ContractEventParserAbi*', + 'org/tron/common/logsfilter/ContractEventParserJson*', + 'org/tron/common/logsfilter/EventPluginLoader*', + 'org/tron/common/logsfilter/IPluginEventListener*', + 'org/tron/common/runtime/LogEventWrapper*', + 'org/tron/common/runtime/RuntimeImpl*', + 'org/tron/common/zksnark/ZksnarkClient*', + 'org/tron/keystore/**', + 'org/tron/core/capsule/utils/DecodeResult*', + 'org/tron/core/capsule/utils/FastByteComparisons*', + 'org/tron/core/capsule/utils/RLP*', + 'org/tron/core/capsule/utils/RLPElement*', + 'org/tron/core/capsule/utils/RLPItem*', + 'org/tron/core/capsule/utils/RLPList*', + 'org/tron/core/capsule/utils/TxInputUtil*', + 'org/tron/core/capsule/utils/TxOutputUtil*', + 'org/tron/core/capsule/ReceiveDescriptionCapsule*', + 'org/tron/core/capsule/SpendDescriptionCapsule*', + 'org/tron/core/capsule/TxInputCapsule*', + 'org/tron/core/capsule/TxOutputCapsule*', + ] +} \ No newline at end of file diff --git a/framework/build.gradle b/framework/build.gradle index 4519f93e44d..40770be5d28 100644 --- a/framework/build.gradle +++ b/framework/build.gradle @@ -21,6 +21,9 @@ jacoco { toolVersion = "0.8.8" } +tasks.withType(Test) { + jacoco.excludes = rootProject.ext.jacocoNeedFilterClasses +} configurations { checkstyleConfig From 00b624f7a38e7fb1e38bc98a89a43ec288cd133d Mon Sep 17 00:00:00 2001 From: chaozhu Date: Thu, 21 Nov 2024 09:25:24 +0800 Subject: [PATCH 3/6] add jacoco version config --- chainbase/build.gradle | 3 +-- config.gradle | 1 + framework/build.gradle | 4 ++-- plugins/build.gradle | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/chainbase/build.gradle b/chainbase/build.gradle index 79a246014d7..a20c38adb3c 100644 --- a/chainbase/build.gradle +++ b/chainbase/build.gradle @@ -2,7 +2,6 @@ description = "chainbase – a decentralized database for blockchain." // Dependency versions // --------------------------------------- -def jacocoVersion = "0.8.0" def jansiVersion = "1.16" // -------------------------------------- @@ -42,7 +41,7 @@ test { } jacoco { - toolVersion = jacocoVersion // See http://www.eclemma.org/jacoco/. + toolVersion = rootProject.ext.jacocoVersion // See http://www.eclemma.org/jacoco/. } jacocoTestReport { diff --git a/config.gradle b/config.gradle index f646245a134..648afcb2941 100644 --- a/config.gradle +++ b/config.gradle @@ -1,4 +1,5 @@ ext { + jacocoVersion = "0.8.8" jacocoNeedFilterClasses = [ 'org/tron/core/net/message/adv/**', 'org/tron/core/net/message/base/**', diff --git a/framework/build.gradle b/framework/build.gradle index 40770be5d28..c9efb8f45e5 100644 --- a/framework/build.gradle +++ b/framework/build.gradle @@ -18,7 +18,7 @@ def versions = [ ] jacoco { - toolVersion = "0.8.8" + toolVersion = rootProject.ext.jacocoVersion } tasks.withType(Test) { @@ -160,7 +160,7 @@ jacocoTestReport { */ offlinsCoverage { - jacocoVersion = '0.8.8' // Optional. By default `0.8.8` + jacocoVersion = rootProject.ext.jacocoVersion // Optional. By default `0.8.8` reports { html.enabled.set true // Optional. By default `true` diff --git a/plugins/build.gradle b/plugins/build.gradle index 7028686f3d0..45536dcc773 100644 --- a/plugins/build.gradle +++ b/plugins/build.gradle @@ -6,7 +6,7 @@ apply plugin: 'application' apply plugin: 'checkstyle' jacoco { - toolVersion = "0.8.8" + toolVersion = rootProject.ext.jacocoVersion } def versions = [ checkstyle: '8.7', From 546c0f54b824d174134207596e1abedca795bb01 Mon Sep 17 00:00:00 2001 From: chaozhu Date: Thu, 21 Nov 2024 15:26:35 +0800 Subject: [PATCH 4/6] make jacoco.excludes auto scan --- build.gradle | 5 ++- config.gradle | 87 ------------------------------------------ framework/build.gradle | 17 ++++++++- 3 files changed, 20 insertions(+), 89 deletions(-) delete mode 100644 config.gradle diff --git a/build.gradle b/build.gradle index 429810dedfb..2706a56a42e 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,6 @@ allprojects { version = "1.0.0" apply plugin: "java-library" } -apply from : "config.gradle" subprojects { apply plugin: "jacoco" @@ -89,3 +88,7 @@ gradle.buildFinished { } } } + +ext { + ext.jacocoVersion = "0.8.8" +} diff --git a/config.gradle b/config.gradle deleted file mode 100644 index 648afcb2941..00000000000 --- a/config.gradle +++ /dev/null @@ -1,87 +0,0 @@ -ext { - jacocoVersion = "0.8.8" - jacocoNeedFilterClasses = [ - 'org/tron/core/net/message/adv/**', - 'org/tron/core/net/message/base/**', - 'org/tron/core/net/message/handshake/**', - 'org/tron/core/net/message/keepalive/**', - 'org/tron/core/net/message/pbft/**', - 'org/tron/core/net/message/sync/**', - 'org/tron/core/net/message/PbftMessageFactory*', - 'org/tron/core/net/message/TronMessage*', - 'org/tron/core/net/message/TronMessageFactory*', - 'org/tron/core/net/messagehandler/**', - 'org/tron/core/net/peer/**', - 'org/tron/core/net/service/**', - 'org/tron/core/net/P2pEventHandlerImpl*', - 'org/tron/core/net/TronNetDelegate*', - 'org/tron/core/net/TronNetService*', - 'org/tron/core/config/args/Args*', - 'org/tron/core/config/args/DynamicArgs*', - 'org/tron/core/config/DefaultConfig*', - 'org/tron/core/config/TronLogShutdownHook*', - 'org/tron/core/Wallet*', - 'org/tron/program/**', - 'org/tron/core/trie/**', - 'org/tron/core/consensus/**', - 'org/tron/core/db/accountstate/callback/**', - 'org/tron/core/db/accountstate/storetrie/**', - 'org/tron/core/db/accountstate/AccountStateEntity*', - 'org/tron/core/db/accountstate/TrieService*', - 'org/tron/core/db/api/**', - 'org/tron/core/db/backup/**', - 'org/tron/core/db/Manager*', - 'org/tron/core/db/PendingManager*', - 'org/tron/core/metrics/**', - 'org/tron/core/zen/**', - 'org/tron/core/services/filter/**', - 'org/tron/core/services/http/**', - 'org/tron/core/services/interfaceJsonRpcOnPBFT/**', - 'org/tron/core/services/interfaceJsonRpcOnSolidity/**', - 'org/tron/core/services/interfaceOnPBFT/**', - 'org/tron/core/services/interfaceOnSolidity/**', - 'org/tron/core/services/jsonrpc/**', - 'org/tron/core/services/ratelimiter/**', - 'org/tron/core/services/NodeInfoService*', - 'org/tron/core/services/RpcApiService*', - 'org/tron/core/services/WalletOnCursor*', - 'org/tron/core/services/WitnessProductBlockService*', - 'org/tron/common/application/**', - 'org/tron/common/backup/**', - 'org/tron/common/client/**', - 'org/tron/common/logsfilter/capsule/BlockFilterCapsule*', - 'org/tron/common/logsfilter/capsule/BlockLogTriggerCapsule*', - 'org/tron/common/logsfilter/capsule/ContractEventTriggerCapsule*', - 'org/tron/common/logsfilter/capsule/ContractLogTriggerCapsule*', - 'org/tron/common/logsfilter/capsule/ContractTriggerCapsule*', - 'org/tron/common/logsfilter/capsule/FilterTriggerCapsule*', - 'org/tron/common/logsfilter/capsule/LogsFilterCapsule*', - 'org/tron/common/logsfilter/capsule/SolidityEventCapsule*', - 'org/tron/common/logsfilter/capsule/SolidityLogCapsule*', - 'org/tron/common/logsfilter/capsule/SolidityTriggerCapsule*', - 'org/tron/common/logsfilter/capsule/TransactionLogTriggerCapsule*', - 'org/tron/common/logsfilter/capsule/TriggerCapsule*', - 'org/tron/common/logsfilter/nativequeue/**', - 'org/tron/common/logsfilter/ContractEventParser*', - 'org/tron/common/logsfilter/ContractEventParserAbi*', - 'org/tron/common/logsfilter/ContractEventParserJson*', - 'org/tron/common/logsfilter/EventPluginLoader*', - 'org/tron/common/logsfilter/IPluginEventListener*', - 'org/tron/common/runtime/LogEventWrapper*', - 'org/tron/common/runtime/RuntimeImpl*', - 'org/tron/common/zksnark/ZksnarkClient*', - 'org/tron/keystore/**', - 'org/tron/core/capsule/utils/DecodeResult*', - 'org/tron/core/capsule/utils/FastByteComparisons*', - 'org/tron/core/capsule/utils/RLP*', - 'org/tron/core/capsule/utils/RLPElement*', - 'org/tron/core/capsule/utils/RLPItem*', - 'org/tron/core/capsule/utils/RLPList*', - 'org/tron/core/capsule/utils/TxInputUtil*', - 'org/tron/core/capsule/utils/TxOutputUtil*', - 'org/tron/core/capsule/ReceiveDescriptionCapsule*', - 'org/tron/core/capsule/SpendDescriptionCapsule*', - 'org/tron/core/capsule/TxInputCapsule*', - 'org/tron/core/capsule/TxOutputCapsule*', - ] -} \ No newline at end of file diff --git a/framework/build.gradle b/framework/build.gradle index c9efb8f45e5..d18d5d5b5f3 100644 --- a/framework/build.gradle +++ b/framework/build.gradle @@ -22,7 +22,22 @@ jacoco { } tasks.withType(Test) { - jacoco.excludes = rootProject.ext.jacocoNeedFilterClasses + jacoco { + def excludesOut = []; + fileTree(project(':framework').buildDir).files.collect { file -> + file.absolutePath.replace(project.buildDir.absolutePath + '/', '') + }.findAll { it.endsWith('.class') }.forEach { + if (it.indexOf("/test/")==-1 + && it.indexOf("classes/")!=-1 + && it.indexOf("classes-instrumented/")==-1 + ) { + def start = it.indexOf("org"); + def end = it.indexOf("\$") == -1 ? it.indexOf(".") : it.indexOf("\$") + excludesOut.add(it.substring(start, end) + "*") + } + } + excludes = excludesOut + } } configurations { From c1bc633074f1dac3b8a6ed38e0d624b76b904310 Mon Sep 17 00:00:00 2001 From: chaozhu Date: Thu, 21 Nov 2024 15:28:42 +0800 Subject: [PATCH 5/6] make jacoco.excludes auto scan --- framework/build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/framework/build.gradle b/framework/build.gradle index d18d5d5b5f3..4bcff3422c0 100644 --- a/framework/build.gradle +++ b/framework/build.gradle @@ -28,8 +28,9 @@ tasks.withType(Test) { file.absolutePath.replace(project.buildDir.absolutePath + '/', '') }.findAll { it.endsWith('.class') }.forEach { if (it.indexOf("/test/")==-1 - && it.indexOf("classes/")!=-1 && it.indexOf("classes-instrumented/")==-1 + && it.indexOf("classes/")!=-1 + && it.indexOf("org/")!=-1 ) { def start = it.indexOf("org"); def end = it.indexOf("\$") == -1 ? it.indexOf(".") : it.indexOf("\$") From 82878724a64482015adb603233d8523f0d0d678c Mon Sep 17 00:00:00 2001 From: chaozhu Date: Thu, 21 Nov 2024 18:11:08 +0800 Subject: [PATCH 6/6] make jacoco.excludes auto scan --- framework/build.gradle | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/framework/build.gradle b/framework/build.gradle index 4bcff3422c0..14346a9e08f 100644 --- a/framework/build.gradle +++ b/framework/build.gradle @@ -22,21 +22,18 @@ jacoco { } tasks.withType(Test) { - jacoco { - def excludesOut = []; - fileTree(project(':framework').buildDir).files.collect { file -> - file.absolutePath.replace(project.buildDir.absolutePath + '/', '') - }.findAll { it.endsWith('.class') }.forEach { - if (it.indexOf("/test/")==-1 - && it.indexOf("classes-instrumented/")==-1 - && it.indexOf("classes/")!=-1 - && it.indexOf("org/")!=-1 - ) { - def start = it.indexOf("org"); - def end = it.indexOf("\$") == -1 ? it.indexOf(".") : it.indexOf("\$") - excludesOut.add(it.substring(start, end) + "*") - } + def excludesOut = []; + doFirst { + fileTree(project(':framework').buildDir.toString()+ "/classes/java/main").files.collect { + file -> file.absolutePath + }.forEach { + def start = it.indexOf("org/") + def dollarIndex = it.indexOf("\$") + def end = dollarIndex == -1 ? it.indexOf(".") : dollarIndex + excludesOut.add(it.substring(start, end) + "*") } + } + jacoco { excludes = excludesOut } }