Compare commits
60 commits
Author | SHA1 | Date | |
---|---|---|---|
38d25733fc | |||
0671bdfd7a | |||
926580f12e | |||
7fbe975128 | |||
e9f1fe25d9 | |||
ebef9ea3d5 | |||
c4ba97ff6d | |||
4573055b56 | |||
edbc515eba | |||
09beae6e4e | |||
dad854d7e8 | |||
d373dd26c6 | |||
bff5cd76e6 | |||
2e3d65bd08 | |||
22b0babdd5 | |||
f089ff8c9f | |||
80c4ae0744 | |||
3d8d41ae3d | |||
c0afb715d7 | |||
bc35adebfd | |||
c81b0fac5d | |||
a83bea7f27 | |||
dee9abae13 | |||
a7945aea0c | |||
d20b0d3521 | |||
390bceaf4c | |||
34f933628d | |||
8d4fa46d3c | |||
eb20bb7432 | |||
16cf748853 | |||
7dfb3cda59 | |||
3a67e0e1b6 | |||
9ff912ac7f | |||
e5a56b518c | |||
7028acf4d0 | |||
d49fc24bd7 | |||
c03dc8a894 | |||
9ed731e936 | |||
6243355364 | |||
2412c525dd | |||
4a4fa2fb83 | |||
11bdafa259 | |||
1a2a854a8b | |||
d9a225aa0e | |||
ce56ed6e1d | |||
c26f531329 | |||
1227115805 | |||
4adc28d4a5 | |||
6f62c38a9b | |||
9089cae653 | |||
f70c8c89bf | |||
d568ee486f | |||
393d8736aa | |||
fd54c6bd0e | |||
b67915a310 | |||
cfdb81dad4 | |||
bf097e614a | |||
d0f782a9aa | |||
35dc6d38cc | |||
f8718774ae |
26 changed files with 207 additions and 117 deletions
18
.github/workflows/bld.yml
vendored
18
.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,6 +24,14 @@ jobs:
|
||||||
distribution: "zulu"
|
distribution: "zulu"
|
||||||
java-version: ${{ matrix.java-version }}
|
java-version: ${{ matrix.java-version }}
|
||||||
|
|
||||||
|
- name: Download dependencies [examples]
|
||||||
|
working-directory: examples
|
||||||
|
run: ./bld download
|
||||||
|
|
||||||
|
- name: Run PIT tests [examples]
|
||||||
|
working-directory: examples
|
||||||
|
run: ./bld compile pit
|
||||||
|
|
||||||
- name: Download dependencies
|
- name: Download dependencies
|
||||||
run: ./bld download
|
run: ./bld download
|
||||||
|
|
||||||
|
|
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
|
||||||
|
|
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-2.0.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-2.0.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>
|
1
.idea/misc.xml
generated
1
.idea/misc.xml
generated
|
@ -4,6 +4,7 @@
|
||||||
<pattern value="rife.bld.extension.PitestOperationBuild" method="jacoco" />
|
<pattern value="rife.bld.extension.PitestOperationBuild" method="jacoco" />
|
||||||
<pattern value="rife.bld.extension.PitestOperationBuild" />
|
<pattern value="rife.bld.extension.PitestOperationBuild" />
|
||||||
<pattern value="rife.bld.extension.PitestOperationBuild" method="pmd" />
|
<pattern value="rife.bld.extension.PitestOperationBuild" method="pmd" />
|
||||||
|
<pattern value="rife.bld.extension.PitestOperationBuild" method="pmdCli" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PDMPlugin">
|
<component name="PDMPlugin">
|
||||||
<option name="customRuleSets">
|
<option name="customRuleSets">
|
||||||
|
|
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-2.0.1.jar",
|
"${HOME}/.bld/dist/bld-2.2.1.jar",
|
||||||
"lib/**/*.jar"
|
"lib/**/*.jar"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
20
README.md
20
README.md
|
@ -2,12 +2,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-pitest)
|
[](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-pitest)
|
||||||
[](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-pitest)
|
[](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-pitest)
|
||||||
[](https://github.com/rife2/bld-pitest/actions/workflows/bld.yml)
|
[](https://github.com/rife2/bld-pitest/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-pitest=com.uwyn.rife2:bld-pitest
|
||||||
|
```
|
||||||
|
|
||||||
|
For more information, please refer to the [extensions](https://github.com/rife2/bld/wiki/Extensions) documentation.
|
||||||
|
|
||||||
|
## Mutation Testing with PIT
|
||||||
|
|
||||||
To run mutation tests and coverage, add the following to your build file:
|
To run mutation tests and coverage, add the following to your build file:
|
||||||
|
|
||||||
|
@ -16,7 +24,7 @@ To run mutation tests and coverage, add the following to your build file:
|
||||||
public void pit() throws Exception {
|
public void pit() throws Exception {
|
||||||
new PitestOperation()
|
new PitestOperation()
|
||||||
.fromProject(this)
|
.fromProject(this)
|
||||||
.reportDir(Path.of("reports", "mutations").toString())
|
.reportDir(Path.of("reports", "mutations"))
|
||||||
.targetClasses(pkg + ".*")
|
.targetClasses(pkg + ".*")
|
||||||
.targetTests(pkg + ".*")
|
.targetTests(pkg + ".*")
|
||||||
.verbose(true)
|
.verbose(true)
|
||||||
|
@ -40,8 +48,8 @@ Don't forget to add the Pitest `test` dependencies to your build file, as they a
|
||||||
```java
|
```java
|
||||||
repositories = List.of(MAVEN_CENTRAL);
|
repositories = List.of(MAVEN_CENTRAL);
|
||||||
scope(test)
|
scope(test)
|
||||||
.include(dependency("org.pitest", "pitest", version(1, 16, 1)))
|
.include(dependency("org.pitest", "pitest", version(1, 19, 1)))
|
||||||
.include(dependency("org.pitest", "pitest-command-line", version(1, 16, 1)))
|
.include(dependency("org.pitest", "pitest-command-line", version(1, 17, 4)))
|
||||||
.include(dependency("org.pitest", "pitest-junit5-plugin", version(1, 2, 1)))
|
.include(dependency("org.pitest", "pitest-junit5-plugin", version(1, 2, 2)))
|
||||||
.include(dependency("org.pitest", "pitest-testng-plugin", version(1, 0, 0)));
|
.include(dependency("org.pitest", "pitest-testng-plugin", version(1, 0, 0)));
|
||||||
```
|
```
|
||||||
|
|
|
@ -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-2.0.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-2.0.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-2.0.1.jar",
|
"${HOME}/.bld/dist/bld-2.2.1.jar",
|
||||||
"lib/**/*.jar"
|
"lib/**/*.jar"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
|
@ -1,7 +1,7 @@
|
||||||
bld.downloadExtensionJavadoc=false
|
bld.downloadExtensionJavadoc=false
|
||||||
bld.downloadExtensionSources=true
|
bld.downloadExtensionSources=true
|
||||||
bld.downloadLocation=
|
bld.downloadLocation=
|
||||||
bld.extension-pitest=com.uwyn.rife2:bld-pitest:1.0.0-SNAPSHOT
|
bld.extension-pitest=com.uwyn.rife2:bld-pitest:1.0.10
|
||||||
bld.repositories=MAVEN_CENTRAL,RIFE2_RELEASES,MAVEN_LOCAL,RIFE2_SNAPSHOTS
|
bld.repositories=MAVEN_CENTRAL,RIFE2_RELEASES,MAVEN_LOCAL,RIFE2_SNAPSHOTS
|
||||||
bld.sourceDirectories=
|
bld.sourceDirectories=
|
||||||
bld.version=2.0.1
|
bld.version=2.2.1
|
||||||
|
|
|
@ -7,6 +7,9 @@ import rife.tools.FileUtils;
|
||||||
|
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.logging.ConsoleHandler;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import static rife.bld.dependencies.Scope.test;
|
import static rife.bld.dependencies.Scope.test;
|
||||||
|
|
||||||
|
@ -26,15 +29,26 @@ public class ExamplesBuild extends Project {
|
||||||
|
|
||||||
repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES);
|
repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES);
|
||||||
|
|
||||||
|
var pitest = version(1, 19, 1);
|
||||||
scope(test)
|
scope(test)
|
||||||
.include(dependency("org.pitest", "pitest", version(1, 16, 1)))
|
.include(dependency("org.pitest", "pitest", pitest))
|
||||||
.include(dependency("org.pitest", "pitest-command-line", version(1, 16, 1)))
|
.include(dependency("org.pitest", "pitest-command-line", pitest))
|
||||||
.include(dependency("org.pitest", "pitest-junit5-plugin", version(1, 2, 1)))
|
.include(dependency("org.pitest", "pitest-junit5-plugin", version(1, 2, 2)))
|
||||||
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 11, 0)))
|
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 12, 1)))
|
||||||
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 11, 0)));
|
.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) {
|
||||||
|
// Enable detailed logging for the extensions
|
||||||
|
var level = Level.ALL;
|
||||||
|
var logger = Logger.getLogger("rife.bld.extension");
|
||||||
|
var consoleHandler = new ConsoleHandler();
|
||||||
|
|
||||||
|
consoleHandler.setLevel(level);
|
||||||
|
logger.addHandler(consoleHandler);
|
||||||
|
logger.setLevel(level);
|
||||||
|
logger.setUseParentHandlers(false);
|
||||||
|
|
||||||
new ExamplesBuild().start(args);
|
new ExamplesBuild().start(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,7 +56,7 @@ public class ExamplesBuild extends Project {
|
||||||
public void pit() throws Exception {
|
public void pit() throws Exception {
|
||||||
new PitestOperation()
|
new PitestOperation()
|
||||||
.fromProject(this)
|
.fromProject(this)
|
||||||
.reportDir(Path.of("reports", "mutations").toString())
|
.reportDir(Path.of("reports", "mutations"))
|
||||||
.targetClasses(pkg + ".*")
|
.targetClasses(pkg + ".*")
|
||||||
.targetTests(pkg + ".*")
|
.targetTests(pkg + ".*")
|
||||||
.verbose(true)
|
.verbose(true)
|
||||||
|
|
Binary file not shown.
|
@ -1,8 +1,8 @@
|
||||||
bld.downloadExtensionJavadoc=false
|
bld.downloadExtensionJavadoc=false
|
||||||
bld.downloadExtensionSources=true
|
bld.downloadExtensionSources=true
|
||||||
bld.downloadLocation=
|
bld.downloadLocation=
|
||||||
bld.extension-exec=com.uwyn.rife2:bld-exec:1.0.2
|
bld.extension-exec=com.uwyn.rife2:bld-exec:1.0.5
|
||||||
bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.4
|
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.sourceDirectories=
|
bld.sourceDirectories=
|
||||||
bld.version=2.0.1
|
bld.version=2.2.1
|
||||||
|
|
|
@ -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.
|
||||||
|
@ -30,10 +30,15 @@ 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 PitestOperationBuild extends Project {
|
public class PitestOperationBuild extends Project {
|
||||||
|
final PmdOperation pmdOp = new PmdOperation()
|
||||||
|
.fromProject(this)
|
||||||
|
.failOnViolation(true)
|
||||||
|
.ruleSets("config/pmd.xml");
|
||||||
|
|
||||||
public PitestOperationBuild() {
|
public PitestOperationBuild() {
|
||||||
pkg = "rife.bld.extension";
|
pkg = "rife.bld.extension";
|
||||||
name = "PitestExtension";
|
name = "PitestExtension";
|
||||||
version = version(1, 0, 0, "SNAPSHOT");
|
version = version(1, 0, 11, "SNAPSHOT");
|
||||||
|
|
||||||
javaRelease = 17;
|
javaRelease = 17;
|
||||||
|
|
||||||
|
@ -42,16 +47,16 @@ public class PitestOperationBuild extends Project {
|
||||||
|
|
||||||
repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, RIFE2_RELEASES, RIFE2_SNAPSHOTS);
|
repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, RIFE2_RELEASES, RIFE2_SNAPSHOTS);
|
||||||
|
|
||||||
var pitest = version(1, 16, 1);
|
var pitest = version(1, 19, 1);
|
||||||
scope(compile)
|
scope(compile)
|
||||||
.include(dependency("com.uwyn.rife2", "bld", version(2, 0, 1)));
|
.include(dependency("com.uwyn.rife2", "bld", version(2, 2, 1)));
|
||||||
scope(test)
|
scope(test)
|
||||||
.include(dependency("org.pitest", "pitest", pitest))
|
.include(dependency("org.pitest", "pitest", pitest))
|
||||||
.include(dependency("org.pitest", "pitest-command-line", pitest))
|
.include(dependency("org.pitest", "pitest-command-line", pitest))
|
||||||
.include(dependency("org.pitest", "pitest-junit5-plugin", version(1, 2, 1)))
|
.include(dependency("org.pitest", "pitest-junit5-plugin", version(1, 2, 2)))
|
||||||
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 11, 0)))
|
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 12, 1)))
|
||||||
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 11, 0)))
|
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 12, 1)))
|
||||||
.include(dependency("org.assertj", "assertj-core", version(3, 26, 3)));
|
.include(dependency("org.assertj", "assertj-core", version(3, 27, 3)));
|
||||||
|
|
||||||
javadocOperation()
|
javadocOperation()
|
||||||
.javadocOptions()
|
.javadocOptions()
|
||||||
|
@ -62,28 +67,26 @@ public class PitestOperationBuild 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-pitest")
|
.artifactId("bld-pitest")
|
||||||
.description("PIT Mutation Testing Extension for bld")
|
.description("PIT Mutation Testing Extension for bld")
|
||||||
.url("https://github.com/rife2/bld-pitest")
|
.url("https://github.com/rife2/bld-pitest")
|
||||||
.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()
|
||||||
new PublishScm()
|
.connection("scm:git:https://github.com/rife2/bld-pitest.git")
|
||||||
.connection("scm:git:https://github.com/rife2/bld-pitest.git")
|
.developerConnection("scm:git:git@github.com:rife2/bld-pitest.git")
|
||||||
.developerConnection("scm:git:git@github.com:rife2/bld-pitest.git")
|
.url("https://github.com/rife2/bld-pitest")
|
||||||
.url("https://github.com/rife2/bld-pitest")
|
|
||||||
)
|
)
|
||||||
.signKey(property("sign.key"))
|
.signKey(property("sign.key"))
|
||||||
.signPassphrase(property("sign.passphrase"));
|
.signPassphrase(property("sign.passphrase"));
|
||||||
|
@ -95,19 +98,23 @@ public class PitestOperationBuild extends Project {
|
||||||
|
|
||||||
@BuildCommand(summary = "Runs PMD analysis")
|
@BuildCommand(summary = "Runs PMD analysis")
|
||||||
public void pmd() throws Exception {
|
public void pmd() throws Exception {
|
||||||
new PmdOperation()
|
pmdOp.execute();
|
||||||
.fromProject(this)
|
}
|
||||||
.failOnViolation(true)
|
|
||||||
.ruleSets("config/pmd.xml")
|
@BuildCommand(value = "pmd-cli", summary = "Runs PMD analysis (CLI)")
|
||||||
.execute();
|
public void pmdCli() throws Exception {
|
||||||
|
pmdOp.includeLineNumber(false).execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void test() throws Exception {
|
public void test() throws Exception {
|
||||||
new ExecOperation()
|
var os = System.getProperty("os.name");
|
||||||
.fromProject(this)
|
if (os != null && os.toLowerCase().contains("linux")) {
|
||||||
.command("scripts/cliargs.sh")
|
new ExecOperation()
|
||||||
.execute();
|
.fromProject(this)
|
||||||
|
.command("scripts/cliargs.sh")
|
||||||
|
.execute();
|
||||||
|
}
|
||||||
super.test();
|
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.
|
||||||
|
@ -106,8 +106,20 @@ public class PitestOperation extends AbstractProcessOperation<PitestOperation> {
|
||||||
* @see #avoidCallsTo(Collection)
|
* @see #avoidCallsTo(Collection)
|
||||||
*/
|
*/
|
||||||
public PitestOperation avoidCallsTo(String... avoidCallTo) {
|
public PitestOperation avoidCallsTo(String... avoidCallTo) {
|
||||||
options_.put("--avoidCallsTo", String.join(",", Arrays.stream(avoidCallTo).filter(this::isNotBlank).toList()));
|
return avoidCallsTo(List.of(avoidCallTo));
|
||||||
return this;
|
}
|
||||||
|
|
||||||
|
private String buildClassPath(String... path) {
|
||||||
|
var classpath = new StringBuilder();
|
||||||
|
for (var p : path) {
|
||||||
|
if (!p.isBlank()) {
|
||||||
|
if (!classpath.isEmpty()) {
|
||||||
|
classpath.append(File.pathSeparator);
|
||||||
|
}
|
||||||
|
classpath.append(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return classpath.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -284,6 +296,23 @@ public class PitestOperation extends AbstractProcessOperation<PitestOperation> {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether to run in dry run mode.
|
||||||
|
* <p>
|
||||||
|
* Defaults to {@code false}
|
||||||
|
*
|
||||||
|
* @param isDryRun {@code true} or {@code false}
|
||||||
|
* @return this operation instance
|
||||||
|
*/
|
||||||
|
public PitestOperation dryRun(boolean isDryRun) {
|
||||||
|
if (isDryRun) {
|
||||||
|
options_.put("--dryRun", TRUE);
|
||||||
|
} else {
|
||||||
|
options_.put("--dryRun", FALSE);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List of globs to match against class names. Matching classes will be excluded from mutation.
|
* List of globs to match against class names. Matching classes will be excluded from mutation.
|
||||||
*
|
*
|
||||||
|
@ -292,9 +321,7 @@ public class PitestOperation extends AbstractProcessOperation<PitestOperation> {
|
||||||
* @see #excludedClasses(Collection)
|
* @see #excludedClasses(Collection)
|
||||||
*/
|
*/
|
||||||
public PitestOperation excludedClasses(String... excludedClass) {
|
public PitestOperation excludedClasses(String... excludedClass) {
|
||||||
options_.put("--excludedClasses",
|
return excludedClasses(List.of(excludedClass));
|
||||||
String.join(",", Arrays.stream(excludedClass).filter(this::isNotBlank).toList()));
|
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -318,9 +345,7 @@ public class PitestOperation extends AbstractProcessOperation<PitestOperation> {
|
||||||
* @see #excludedGroups(Collection)
|
* @see #excludedGroups(Collection)
|
||||||
*/
|
*/
|
||||||
public PitestOperation excludedGroups(String... excludedGroup) {
|
public PitestOperation excludedGroups(String... excludedGroup) {
|
||||||
options_.put("--excludedGroups",
|
return excludedGroups(List.of(excludedGroup));
|
||||||
String.join(",", Arrays.stream(excludedGroup).filter(this::isNotBlank).toList()));
|
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -344,9 +369,7 @@ public class PitestOperation extends AbstractProcessOperation<PitestOperation> {
|
||||||
* @see #excludedMethods(Collection)
|
* @see #excludedMethods(Collection)
|
||||||
*/
|
*/
|
||||||
public PitestOperation excludedMethods(String... excludedMethod) {
|
public PitestOperation excludedMethods(String... excludedMethod) {
|
||||||
options_.put("--excludedMethods",
|
return excludedMethods(List.of(excludedMethod));
|
||||||
String.join(",", Arrays.stream(excludedMethod).filter(this::isNotBlank).toList()));
|
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -382,8 +405,7 @@ public class PitestOperation extends AbstractProcessOperation<PitestOperation> {
|
||||||
* @see #excludedTestClasses(Collection)
|
* @see #excludedTestClasses(Collection)
|
||||||
*/
|
*/
|
||||||
public PitestOperation excludedTestClasses(String... testClasses) {
|
public PitestOperation excludedTestClasses(String... testClasses) {
|
||||||
options_.put("--excludedTestClasses", String.join(",", testClasses));
|
return excludedTestClasses(List.of(testClasses));
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -423,9 +445,10 @@ public class PitestOperation extends AbstractProcessOperation<PitestOperation> {
|
||||||
if (project_ != null) {
|
if (project_ != null) {
|
||||||
args.add(javaTool());
|
args.add(javaTool());
|
||||||
args.add("-cp");
|
args.add("-cp");
|
||||||
args.add(String.format("%s:%s:%s:%s", new File(project_.libTestDirectory(), "*"),
|
args.add(buildClassPath(joinClasspathJar(project_.testClasspathJars()),
|
||||||
new File(project_.libCompileDirectory(), "*"), project_.buildMainDirectory(),
|
joinClasspathJar(project_.compileClasspathJars()),
|
||||||
project_.buildTestDirectory()));
|
joinClasspathJar(project_.providedClasspathJars()),
|
||||||
|
project_.buildMainDirectory().getAbsolutePath(), project_.buildTestDirectory().getAbsolutePath()));
|
||||||
args.add("org.pitest.mutationtest.commandline.MutationCoverageReport");
|
args.add("org.pitest.mutationtest.commandline.MutationCoverageReport");
|
||||||
|
|
||||||
if (!options_.containsKey(SOURCE_DIRS)) {
|
if (!options_.containsKey(SOURCE_DIRS)) {
|
||||||
|
@ -440,6 +463,10 @@ public class PitestOperation extends AbstractProcessOperation<PitestOperation> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (LOGGER.isLoggable(Level.FINE)) {
|
||||||
|
LOGGER.fine(String.join(" ", args));
|
||||||
|
}
|
||||||
|
|
||||||
return args;
|
return args;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -509,8 +536,7 @@ public class PitestOperation extends AbstractProcessOperation<PitestOperation> {
|
||||||
* @see #features(Collection)
|
* @see #features(Collection)
|
||||||
*/
|
*/
|
||||||
public PitestOperation features(String... feature) {
|
public PitestOperation features(String... feature) {
|
||||||
options_.put("--features", String.join(",", Arrays.stream(feature).filter(this::isNotBlank).toList()));
|
return features(List.of(feature));
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -625,9 +651,7 @@ public class PitestOperation extends AbstractProcessOperation<PitestOperation> {
|
||||||
* @see #includedGroups(Collection)
|
* @see #includedGroups(Collection)
|
||||||
*/
|
*/
|
||||||
public PitestOperation includedGroups(String... includedGroup) {
|
public PitestOperation includedGroups(String... includedGroup) {
|
||||||
options_.put("--includedGroups",
|
return includedGroups(List.of(includedGroup));
|
||||||
String.join(",", Arrays.stream(includedGroup).filter(this::isNotBlank).toList()));
|
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -676,6 +700,14 @@ public class PitestOperation extends AbstractProcessOperation<PitestOperation> {
|
||||||
return s != null && !s.isBlank();
|
return s != null && !s.isBlank();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String joinClasspathJar(List<File> jars) {
|
||||||
|
if (!jars.isEmpty()) {
|
||||||
|
return String.join(File.pathSeparator, jars.stream().map(File::getAbsolutePath).toList());
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Argument string to use when PIT launches child processes. This is most commonly used to increase the amount of
|
* Argument string to use when PIT launches child processes. This is most commonly used to increase the amount of
|
||||||
* memory available to the process, but may be used to pass any valid JVM argument.
|
* memory available to the process, but may be used to pass any valid JVM argument.
|
||||||
|
@ -685,8 +717,7 @@ public class PitestOperation extends AbstractProcessOperation<PitestOperation> {
|
||||||
* @see #jvmArgs(Collection)
|
* @see #jvmArgs(Collection)
|
||||||
*/
|
*/
|
||||||
public PitestOperation jvmArgs(String... args) {
|
public PitestOperation jvmArgs(String... args) {
|
||||||
options_.put("--jvmArgs", String.join(",", Arrays.stream(args).filter(this::isNotBlank).toList()));
|
return jvmArgs(List.of(args));
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1238,8 +1269,7 @@ public class PitestOperation extends AbstractProcessOperation<PitestOperation> {
|
||||||
* @see #targetClasses(String...)
|
* @see #targetClasses(String...)
|
||||||
*/
|
*/
|
||||||
public PitestOperation targetClasses(String... targetClass) {
|
public PitestOperation targetClasses(String... targetClass) {
|
||||||
options_.put("--targetClasses", String.join(",", Arrays.stream(targetClass).filter(this::isNotBlank).toList()));
|
return targetClasses(List.of(targetClass));
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1255,8 +1285,7 @@ public class PitestOperation extends AbstractProcessOperation<PitestOperation> {
|
||||||
* @see #targetTests(Collection)
|
* @see #targetTests(Collection)
|
||||||
*/
|
*/
|
||||||
public PitestOperation targetTests(String... test) {
|
public PitestOperation targetTests(String... test) {
|
||||||
options_.put("--targetTests", String.join(",", Arrays.stream(test).filter(this::isNotBlank).toList()));
|
return targetTests(List.of(test));
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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.BaseProject;
|
import rife.bld.BaseProject;
|
||||||
import rife.bld.Project;
|
import rife.bld.Project;
|
||||||
import rife.bld.WebProject;
|
import rife.bld.WebProject;
|
||||||
|
@ -37,9 +40,9 @@ import static rife.bld.extension.PitestOperation.TRUE;
|
||||||
@SuppressWarnings("PMD.AvoidDuplicateLiterals")
|
@SuppressWarnings("PMD.AvoidDuplicateLiterals")
|
||||||
class PitestOperationTest {
|
class PitestOperationTest {
|
||||||
private static final String AS_LIST = "as list";
|
private static final String AS_LIST = "as list";
|
||||||
private final static String BAR = "bar";
|
private static final String BAR = "bar";
|
||||||
private final static String FOO = "foo";
|
private static final String FOO = "foo";
|
||||||
private final static String FOOBAR = FOO + ',' + BAR;
|
private static final String FOOBAR = FOO + ',' + BAR;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void argLine() {
|
void argLine() {
|
||||||
|
@ -63,6 +66,7 @@ class PitestOperationTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@EnabledOnOs(OS.LINUX)
|
||||||
void checkAllParameters() throws IOException {
|
void checkAllParameters() throws IOException {
|
||||||
var args = Files.readAllLines(Paths.get("src", "test", "resources", "pitest-args.txt"));
|
var args = Files.readAllLines(Paths.get("src", "test", "resources", "pitest-args.txt"));
|
||||||
|
|
||||||
|
@ -76,6 +80,7 @@ class PitestOperationTest {
|
||||||
.classPathFile(FOO)
|
.classPathFile(FOO)
|
||||||
.coverageThreshold(0)
|
.coverageThreshold(0)
|
||||||
.detectInlinedCode(false)
|
.detectInlinedCode(false)
|
||||||
|
.dryRun(false)
|
||||||
.excludedClasses("class")
|
.excludedClasses("class")
|
||||||
.excludedClasses(List.of(FOO, BAR))
|
.excludedClasses(List.of(FOO, BAR))
|
||||||
.excludedGroups("group")
|
.excludedGroups("group")
|
||||||
|
@ -121,15 +126,17 @@ class PitestOperationTest {
|
||||||
.verbosity("default")
|
.verbosity("default")
|
||||||
.executeConstructProcessCommandList();
|
.executeConstructProcessCommandList();
|
||||||
|
|
||||||
for (var p : args) {
|
try (var softly = new AutoCloseableSoftAssertions()) {
|
||||||
var found = false;
|
for (var p : args) {
|
||||||
for (var a : params) {
|
var found = false;
|
||||||
if (a.startsWith(p)) {
|
for (var a : params) {
|
||||||
found = true;
|
if (a.startsWith(p)) {
|
||||||
break;
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
softly.assertThat(found).as(p + " not found.").isTrue();
|
||||||
}
|
}
|
||||||
assertThat(found).as(p + " not found.").isTrue();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
--classPathFile
|
--classPathFile
|
||||||
--coverageThreshold
|
--coverageThreshold
|
||||||
--detectInlinedCode
|
--detectInlinedCode
|
||||||
|
--dryRun
|
||||||
--excludedClasses
|
--excludedClasses
|
||||||
--excludedGroups
|
--excludedGroups
|
||||||
--excludedMethods
|
--excludedMethods
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue