Compare commits
37 commits
Author | SHA1 | Date | |
---|---|---|---|
5a44d8b3d5 | |||
dc1cdaaf40 | |||
91ab3a93df | |||
9efe91bd11 | |||
1bc3dae1ca | |||
d053fbfb75 | |||
359e5995f5 | |||
fa2c066918 | |||
ee75466182 | |||
48e25760cb | |||
3f64c42ea8 | |||
deeec50bd4 | |||
0e26e2a282 | |||
ca78d07d79 | |||
911bc81baa | |||
5ee98290c8 | |||
2d9e274af1 | |||
b378935632 | |||
2dbe65d0a5 | |||
30c36cf54a | |||
8ce0093b2a | |||
ffc1e2f02f | |||
755a8cd735 | |||
ec11771d40 | |||
a00c1d3c8c | |||
b2a67a1262 | |||
10292cfec5 | |||
7bd786af1e | |||
0e7a31fd1e | |||
9f3ff8aa35 | |||
4929bb7f83 | |||
cdcf900767 | |||
06a6777e7a | |||
facac6cdb4 | |||
eaba63e4ac | |||
eb917b7cdf | |||
57af36e761 |
27 changed files with 411 additions and 92 deletions
25
.github/workflows/bld.yml
vendored
25
.github/workflows/bld.yml
vendored
|
@ -1,14 +1,16 @@
|
||||||
name: bld-ci
|
name: bld-ci
|
||||||
|
|
||||||
on: [push, pull_request, workflow_dispatch]
|
on: [ push, pull_request, workflow_dispatch ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-bld-project:
|
build-bld-project:
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
java-version: [17, 21, 22]
|
java-version: [ 17, 21, 24 ]
|
||||||
|
kotlin-version: [ 1.9.25, 2.0.21, 2.1.20 ]
|
||||||
|
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout source repository
|
- name: Checkout source repository
|
||||||
|
@ -22,11 +24,16 @@ jobs:
|
||||||
distribution: "zulu"
|
distribution: "zulu"
|
||||||
java-version: ${{ matrix.java-version }}
|
java-version: ${{ matrix.java-version }}
|
||||||
|
|
||||||
- name: Grant execute permission for bld
|
- name: Download dependencies [examples]
|
||||||
run: chmod +x bld
|
working-directory: examples
|
||||||
|
|
||||||
- name: Download the dependencies
|
|
||||||
run: ./bld download
|
run: ./bld download
|
||||||
|
|
||||||
- name: Run tests with bld
|
- name: Compile and run JaCoCo [examples]
|
||||||
|
working-directory: examples
|
||||||
|
run: ./bld compile jacoco
|
||||||
|
|
||||||
|
- name: Download dependencies
|
||||||
|
run: ./bld download
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
run: ./bld compile test
|
run: ./bld compile test
|
4
.github/workflows/pages.yml
vendored
4
.github/workflows/pages.yml
vendored
|
@ -47,11 +47,11 @@ jobs:
|
||||||
uses: actions/configure-pages@v3
|
uses: actions/configure-pages@v3
|
||||||
|
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-pages-artifact@v1
|
uses: actions/upload-pages-artifact@v3
|
||||||
with:
|
with:
|
||||||
# Upload generated Javadocs repository
|
# Upload generated Javadocs repository
|
||||||
path: "build/javadoc/"
|
path: "build/javadoc/"
|
||||||
|
|
||||||
- name: Deploy to GitHub Pages
|
- name: Deploy to GitHub Pages
|
||||||
id: deployment
|
id: deployment
|
||||||
uses: actions/deploy-pages@v1
|
uses: actions/deploy-pages@v4
|
||||||
|
|
6
.idea/bld.xml
generated
Normal file
6
.idea/bld.xml
generated
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="BldConfiguration">
|
||||||
|
<events />
|
||||||
|
</component>
|
||||||
|
</project>
|
2
.idea/copyright/Apache_License.xml
generated
2
.idea/copyright/Apache_License.xml
generated
|
@ -1,6 +1,6 @@
|
||||||
<component name="CopyrightManager">
|
<component name="CopyrightManager">
|
||||||
<copyright>
|
<copyright>
|
||||||
<option name="notice" value="Copyright 2023-Copyright &#36;today.yearamp;#36;today.year the original author or authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." />
|
<option name="notice" value="Copyright 2023-&#36;today.year the original author or authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." />
|
||||||
<option name="myName" value="Apache License" />
|
<option name="myName" value="Apache License" />
|
||||||
</copyright>
|
</copyright>
|
||||||
</component>
|
</component>
|
13
.idea/icon.svg
generated
Normal file
13
.idea/icon.svg
generated
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="100%" height="100%" viewBox="0 0 179 108" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||||
|
<g transform="matrix(1,0,0,1,-210.511,-96.3382)">
|
||||||
|
<g transform="matrix(1,0,0,1,-23.3386,-649.816)">
|
||||||
|
<g transform="matrix(0.221288,0,0,0.24,73.9536,390.254)">
|
||||||
|
<path d="M722.568,1482.92L722.568,1921.1L808.968,1921.1L808.968,1888.7C822.168,1907.9 846.168,1930.1 893.568,1930.1C933.168,1930.1 961.968,1917.5 985.368,1893.5C1012.97,1865.9 1027.37,1827.5 1027.37,1786.1C1027.37,1741.7 1011.17,1705.1 985.368,1680.5C961.968,1658.3 928.968,1644.5 892.368,1644.5C862.968,1644.5 830.568,1654.1 808.968,1683.5L808.968,1482.92L722.568,1482.92ZM871.368,1718.9C888.768,1718.9 903.768,1723.7 917.568,1736.9C930.168,1748.9 938.568,1766.3 938.568,1787.9C938.568,1807.7 930.168,1825.1 917.568,1837.1C904.368,1849.7 887.568,1855.7 872.568,1855.7C856.368,1855.7 837.168,1849.1 823.368,1835.9C813.168,1826.3 803.568,1810.1 803.568,1787.9C803.568,1765.1 812.568,1749.5 822.768,1738.7C836.568,1724.3 852.768,1718.9 871.368,1718.9Z" style="fill:rgb(35,146,255);fill-rule:nonzero;"/>
|
||||||
|
<rect x="1083.77" y="1482.92" width="86.4" height="438.182" style="fill:rgb(250,144,82);fill-rule:nonzero;"/>
|
||||||
|
<path d="M1531.37,1482.92L1444.97,1482.92L1444.97,1683.5C1423.37,1654.1 1390.97,1644.5 1361.57,1644.5C1324.97,1644.5 1291.97,1658.3 1268.57,1680.5C1242.77,1705.1 1226.57,1741.7 1226.57,1786.1C1226.57,1827.5 1240.97,1865.9 1268.57,1893.5C1291.97,1917.5 1320.77,1930.1 1360.37,1930.1C1407.77,1930.1 1431.77,1907.9 1444.97,1888.7L1444.97,1921.1L1531.37,1921.1L1531.37,1482.92ZM1382.57,1718.9C1401.17,1718.9 1417.37,1724.3 1431.17,1738.7C1441.37,1749.5 1450.37,1765.1 1450.37,1787.9C1450.37,1810.1 1440.77,1826.3 1430.57,1835.9C1416.77,1849.1 1397.57,1855.7 1381.37,1855.7C1366.37,1855.7 1349.57,1849.7 1336.37,1837.1C1323.77,1825.1 1315.37,1807.7 1315.37,1787.9C1315.37,1766.3 1323.77,1748.9 1336.37,1736.9C1350.17,1723.7 1365.17,1718.9 1382.57,1718.9Z" style="fill:rgb(35,146,255);fill-rule:nonzero;"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
4
.idea/libraries/bld.xml
generated
4
.idea/libraries/bld.xml
generated
|
@ -2,12 +2,12 @@
|
||||||
<library name="bld">
|
<library name="bld">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/bld" />
|
<root url="file://$PROJECT_DIR$/lib/bld" />
|
||||||
<root url="jar://$USER_HOME$/.bld/dist/bld-1.9.1.jar!/" />
|
<root url="jar://$USER_HOME$/.bld/dist/bld-2.2.1.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/bld" />
|
<root url="file://$PROJECT_DIR$/lib/bld" />
|
||||||
<root url="jar://$USER_HOME$/.bld/dist/bld-1.9.1-sources.jar!/" />
|
<root url="jar://$USER_HOME$/.bld/dist/bld-2.2.1-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<excluded>
|
<excluded>
|
||||||
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />
|
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />
|
||||||
|
|
4
.idea/libraries/compile.xml
generated
4
.idea/libraries/compile.xml
generated
|
@ -7,7 +7,7 @@
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/compile" />
|
<root url="file://$PROJECT_DIR$/lib/compile" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="false" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="true" />
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="false" type="SOURCES" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="true" type="SOURCES" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
4
.idea/libraries/runtime.xml
generated
4
.idea/libraries/runtime.xml
generated
|
@ -8,7 +8,7 @@
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/runtime" />
|
<root url="file://$PROJECT_DIR$/lib/runtime" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="false" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="true" />
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="false" type="SOURCES" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="true" type="SOURCES" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
4
.idea/libraries/test.xml
generated
4
.idea/libraries/test.xml
generated
|
@ -8,7 +8,7 @@
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/test" />
|
<root url="file://$PROJECT_DIR$/lib/test" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="false" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="true" />
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="false" type="SOURCES" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="true" type="SOURCES" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
|
@ -9,7 +9,7 @@
|
||||||
],
|
],
|
||||||
"java.configuration.updateBuildConfiguration": "automatic",
|
"java.configuration.updateBuildConfiguration": "automatic",
|
||||||
"java.project.referencedLibraries": [
|
"java.project.referencedLibraries": [
|
||||||
"${HOME}/.bld/dist/bld-1.9.1.jar",
|
"${HOME}/.bld/dist/bld-2.2.1.jar",
|
||||||
"lib/**/*.jar"
|
"lib/**/*.jar"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
12
README.md
12
README.md
|
@ -3,12 +3,20 @@
|
||||||
|
|
||||||
[](https://opensource.org/licenses/Apache-2.0)
|
[](https://opensource.org/licenses/Apache-2.0)
|
||||||
[](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
|
[](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
|
||||||
[](https://rife2.com/bld)
|
[](https://rife2.com/bld)
|
||||||
[](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-jacoco-report)
|
[](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-jacoco-report)
|
||||||
[](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-jacoco-report)
|
[](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-jacoco-report)
|
||||||
[](https://github.com/rife2/bld-jacoco-report/actions/workflows/bld.yml)
|
[](https://github.com/rife2/bld-jacoco-report/actions/workflows/bld.yml)
|
||||||
|
|
||||||
To install, please refer to the [extensions documentation](https://github.com/rife2/bld/wiki/Extensions).
|
To install the latest version, add the following to the `lib/bld/bld-wrapper.properties` file:
|
||||||
|
|
||||||
|
```properties
|
||||||
|
bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report
|
||||||
|
```
|
||||||
|
|
||||||
|
For more information, please refer to the [extensions](https://github.com/rife2/bld/wiki/Extensions) documentation.
|
||||||
|
|
||||||
|
## Generate Code Coverage Reports
|
||||||
|
|
||||||
To run the tests and generate the code coverage reports, add the floowing to your build file:
|
To run the tests and generate the code coverage reports, add the floowing to your build file:
|
||||||
|
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
<!-- BEST PRACTICES -->
|
<!-- BEST PRACTICES -->
|
||||||
<rule ref="category/java/bestpractices.xml">
|
<rule ref="category/java/bestpractices.xml">
|
||||||
<exclude name="AvoidPrintStackTrace"/>
|
<exclude name="AvoidPrintStackTrace"/>
|
||||||
<exclude name="JUnit4TestShouldUseTestAnnotation"/>
|
|
||||||
<exclude name="JUnitTestContainsTooManyAsserts"/>
|
|
||||||
<exclude name="GuardLogStatement"/>
|
<exclude name="GuardLogStatement"/>
|
||||||
|
<exclude name="UnitTestContainsTooManyAsserts"/>
|
||||||
|
<exclude name="UnitTestShouldUseTestAnnotation"/>
|
||||||
</rule>
|
</rule>
|
||||||
|
|
||||||
<rule ref="category/java/bestpractices.xml/MissingOverride">
|
<rule ref="category/java/bestpractices.xml/MissingOverride">
|
||||||
|
|
4
examples/.idea/libraries/bld.xml
generated
4
examples/.idea/libraries/bld.xml
generated
|
@ -2,12 +2,12 @@
|
||||||
<library name="bld">
|
<library name="bld">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/bld" />
|
<root url="file://$PROJECT_DIR$/lib/bld" />
|
||||||
<root url="jar://$USER_HOME$/.bld/dist/bld-1.9.1.jar!/" />
|
<root url="jar://$USER_HOME$/.bld/dist/bld-2.2.1.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/bld" />
|
<root url="file://$PROJECT_DIR$/lib/bld" />
|
||||||
<root url="jar://$USER_HOME$/.bld/dist/bld-1.9.1-sources.jar!/" />
|
<root url="jar://$USER_HOME$/.bld/dist/bld-2.2.1-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<excluded>
|
<excluded>
|
||||||
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />
|
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />
|
||||||
|
|
4
examples/.idea/libraries/compile.xml
generated
4
examples/.idea/libraries/compile.xml
generated
|
@ -7,7 +7,7 @@
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/compile" />
|
<root url="file://$PROJECT_DIR$/lib/compile" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="false" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="true" />
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="false" type="SOURCES" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/compile" recursive="true" type="SOURCES" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
4
examples/.idea/libraries/runtime.xml
generated
4
examples/.idea/libraries/runtime.xml
generated
|
@ -8,7 +8,7 @@
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/runtime" />
|
<root url="file://$PROJECT_DIR$/lib/runtime" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="false" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="true" />
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="false" type="SOURCES" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/runtime" recursive="true" type="SOURCES" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
4
examples/.idea/libraries/test.xml
generated
4
examples/.idea/libraries/test.xml
generated
|
@ -8,7 +8,7 @@
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/test" />
|
<root url="file://$PROJECT_DIR$/lib/test" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="false" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="true" />
|
||||||
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="false" type="SOURCES" />
|
<jarDirectory url="file://$PROJECT_DIR$/lib/test" recursive="true" type="SOURCES" />
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
2
examples/.vscode/settings.json
vendored
2
examples/.vscode/settings.json
vendored
|
@ -9,7 +9,7 @@
|
||||||
],
|
],
|
||||||
"java.configuration.updateBuildConfiguration": "automatic",
|
"java.configuration.updateBuildConfiguration": "automatic",
|
||||||
"java.project.referencedLibraries": [
|
"java.project.referencedLibraries": [
|
||||||
"${HOME}/.bld/dist/bld-1.9.1.jar",
|
"${HOME}/.bld/dist/bld-2.2.1.jar",
|
||||||
"lib/**/*.jar"
|
"lib/**/*.jar"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
|
@ -1,6 +1,6 @@
|
||||||
bld.downloadExtensionJavadoc=false
|
bld.downloadExtensionJavadoc=false
|
||||||
bld.downloadExtensionSources=true
|
bld.downloadExtensionSources=true
|
||||||
bld.downloadLocation=
|
bld.downloadLocation=
|
||||||
bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.6
|
bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.10
|
||||||
bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
|
bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
|
||||||
bld.version=1.9.1
|
bld.version=2.2.1
|
||||||
|
|
|
@ -25,8 +25,8 @@ public class ExamplesBuild extends Project {
|
||||||
repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL);
|
repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL);
|
||||||
|
|
||||||
scope(test)
|
scope(test)
|
||||||
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3)))
|
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 12, 1)))
|
||||||
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3)));
|
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 12, 1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
Binary file not shown.
|
@ -1,6 +1,7 @@
|
||||||
bld.downloadExtensionJavadoc=false
|
bld.downloadExtensionJavadoc=false
|
||||||
bld.downloadExtensionSources=true
|
bld.downloadExtensionSources=true
|
||||||
bld.downloadLocation=
|
bld.downloadLocation=
|
||||||
bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.2
|
bld.extension-exec=com.uwyn.rife2:bld-exec:1.0.5
|
||||||
|
bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.2.2
|
||||||
bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
|
bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
|
||||||
bld.version=1.9.1
|
bld.version=2.2.1
|
||||||
|
|
5
scripts/cliargs.sh
Executable file
5
scripts/cliargs.sh
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
java -jar lib/compile/org.jacoco.cli-*-nodeps.jar report 2> >(grep "^ [<-]") |
|
||||||
|
cut -d' ' -f 2 |
|
||||||
|
sed -e "/help/d" >"src/test/resources/jacoco-args.txt"
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2023-2024 the original author or authors.
|
* Copyright 2023-2025 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -25,31 +25,32 @@ import rife.bld.publish.PublishScm;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static rife.bld.dependencies.Repository.MAVEN_CENTRAL;
|
import static rife.bld.dependencies.Repository.*;
|
||||||
import static rife.bld.dependencies.Repository.RIFE2_RELEASES;
|
import static rife.bld.dependencies.Scope.compile;
|
||||||
import static rife.bld.dependencies.Scope.*;
|
import static rife.bld.dependencies.Scope.test;
|
||||||
import static rife.bld.operations.JavadocOptions.DocLinkOption.NO_MISSING;
|
import static rife.bld.operations.JavadocOptions.DocLinkOption.NO_MISSING;
|
||||||
|
|
||||||
public class JacocoReportOperationBuild extends Project {
|
public class JacocoReportOperationBuild extends Project {
|
||||||
public JacocoReportOperationBuild() {
|
public JacocoReportOperationBuild() {
|
||||||
pkg = "rife.bld.extension";
|
pkg = "rife.bld.extension";
|
||||||
name = "JacocoReportOperation";
|
name = "JacocoReportOperation";
|
||||||
version = version(0, 9, 6);
|
version = version(0, 9, 10);
|
||||||
|
|
||||||
javaRelease = 17;
|
javaRelease = 17;
|
||||||
|
|
||||||
downloadSources = true;
|
downloadSources = true;
|
||||||
autoDownloadPurge = true;
|
autoDownloadPurge = true;
|
||||||
repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES);
|
|
||||||
|
|
||||||
var jacocoVersion = new VersionNumber(0, 8, 12);
|
repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, RIFE2_RELEASES, RIFE2_SNAPSHOTS);
|
||||||
|
|
||||||
|
var jacocoVersion = new VersionNumber(0, 8, 13);
|
||||||
scope(compile)
|
scope(compile)
|
||||||
.include(dependency("org.jacoco", "jacoco", jacocoVersion).exclude("*", "org.jacoco.doc"))
|
.include(dependency("org.jacoco", "jacoco", jacocoVersion).exclude("*", "org.jacoco.doc"))
|
||||||
.include(dependency("com.uwyn.rife2", "bld", version(1, 9, 1)));
|
.include(dependency("com.uwyn.rife2", "bld", version(2, 2, 1)));
|
||||||
scope(test)
|
scope(test)
|
||||||
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3)))
|
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 12, 1)))
|
||||||
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3)))
|
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 12, 1)))
|
||||||
.include(dependency("org.assertj", "assertj-core", version(3, 26, 0)));
|
.include(dependency("org.assertj", "assertj-core", version(3, 27, 3)));
|
||||||
|
|
||||||
javadocOperation()
|
javadocOperation()
|
||||||
.javadocOptions()
|
.javadocOptions()
|
||||||
|
@ -60,25 +61,23 @@ public class JacocoReportOperationBuild extends Project {
|
||||||
|
|
||||||
publishOperation()
|
publishOperation()
|
||||||
.repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2"))
|
.repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2"))
|
||||||
|
.repository(repository("github"))
|
||||||
.info()
|
.info()
|
||||||
.groupId("com.uwyn.rife2")
|
.groupId("com.uwyn.rife2")
|
||||||
.artifactId("bld-jacoco-report")
|
.artifactId("bld-jacoco-report")
|
||||||
.description("bld Extension to Generate JaCoCo Code Coverage Reports")
|
.description("bld Extension to Generate JaCoCo Code Coverage Reports")
|
||||||
.url("https://github.com/rife2/bld-pmd")
|
.url("https://github.com/rife2/bld-pmd")
|
||||||
.developer(
|
.developer(new PublishDeveloper()
|
||||||
new PublishDeveloper()
|
|
||||||
.id("ethauvin")
|
.id("ethauvin")
|
||||||
.name("Erik C. Thauvin")
|
.name("Erik C. Thauvin")
|
||||||
.email("erik@thauvin.net")
|
.email("erik@thauvin.net")
|
||||||
.url("https://erik.thauvin.net/")
|
.url("https://erik.thauvin.net/")
|
||||||
)
|
)
|
||||||
.license(
|
.license(new PublishLicense()
|
||||||
new PublishLicense()
|
|
||||||
.name("The Apache License, Version 2.0")
|
.name("The Apache License, Version 2.0")
|
||||||
.url("https://www.apache.org/licenses/LICENSE-2.0.txt")
|
.url("https://www.apache.org/licenses/LICENSE-2.0.txt")
|
||||||
)
|
)
|
||||||
.scm(
|
.scm(new PublishScm().connection("scm:git:https://github.com/rife2/bld-pmd.git")
|
||||||
new PublishScm().connection("scm:git:https://github.com/rife2/bld-pmd.git")
|
|
||||||
.developerConnection("scm:git:git@github.com:rife2/bld-pmd.git")
|
.developerConnection("scm:git:git@github.com:rife2/bld-pmd.git")
|
||||||
.url("https://github.com/rife2/bld-pmd")
|
.url("https://github.com/rife2/bld-pmd")
|
||||||
)
|
)
|
||||||
|
@ -98,4 +97,16 @@ public class JacocoReportOperationBuild extends Project {
|
||||||
.ruleSets("config/pmd.xml")
|
.ruleSets("config/pmd.xml")
|
||||||
.execute();
|
.execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void test() throws Exception {
|
||||||
|
var os = System.getProperty("os.name");
|
||||||
|
if (os != null && os.toLowerCase().contains("linux")) {
|
||||||
|
new ExecOperation()
|
||||||
|
.fromProject(this)
|
||||||
|
.command("scripts/cliargs.sh")
|
||||||
|
.execute();
|
||||||
|
}
|
||||||
|
super.test();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2023-2024 the original author or authors.
|
* Copyright 2023-2025 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -35,7 +35,6 @@ import java.io.IOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
@ -111,10 +110,10 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
*
|
*
|
||||||
* @param classFiles the class files
|
* @param classFiles the class files
|
||||||
* @return this operation instance
|
* @return this operation instance
|
||||||
|
* @see #classFiles(Collection)
|
||||||
*/
|
*/
|
||||||
public JacocoReportOperation classFiles(File... classFiles) {
|
public JacocoReportOperation classFiles(File... classFiles) {
|
||||||
classFiles_.addAll(List.of(classFiles));
|
return classFiles(List.of(classFiles));
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -122,10 +121,21 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
*
|
*
|
||||||
* @param classFiles the class files
|
* @param classFiles the class files
|
||||||
* @return this operation instance
|
* @return this operation instance
|
||||||
|
* @see #classFilesStrings(Collection)
|
||||||
*/
|
*/
|
||||||
public JacocoReportOperation classFiles(String... classFiles) {
|
public JacocoReportOperation classFiles(String... classFiles) {
|
||||||
classFiles_.addAll(Arrays.stream(classFiles).map(File::new).toList());
|
return classFilesStrings(List.of(classFiles));
|
||||||
return this;
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the locations of Java class files.
|
||||||
|
*
|
||||||
|
* @param classFiles the class files
|
||||||
|
* @return this operation instance
|
||||||
|
* @see #classFilesPaths(Collection)
|
||||||
|
*/
|
||||||
|
public JacocoReportOperation classFiles(Path... classFiles) {
|
||||||
|
return classFilesPaths(List.of(classFiles));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -142,33 +152,65 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
*
|
*
|
||||||
* @param classFiles the class files
|
* @param classFiles the class files
|
||||||
* @return this operation instance
|
* @return this operation instance
|
||||||
|
* @see #classFiles(File...)
|
||||||
*/
|
*/
|
||||||
public JacocoReportOperation classFiles(Collection<File> classFiles) {
|
public JacocoReportOperation classFiles(Collection<File> classFiles) {
|
||||||
classFiles_.addAll(classFiles);
|
classFiles_.addAll(classFiles);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the locations of Java class files.
|
||||||
|
*
|
||||||
|
* @param classFiles the class files
|
||||||
|
* @return this operation instance
|
||||||
|
* @see #classFiles(Path...)
|
||||||
|
*/
|
||||||
|
public JacocoReportOperation classFilesPaths(Collection<Path> classFiles) {
|
||||||
|
return classFiles(classFiles.stream().map(Path::toFile).toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the locations of Java class files.
|
||||||
|
*
|
||||||
|
* @param classFiles the class files
|
||||||
|
* @return this operation instance
|
||||||
|
* @see #classFiles(String...)
|
||||||
|
*/
|
||||||
|
public JacocoReportOperation classFilesStrings(Collection<String> classFiles) {
|
||||||
|
return classFiles(classFiles.stream().map(File::new).toList());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the location of the CSV report.
|
* Sets the location of the CSV report.
|
||||||
*
|
*
|
||||||
* @param cvs the report location
|
* @param csv the report location
|
||||||
* @return this operation instance
|
* @return this operation instance
|
||||||
*/
|
*/
|
||||||
public JacocoReportOperation csv(File cvs) {
|
public JacocoReportOperation csv(File csv) {
|
||||||
csv_ = cvs;
|
csv_ = csv;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the location of the CSV report.
|
* Sets the location of the CSV report.
|
||||||
*
|
*
|
||||||
* @param cvs the report location
|
* @param csv the report location
|
||||||
* @return this operation instance
|
* @return this operation instance
|
||||||
*/
|
*/
|
||||||
public JacocoReportOperation csv(String cvs) {
|
public JacocoReportOperation csv(String csv) {
|
||||||
return csv(new File(cvs));
|
return csv(new File(csv));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the location of the CSV report.
|
||||||
|
*
|
||||||
|
* @param csv the report location
|
||||||
|
* @return this operation instance
|
||||||
|
*/
|
||||||
|
public JacocoReportOperation csv(Path csv) {
|
||||||
|
return csv(csv.toFile());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the file to write execution data to.
|
* Sets the file to write execution data to.
|
||||||
|
@ -191,6 +233,16 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
return destFile(new File(destFile));
|
return destFile(new File(destFile));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the file to write execution data to.
|
||||||
|
*
|
||||||
|
* @param destFile the file
|
||||||
|
* @return this operation instance
|
||||||
|
*/
|
||||||
|
public JacocoReportOperation destFile(Path destFile) {
|
||||||
|
return destFile(destFile.toFile());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the source file encoding. The platform encoding is used by default.
|
* Sets the source file encoding. The platform encoding is used by default.
|
||||||
*
|
*
|
||||||
|
@ -207,10 +259,10 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
*
|
*
|
||||||
* @param execFiles the exec files
|
* @param execFiles the exec files
|
||||||
* @return this operation instance
|
* @return this operation instance
|
||||||
|
* @see #execFiles(Collection)
|
||||||
*/
|
*/
|
||||||
public JacocoReportOperation execFiles(File... execFiles) {
|
public JacocoReportOperation execFiles(File... execFiles) {
|
||||||
execFiles_.addAll(List.of(execFiles));
|
return execFiles(List.of(execFiles));
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -218,10 +270,10 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
*
|
*
|
||||||
* @param execFiles the exec files
|
* @param execFiles the exec files
|
||||||
* @return this operation instance
|
* @return this operation instance
|
||||||
|
* @see #execFilesStrings(Collection)
|
||||||
*/
|
*/
|
||||||
public JacocoReportOperation execFiles(String... execFiles) {
|
public JacocoReportOperation execFiles(String... execFiles) {
|
||||||
execFiles_.addAll(Arrays.stream(execFiles).map(File::new).toList());
|
return execFilesStrings(List.of(execFiles));
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -229,6 +281,18 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
*
|
*
|
||||||
* @param execFiles the exec files
|
* @param execFiles the exec files
|
||||||
* @return this operation instance
|
* @return this operation instance
|
||||||
|
* @see #execFilesPaths(Collection)
|
||||||
|
*/
|
||||||
|
public JacocoReportOperation execFiles(Path... execFiles) {
|
||||||
|
return execFilesPaths(List.of(execFiles));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the locations of the JaCoCo *.exec files to read.
|
||||||
|
*
|
||||||
|
* @param execFiles the exec files
|
||||||
|
* @return this operation instance
|
||||||
|
* @see #execFiles(File...)
|
||||||
*/
|
*/
|
||||||
public JacocoReportOperation execFiles(Collection<File> execFiles) {
|
public JacocoReportOperation execFiles(Collection<File> execFiles) {
|
||||||
execFiles_.addAll(execFiles);
|
execFiles_.addAll(execFiles);
|
||||||
|
@ -244,6 +308,28 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
return execFiles_;
|
return execFiles_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the locations of the JaCoCo *.exec files to read.
|
||||||
|
*
|
||||||
|
* @param execFiles the exec files
|
||||||
|
* @return this operation instance
|
||||||
|
* @see #execFiles(Path...)
|
||||||
|
*/
|
||||||
|
public JacocoReportOperation execFilesPaths(Collection<Path> execFiles) {
|
||||||
|
return execFiles(execFiles.stream().map(Path::toFile).toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the locations of the JaCoCo *.exec files to read.
|
||||||
|
*
|
||||||
|
* @param execFiles the exec files
|
||||||
|
* @return this operation instance
|
||||||
|
* @see #execFiles(String...)
|
||||||
|
*/
|
||||||
|
public JacocoReportOperation execFilesStrings(Collection<String> execFiles) {
|
||||||
|
return execFiles(execFiles.stream().map(File::new).toList());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Performs the operation execution that can be wrapped by the {@code #executeOnce} call.
|
* Performs the operation execution that can be wrapped by the {@code #executeOnce} call.
|
||||||
*/
|
*/
|
||||||
|
@ -261,7 +347,7 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
var buildJacocoExec = Path.of(buildJacocoExecDir.getPath(), "jacoco.exec").toFile();
|
var buildJacocoExec = Path.of(buildJacocoExecDir.getPath(), "jacoco.exec").toFile();
|
||||||
|
|
||||||
if (destFile_ == null) {
|
if (destFile_ == null) {
|
||||||
destFile_ = Path.of(buildJacocoExecDir.getPath(), "jacoco.exec").toFile();
|
destFile_ = buildJacocoExec;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (execFiles_.isEmpty()) {
|
if (execFiles_.isEmpty()) {
|
||||||
|
@ -343,6 +429,16 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
return html(new File(html));
|
return html(new File(html));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the location of the HTML report.
|
||||||
|
*
|
||||||
|
* @param html the html
|
||||||
|
* @return this operation instance
|
||||||
|
*/
|
||||||
|
public JacocoReportOperation html(Path html) {
|
||||||
|
return html(html.toFile());
|
||||||
|
}
|
||||||
|
|
||||||
private ExecFileLoader loadExecFiles() throws IOException {
|
private ExecFileLoader loadExecFiles() throws IOException {
|
||||||
var loader = new ExecFileLoader();
|
var loader = new ExecFileLoader();
|
||||||
if (execFiles_.isEmpty() && LOGGER.isLoggable(Level.WARNING) && !silent()) {
|
if (execFiles_.isEmpty() && LOGGER.isLoggable(Level.WARNING) && !silent()) {
|
||||||
|
@ -407,10 +503,10 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
*
|
*
|
||||||
* @param sourceFiles the source files
|
* @param sourceFiles the source files
|
||||||
* @return this operation instance
|
* @return this operation instance
|
||||||
|
* @see #sourceFiles(Collection)
|
||||||
*/
|
*/
|
||||||
public JacocoReportOperation sourceFiles(File... sourceFiles) {
|
public JacocoReportOperation sourceFiles(File... sourceFiles) {
|
||||||
sourceFiles_.addAll(List.of(sourceFiles));
|
return sourceFiles(List.of(sourceFiles));
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -418,10 +514,10 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
*
|
*
|
||||||
* @param sourceFiles the source files
|
* @param sourceFiles the source files
|
||||||
* @return this operation instance
|
* @return this operation instance
|
||||||
|
* @see #sourceFilesStrings(Collection)
|
||||||
*/
|
*/
|
||||||
public JacocoReportOperation sourceFiles(String... sourceFiles) {
|
public JacocoReportOperation sourceFiles(String... sourceFiles) {
|
||||||
sourceFiles_.addAll(Arrays.stream(sourceFiles).map(File::new).toList());
|
return sourceFilesStrings(List.of(sourceFiles));
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -429,6 +525,18 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
*
|
*
|
||||||
* @param sourceFiles the source files
|
* @param sourceFiles the source files
|
||||||
* @return this operation instance
|
* @return this operation instance
|
||||||
|
* @see #sourceFilesPaths(Collection)
|
||||||
|
*/
|
||||||
|
public JacocoReportOperation sourceFiles(Path... sourceFiles) {
|
||||||
|
return sourceFilesPaths(List.of(sourceFiles));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the locations of the source files. (e.g., {@code src/main/java})
|
||||||
|
*
|
||||||
|
* @param sourceFiles the source files
|
||||||
|
* @return this operation instance
|
||||||
|
* @see #sourceFiles(File...)
|
||||||
*/
|
*/
|
||||||
public JacocoReportOperation sourceFiles(Collection<File> sourceFiles) {
|
public JacocoReportOperation sourceFiles(Collection<File> sourceFiles) {
|
||||||
sourceFiles_.addAll(sourceFiles);
|
sourceFiles_.addAll(sourceFiles);
|
||||||
|
@ -444,6 +552,28 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
return sourceFiles_;
|
return sourceFiles_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the locations of the source files. (e.g., {@code src/main/java})
|
||||||
|
*
|
||||||
|
* @param sourceFiles the source files
|
||||||
|
* @return this operation instance
|
||||||
|
* @see #sourceFiles(Path...)
|
||||||
|
*/
|
||||||
|
public JacocoReportOperation sourceFilesPaths(Collection<Path> sourceFiles) {
|
||||||
|
return sourceFiles(sourceFiles.stream().map(Path::toFile).toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the locations of the source files. (e.g., {@code src/main/java})
|
||||||
|
*
|
||||||
|
* @param sourceFiles the source files
|
||||||
|
* @return this operation instance
|
||||||
|
* @see #sourceFiles(String...)
|
||||||
|
*/
|
||||||
|
public JacocoReportOperation sourceFilesStrings(Collection<String> sourceFiles) {
|
||||||
|
return sourceFiles(sourceFiles.stream().map(File::new).toList());
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops")
|
@SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops")
|
||||||
private ISourceFileLocator sourceLocator() {
|
private ISourceFileLocator sourceLocator() {
|
||||||
var multi = new MultiSourceFileLocator(tabWidth_);
|
var multi = new MultiSourceFileLocator(tabWidth_);
|
||||||
|
@ -502,4 +632,14 @@ public class JacocoReportOperation extends AbstractOperation<JacocoReportOperati
|
||||||
public JacocoReportOperation xml(String xml) {
|
public JacocoReportOperation xml(String xml) {
|
||||||
return xml(new File(xml));
|
return xml(new File(xml));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the location of the XML report.
|
||||||
|
*
|
||||||
|
* @param xml the report location
|
||||||
|
* @return this operation instance
|
||||||
|
*/
|
||||||
|
public JacocoReportOperation xml(Path xml) {
|
||||||
|
return xml(xml.toFile());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2023-2024 the original author or authors.
|
* Copyright 2023-2025 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -16,7 +16,10 @@
|
||||||
|
|
||||||
package rife.bld.extension;
|
package rife.bld.extension;
|
||||||
|
|
||||||
|
import org.assertj.core.api.AutoCloseableSoftAssertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.condition.EnabledOnOs;
|
||||||
|
import org.junit.jupiter.api.condition.OS;
|
||||||
import rife.bld.Project;
|
import rife.bld.Project;
|
||||||
import rife.bld.operations.exceptions.ExitStatusException;
|
import rife.bld.operations.exceptions.ExitStatusException;
|
||||||
|
|
||||||
|
@ -24,11 +27,14 @@ import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.assertj.core.api.Assertions.assertThatCode;
|
import static org.assertj.core.api.Assertions.assertThatCode;
|
||||||
|
|
||||||
|
@SuppressWarnings("PMD.AvoidDuplicateLiterals")
|
||||||
class JacocoReportOperationTest {
|
class JacocoReportOperationTest {
|
||||||
final File csv;
|
final File csv;
|
||||||
final File html;
|
final File html;
|
||||||
|
@ -53,6 +59,26 @@ class JacocoReportOperationTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@EnabledOnOs(OS.LINUX)
|
||||||
|
void checkAllParamsTest() throws IOException {
|
||||||
|
var supported = List.of("<execfiles>",
|
||||||
|
"--classfiles",
|
||||||
|
"--csv",
|
||||||
|
"--encoding",
|
||||||
|
"--html",
|
||||||
|
"--name",
|
||||||
|
"--quiet",
|
||||||
|
"--sourcefiles",
|
||||||
|
"--tabwith",
|
||||||
|
"--xml");
|
||||||
|
var args = Files.readAllLines(Paths.get("src", "test", "resources", "jacoco-args.txt"));
|
||||||
|
|
||||||
|
assertThat(args).isNotEmpty();
|
||||||
|
assertThat(supported).containsAll(args);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void executeFailureTest() {
|
void executeFailureTest() {
|
||||||
var op = new JacocoReportOperation().fromProject(new Project());
|
var op = new JacocoReportOperation().fromProject(new Project());
|
||||||
|
@ -66,10 +92,12 @@ class JacocoReportOperationTest {
|
||||||
assertThat(csv).exists();
|
assertThat(csv).exists();
|
||||||
assertThat(html).isDirectory();
|
assertThat(html).isDirectory();
|
||||||
assertThat(xml).exists();
|
assertThat(xml).exists();
|
||||||
|
try (var softly = new AutoCloseableSoftAssertions()) {
|
||||||
try (var lines = Files.lines(xml.toPath())) {
|
try (var lines = Files.lines(xml.toPath())) {
|
||||||
assertThat(lines.anyMatch(s ->
|
softly.assertThat(lines.anyMatch(s ->
|
||||||
s.contains("<counter type=\"INSTRUCTION\" missed=\"0\" covered=\"3\"/>"))).isTrue();
|
s.contains("<counter type=\"INSTRUCTION\" missed=\"0\" covered=\"3\"/>"))).isTrue();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
assertThat(Path.of(html.getPath(), "com.example", "Examples.java.html")).exists();
|
assertThat(Path.of(html.getPath(), "com.example", "Examples.java.html")).exists();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -88,4 +116,94 @@ class JacocoReportOperationTest {
|
||||||
|
|
||||||
return op;
|
return op;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testClassFiles() {
|
||||||
|
var foo = new File("foo");
|
||||||
|
var bar = new File("bar");
|
||||||
|
|
||||||
|
var op = new JacocoReportOperation().classFiles("foo", "bar");
|
||||||
|
assertThat(op.classFiles()).as("String...").contains(foo, bar);
|
||||||
|
op.classFiles().clear();
|
||||||
|
|
||||||
|
op = op.classFiles(foo, bar);
|
||||||
|
assertThat(op.classFiles()).as("File...").contains(foo, bar);
|
||||||
|
op.classFiles().clear();
|
||||||
|
|
||||||
|
op = op.classFiles(foo.toPath(), bar.toPath());
|
||||||
|
assertThat(op.classFiles()).as("Path...").contains(foo, bar);
|
||||||
|
op.classFiles().clear();
|
||||||
|
|
||||||
|
op = op.classFilesStrings(List.of("foo", "bar"));
|
||||||
|
assertThat(op.classFiles()).as("List(String...)").contains(foo, bar);
|
||||||
|
op.classFiles().clear();
|
||||||
|
|
||||||
|
op = op.classFiles(List.of(foo, bar));
|
||||||
|
assertThat(op.classFiles()).as("File...").contains(foo, bar);
|
||||||
|
op.classFiles().clear();
|
||||||
|
|
||||||
|
op = op.classFilesPaths(List.of(foo.toPath(), bar.toPath()));
|
||||||
|
assertThat(op.classFiles()).as("Path...").contains(foo, bar);
|
||||||
|
op.classFiles().clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testExecFiles() {
|
||||||
|
var foo = new File("foo");
|
||||||
|
var bar = new File("bar");
|
||||||
|
|
||||||
|
var op = new JacocoReportOperation().execFiles("foo", "bar");
|
||||||
|
assertThat(op.execFiles()).as("String...").contains(foo, bar);
|
||||||
|
op.execFiles().clear();
|
||||||
|
|
||||||
|
op = op.execFiles(foo, bar);
|
||||||
|
assertThat(op.execFiles()).as("File...").contains(foo, bar);
|
||||||
|
op.execFiles().clear();
|
||||||
|
|
||||||
|
op = op.execFiles(foo.toPath(), bar.toPath());
|
||||||
|
assertThat(op.execFiles()).as("Path...").contains(foo, bar);
|
||||||
|
op.execFiles().clear();
|
||||||
|
|
||||||
|
op = op.execFilesStrings(List.of("foo", "bar"));
|
||||||
|
assertThat(op.execFiles()).as("List(String...)").contains(foo, bar);
|
||||||
|
op.execFiles().clear();
|
||||||
|
|
||||||
|
op = op.execFiles(List.of(foo, bar));
|
||||||
|
assertThat(op.execFiles()).as("File...").contains(foo, bar);
|
||||||
|
op.execFiles().clear();
|
||||||
|
|
||||||
|
op = op.execFilesPaths(List.of(foo.toPath(), bar.toPath()));
|
||||||
|
assertThat(op.execFiles()).as("Path...").contains(foo, bar);
|
||||||
|
op.execFiles().clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testSourceFiles() {
|
||||||
|
var foo = new File("foo");
|
||||||
|
var bar = new File("bar");
|
||||||
|
|
||||||
|
var op = new JacocoReportOperation().sourceFiles("foo", "bar");
|
||||||
|
assertThat(op.sourceFiles()).as("String...").contains(foo, bar);
|
||||||
|
op.sourceFiles().clear();
|
||||||
|
|
||||||
|
op = op.sourceFiles(foo, bar);
|
||||||
|
assertThat(op.sourceFiles()).as("File...").contains(foo, bar);
|
||||||
|
op.sourceFiles().clear();
|
||||||
|
|
||||||
|
op = op.sourceFiles(foo.toPath(), bar.toPath());
|
||||||
|
assertThat(op.sourceFiles()).as("Path...").contains(foo, bar);
|
||||||
|
op.sourceFiles().clear();
|
||||||
|
|
||||||
|
op = op.sourceFilesStrings(List.of("foo", "bar"));
|
||||||
|
assertThat(op.sourceFiles()).as("List(String...)").contains(foo, bar);
|
||||||
|
op.sourceFiles().clear();
|
||||||
|
|
||||||
|
op = op.sourceFiles(List.of(foo, bar));
|
||||||
|
assertThat(op.sourceFiles()).as("File...").contains(foo, bar);
|
||||||
|
op.sourceFiles().clear();
|
||||||
|
|
||||||
|
op = op.sourceFilesPaths(List.of(foo.toPath(), bar.toPath()));
|
||||||
|
assertThat(op.sourceFiles()).as("Path...").contains(foo, bar);
|
||||||
|
op.sourceFiles().clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
10
src/test/resources/jacoco-args.txt
Normal file
10
src/test/resources/jacoco-args.txt
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<execfiles>
|
||||||
|
--classfiles
|
||||||
|
--csv
|
||||||
|
--encoding
|
||||||
|
--html
|
||||||
|
--name
|
||||||
|
--quiet
|
||||||
|
--sourcefiles
|
||||||
|
--tabwith
|
||||||
|
--xml
|
Loading…
Add table
Add a link
Reference in a new issue