summaryrefslogtreecommitdiff
path: root/dev-java/junit-quickcheck/junit-quickcheck-1.0.ebuild
blob: 8f3c985c491861b147161d8fc884b46e9bcd1dbe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

JAVA_PKG_IUSE="doc source test"
JAVA_TESTING_FRAMEWORKS="junit-4"

inherit java-pkg-2 java-pkg-simple

MCV="1.10.19"
DESCRIPTION="Property-based testing, JUnit-style"
HOMEPAGE="https://github.com/pholser/junit-quickcheck"
SRC_URI="https://github.com/pholser/junit-quickcheck/archive/${P}.tar.gz
	test? ( https://repo1.maven.org/maven2/org/mockito/mockito-core/${MCV}/mockito-core-${MCV}.jar )"
S="${WORKDIR}/junit-quickcheck-${P}"

LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 ~arm64 ppc64"

CP_DEPEND="
	dev-java/generics-resolver:0
	dev-java/javaruntype:0
	dev-java/junit:4
	dev-java/ognl:0
	dev-java/slf4j-api:0
"

DEPEND="
	${CP_DEPEND}
	>=virtual/jdk-1.8:*
	test? (
		dev-java/antlr-runtime:3.5
		>=dev-java/guava-testlib-33.4.8:0
		>=dev-java/hamcrest-3.0:0
		>=dev-java/javassist-3.30.2:3
		>=dev-java/objenesis-3.4:0
	)
"

RDEPEND="
	${CP_DEPEND}
	>=virtual/jre-1.8:*
"

JAVADOC_SRC_DIRS=( {core,generators}/src/main/java )

src_prepare() {
	java-pkg-2_src_prepare
	local services="generators/src/main/resources/META-INF/services"
	mkdir -p "${services}"
	cat > "${services}/com.pholser.junit.quickcheck.generator.Generator" <<-EOF || die "here doc"
		com.pholser.junit.quickcheck.generator.java.util.ArrayListGenerator
		com.pholser.junit.quickcheck.generator.java.util.HashSetGenerator
		com.pholser.junit.quickcheck.generator.java.util.LocaleGenerator
		com.pholser.junit.quickcheck.generator.java.util.LinkedListGenerator
		com.pholser.junit.quickcheck.generator.java.util.StackGenerator
		com.pholser.junit.quickcheck.generator.java.util.OptionalDoubleGenerator
		com.pholser.junit.quickcheck.generator.java.util.DateGenerator
		com.pholser.junit.quickcheck.generator.java.util.LinkedHashMapGenerator
		com.pholser.junit.quickcheck.generator.java.util.OptionalLongGenerator
		com.pholser.junit.quickcheck.generator.java.util.TimeZoneGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.FunctionGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.UnaryOperatorGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.ToIntBiFunctionGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.PredicateGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.BinaryOperatorGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.BiPredicateGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.ToIntFunctionGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.ToDoubleFunctionGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.ToLongBiFunctionGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.BiFunctionGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.IntFunctionGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.ToLongFunctionGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.DoubleFunctionGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.SupplierGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.LongFunctionGenerator
		com.pholser.junit.quickcheck.generator.java.util.function.ToDoubleBiFunctionGenerator
		com.pholser.junit.quickcheck.generator.java.util.BitSetGenerator
		com.pholser.junit.quickcheck.generator.java.util.OptionalIntGenerator
		com.pholser.junit.quickcheck.generator.java.util.HashMapGenerator
		com.pholser.junit.quickcheck.generator.java.util.VectorGenerator
		com.pholser.junit.quickcheck.generator.java.util.PropertiesGenerator
		com.pholser.junit.quickcheck.generator.java.util.OptionalGenerator
		com.pholser.junit.quickcheck.generator.java.util.concurrent.CallableGenerator
		com.pholser.junit.quickcheck.generator.java.util.RFC4122\$Version4
		com.pholser.junit.quickcheck.generator.java.util.HashtableGenerator
		com.pholser.junit.quickcheck.generator.java.util.LinkedHashSetGenerator
		com.pholser.junit.quickcheck.generator.java.util.RFC4122\$Version3
		com.pholser.junit.quickcheck.generator.java.util.RFC4122\$Version5
		com.pholser.junit.quickcheck.generator.java.math.BigDecimalGenerator
		com.pholser.junit.quickcheck.generator.java.math.BigIntegerGenerator
		com.pholser.junit.quickcheck.generator.java.time.ZonedDateTimeGenerator
		com.pholser.junit.quickcheck.generator.java.time.LocalDateGenerator
		com.pholser.junit.quickcheck.generator.java.time.OffsetTimeGenerator
		com.pholser.junit.quickcheck.generator.java.time.ZoneIdGenerator
		com.pholser.junit.quickcheck.generator.java.time.PeriodGenerator
		com.pholser.junit.quickcheck.generator.java.time.YearMonthGenerator
		com.pholser.junit.quickcheck.generator.java.time.InstantGenerator
		com.pholser.junit.quickcheck.generator.java.time.LocalDateTimeGenerator
		com.pholser.junit.quickcheck.generator.java.time.OffsetDateTimeGenerator
		com.pholser.junit.quickcheck.generator.java.time.DurationGenerator
		com.pholser.junit.quickcheck.generator.java.time.YearGenerator
		com.pholser.junit.quickcheck.generator.java.time.ClockGenerator
		com.pholser.junit.quickcheck.generator.java.time.ZoneOffsetGenerator
		com.pholser.junit.quickcheck.generator.java.time.LocalTimeGenerator
		com.pholser.junit.quickcheck.generator.java.time.MonthDayGenerator
		com.pholser.junit.quickcheck.generator.java.lang.ShortGenerator
		com.pholser.junit.quickcheck.generator.java.lang.CharacterGenerator
		com.pholser.junit.quickcheck.generator.java.lang.DoubleGenerator
		com.pholser.junit.quickcheck.generator.java.lang.IntegerGenerator
		com.pholser.junit.quickcheck.generator.java.lang.StringGenerator
		com.pholser.junit.quickcheck.generator.java.lang.LongGenerator
		com.pholser.junit.quickcheck.generator.java.lang.FloatGenerator
		com.pholser.junit.quickcheck.generator.java.lang.ByteGenerator
		com.pholser.junit.quickcheck.generator.java.lang.Encoded
		com.pholser.junit.quickcheck.generator.java.lang.BooleanGenerator
		com.pholser.junit.quickcheck.generator.java.nio.charset.CharsetGenerator
		com.pholser.junit.quickcheck.generator.VoidGenerator
	EOF
}

src_compile() {
	einfo "Compiling core"
	JAVA_JAR_FILENAME="core.jar"
	JAVA_RESOURCE_DIRS="core/src/main/resources"
	JAVA_SRC_DIR="core/src/main/java"
	java-pkg-simple_src_compile
	JAVA_GENTOO_CLASSPATH_EXTRA=":core.jar"
	rm -r target || die "clean core"

	einfo "Compiling generators"
	JAVA_JAR_FILENAME="generators.jar"
	JAVA_RESOURCE_DIRS="generators/src/main/resources"
	JAVA_SRC_DIR="generators/src/main/java"
	java-pkg-simple_src_compile
	JAVA_GENTOO_CLASSPATH_EXTRA+=":generators.jar"
	rm -r target || die "clean generators"

	JAVADOC_CLASSPATH="${JAVA_GENTOO_CLASSPATH}"
	use doc && ejavadoc
}

src_test() {
	# mockito-core-1.10.19 is presently not packaged
	JAVA_GENTOO_CLASSPATH_EXTRA+=":${DISTDIR}/mockito-core-${MCV}.jar"

	local vm_version="$(java-config -g PROVIDES_VERSION)"
	if ver_test "${vm_version}" -ge 17; then
		JAVA_TEST_EXTRA_ARGS+=( --add-opens=java.base/java.lang=ALL-UNNAMED )
	fi

	einfo "Testing core"
	JAVA_TEST_EXCLUDES=(
		# upstream doesn't run these tests
		com.pholser.junit.quickcheck.EqualsHashCodePropertiesTest # 9 of 9 tests fail
		com.pholser.junit.quickcheck.internal.generator.CorePropertyParameterTest # 2 of 2 tests fail
		com.pholser.junit.quickcheck.test.generator.TestGeneratorSource # Invalid test class, no runnable methods
	)
	JAVA_TEST_GENTOO_CLASSPATH="antlr-runtime-3.5 guava-testlib hamcrest javassist-3 junit-4 objenesis ognl"
	JAVA_TEST_RESOURCE_DIRS="core/src/test/resources"
	JAVA_TEST_SRC_DIR="core/src/test/java"
	java-pkg-simple_src_test

	einfo "Creating core-tests.jar"
	jar cvf core-tests.jar -C target/test-classes . || die
	JAVA_GENTOO_CLASSPATH_EXTRA+=":core-tests.jar"
	JAVA_TEST_RUN_ONLY=()

	einfo "Testing generators"
	JAVA_TEST_EXCLUDES=(
		# 2 of 2 tests fail, upstream doesn't run it
		com.pholser.junit.quickcheck.generator.BasicGeneratorPropertyParameterTest
	)
	JAVA_TEST_RESOURCE_DIRS=()
	JAVA_TEST_SRC_DIR="generators/src/test/java"
	java-pkg-simple_src_test
}

src_install() {
	java-pkg_dojar generators.jar
	JAVA_JAR_FILENAME="core.jar"
	java-pkg-simple_src_install
}