mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-11-03 16:47:21 -08:00
Signed-off-by: Volkmar W. Pogatzki <gentoo@pogatzki.net> Part-of: https://codeberg.org/gentoo/gentoo/pulls/192 Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
108 lines
3.9 KiB
Bash
108 lines
3.9 KiB
Bash
# Copyright 1999-2026 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=9
|
|
|
|
JAVA_PKG_IUSE="doc source test"
|
|
JAVA_TESTING_FRAMEWORKS="junit-vintage"
|
|
|
|
inherit java-pkg-2 java-pkg-simple junit5
|
|
|
|
DESCRIPTION="Mockito mock objects library core API and implementation"
|
|
HOMEPAGE="https://github.com/mockito/mockito"
|
|
SRC_URI="https://github.com/mockito/mockito/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
|
S="${WORKDIR}/${P}"
|
|
|
|
LICENSE="MIT"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64 ~arm64 ~ppc64"
|
|
|
|
DEPEND="
|
|
>=dev-java/apiguardian-api-1.1.2-r1:0
|
|
>=dev-java/asm-9.10.1:0
|
|
>=dev-java/byte-buddy-1.18.10:0
|
|
>=dev-java/hamcrest-3.0:0
|
|
>=dev-java/jna-5.18.1:0
|
|
>=dev-java/jspecify-1.0.0:0
|
|
>=dev-java/jsr305-3.0.2-r1:0
|
|
dev-java/junit:4
|
|
>=dev-java/objenesis-3.4:0
|
|
>=dev-java/opentest4j-1.3.0-r1:0
|
|
>=virtual/jdk-11:*
|
|
>=dev-java/assertj-core-3.27.7:0
|
|
"
|
|
|
|
# virtual/jre lower than 11 would cause a compilation error:
|
|
# src/main/java/org/mockito/internal/stubbing/defaultanswers/ReturnsDeepStubs.java:57:
|
|
# error: cannot find symbol
|
|
# final var emptyValue = ReturnsEmptyValues.returnCommonEmptyValueFor(rawType);
|
|
# ^
|
|
# symbol: class var
|
|
RDEPEND=">=virtual/jre-11:*"
|
|
|
|
PATCHES=( "${FILESDIR}"/mockito-5.24.0-skipFailingTests.patch )
|
|
|
|
JAVA_CLASSPATH_EXTRA="apiguardian-api asm byte-buddy hamcrest jna jspecify jsr305 objenesis opentest4j"
|
|
JAVA_TEST_SRC_DIR="mockito-core/src/test/java"
|
|
|
|
src_prepare() {
|
|
java-pkg-2_src_prepare
|
|
# prevent assertj-core and junit:{4,5} to pull hamcrest-core on classpath
|
|
JAVA_GENTOO_CLASSPATH_EXTRA=":$(java-pkg_getjars --build-only \
|
|
assertj-core,junit-4,junit-5)"
|
|
|
|
# dev-java/byte-buddy is built from byte-buddy-dep without shaded stuff.
|
|
sed \
|
|
-i -e 's:net.bytebuddy.jar.asm:org.objectweb.asm:' \
|
|
mockito-core/src/main/java/org/mockito/internal/creation/bytebuddy/MockMethodAdvice.java \
|
|
mockito-core/src/main/java/org/mockito/internal/creation/bytebuddy/InlineBytecodeGenerator.java \
|
|
mockito-core/src/main/java/org/mockito/internal/creation/bytebuddy/ClinitSuppressionTransformer.java \
|
|
mockito-core/src/test/java/org/mockito/internal/creation/bytebuddy/ClinitSuppressionTransformerTest.java
|
|
}
|
|
|
|
src_compile() {
|
|
JAVA_JAR_FILENAME="mockito-core.jar"
|
|
JAVA_SRC_DIR="mockito-core/src/main/java"
|
|
java-pkg-simple_src_compile
|
|
JAVA_GENTOO_CLASSPATH_EXTRA+=":mockito-core.jar"
|
|
# save MockMethodDispatcher.class for compiling test-classes
|
|
mkdir -p dispatcher/org/mockito/internal/creation/bytebuddy/inject || die
|
|
cp target/classes/org/mockito/internal/creation/bytebuddy/inject/MockMethodDispatcher.class \
|
|
dispatcher/org/mockito/internal/creation/bytebuddy/inject || die
|
|
# rename according to mockito-core/build.gradle.kts
|
|
mv target/classes/org/mockito/internal/creation/bytebuddy/inject/MockMethodDispatcher.class \
|
|
target/classes/org/mockito/internal/creation/bytebuddy/inject-MockMethodDispatcher.raw || die
|
|
# rm mockito-core.jar || die
|
|
jar cf mockito-core.jar -C target/classes . || die "refresh core.jar"
|
|
|
|
rm -r target/classes || die "clean classes"
|
|
JAVA_JAR_FILENAME="mockito-junit-jupiter.jar"
|
|
JAVA_SRC_DIR="mockito-extensions/mockito-junit-jupiter/src/main/java"
|
|
java-pkg-simple_src_compile
|
|
}
|
|
|
|
src_test() {
|
|
find mockito-core/src/testFixtures/java -type f -name '*.java' > testFixtures.lst || die
|
|
ejavac -d testFixtures @testFixtures.lst \
|
|
-cp mockito-core.jar:"$(java-pkg_getjars --with-dependencies \
|
|
--build-only assertj-core,junit-4,objenesis)"
|
|
|
|
JAVA_GENTOO_CLASSPATH_EXTRA+=":testFixtures:dispatcher"
|
|
|
|
# TODO: MockMethodDispatcher.class is needed on classpath
|
|
# for compiling InlineDelegateByteBuddyMockMakerTest.java
|
|
# but must not be there when running the tests.
|
|
|
|
JAVA_TEST_RUN_ONLY=( org.mockito.MockitoClearTest ) # fails if not run separately
|
|
junit5_src_test
|
|
JAVA_TEST_RUN_ONLY=()
|
|
JAVA_TEST_EXCLUDES=( org.mockito.MockitoClearTest )
|
|
junit5_src_test
|
|
}
|
|
|
|
src_install() {
|
|
JAVA_JAR_FILENAME="mockito-core.jar"
|
|
java-pkg-simple_src_install
|
|
java-pkg_dojar mockito-junit-jupiter.jar
|
|
}
|