commit 9b46f7c35b8056df861db5a1eb2fe4dc058a8976 Author: Johnny Hughes Date: Wed Jan 15 12:52:18 2025 -0600 Import from Fedora diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..74f0b9f --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +/results_* +/*.src.rpm + +/v1.1-alpha.tar.gz +/jctools-1.2.1.tar.gz +/jctools-2.0.2.tar.gz +/jctools-2.1.2.tar.gz +/JCTools-3.1.0.tar.gz +/JCTools-3.2.0.tar.gz +/JCTools-3.3.0.tar.gz +/JCTools-4.0.1.tar.gz +/JCTools-4.0.2.tar.gz diff --git a/ci.fmf b/ci.fmf new file mode 100644 index 0000000..c5aa0e0 --- /dev/null +++ b/ci.fmf @@ -0,0 +1 @@ +resultsdb-testcase: separate diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..7f72400 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,8 @@ +--- !Policy +product_versions: + - rhel-9 +decision_contexts: + - osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/smoke.functional} + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/javapackages.functional} diff --git a/jctools.spec b/jctools.spec new file mode 100644 index 0000000..7bc3e25 --- /dev/null +++ b/jctools.spec @@ -0,0 +1,222 @@ +%bcond_with bootstrap +%global srcname JCTools + +Name: jctools +Version: 4.0.2 +Release: 12%{?dist} +Summary: Java Concurrency Tools for the JVM +License: Apache-2.0 +URL: https://github.com/JCTools/JCTools +BuildArch: noarch +ExclusiveArch: %{java_arches} noarch + +Source0: %{url}/archive/v%{version}/%{srcname}-%{version}.tar.gz + +%if %{with bootstrap} +BuildRequires: javapackages-bootstrap +%else +BuildRequires: maven-local +BuildRequires: mvn(com.google.guava:guava-testlib) +BuildRequires: mvn(junit:junit) +BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) +BuildRequires: mvn(org.hamcrest:hamcrest-all) +%endif + +%description +This project aims to offer some concurrent data structures +currently missing from the JDK: + +° SPSC/MPSC/SPMC/MPMC Bounded lock free queues +° SPSC/MPSC Unbounded lock free queues +° Alternative interfaces for queues +° Offheap concurrent ring buffer for ITC/IPC purposes +° Single Writer Map/Set implementations +° Low contention stats counters +° Executor + +%package javadoc +Summary: API documentation for %{name} + +%description javadoc +API documentation for %{name}. + +%prep +%autosetup -p1 -n %{srcname}-%{version} + +# drop some failure-prone tests (race conditions?) +rm jctools-core/src/test/java/org/jctools/queues/MpqSanityTestMpscCompound.java + +# set correct version in all pom.xml files +%pom_xpath_set pom:project/pom:version %{version} +%pom_xpath_set pom:parent/pom:version %{version} jctools-{build,core,channels,experimental} + +# remove plugins unnecessary for RPM builds +%pom_remove_plugin :coveralls-maven-plugin jctools-core +%pom_remove_plugin :jacoco-maven-plugin jctools-core +%pom_remove_plugin :maven-enforcer-plugin +%pom_remove_plugin :maven-source-plugin jctools-core +%pom_remove_plugin :maven-javadoc-plugin jctools-core + +# remove tests with additional kotlin dependencies +rm -r jctools-core/src/test/java/org/jctools/maps/linearizability_test/ + +# disable unused modules with unavailable dependencies +%pom_disable_module jctools-benchmarks +%pom_disable_module jctools-concurrency-test + +# incompatible with Java 11 and unused in fedora: +# https://github.com/JCTools/JCTools/issues/254 +%pom_disable_module jctools-channels +%pom_disable_module jctools-experimental + +%pom_disable_module jctools-build +%pom_remove_plugin :exec-maven-plugin jctools-core + +# do not install internal build tools +%mvn_package :jctools-build __noinstall + +# do not install unused parent POM +%mvn_package :jctools-parent __noinstall + +%build +# Tests time out in Koji +%mvn_build -s -f + +%install +%mvn_install + +%files -f .mfiles-jctools-core +%doc README.md +%license LICENSE + +%files javadoc -f .mfiles-javadoc +%license LICENSE + +%changelog +* Fri Nov 29 2024 Mikolaj Izdebski - 4.0.2-9 +- Update javapackages test plan to f42 + +* Thu Jul 18 2024 Fedora Release Engineering - 4.0.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Feb 27 2024 Jiri Vanek - 4.0.2-3 +- Rebuilt for java-21-openjdk as system jdk + +* Fri Feb 23 2024 Jiri Vanek - 4.0.2-2 +- bump of release for for java-21-openjdk as system jdk + +* Thu Feb 01 2024 Mikolaj Izdebski - 4.0.2-1 +- Update to upstream version 4.0.2 + +* Wed Jan 24 2024 Fedora Release Engineering - 4.0.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jan 20 2024 Fedora Release Engineering - 4.0.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Sep 01 2023 Mikolaj Izdebski - 4.0.1-4 +- Convert License tag to SPDX format + +* Tue Aug 15 2023 Mikolaj Izdebski - 4.0.1-3 +- Build with default JDK 17 + +* Thu Jul 20 2023 Fedora Release Engineering - 4.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Jul 14 2023 Paul Wouters - 3.3.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Fedora Release Engineering - 3.3.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Apr 27 2022 Mikolaj Izdebski - 3.3.0-4 +- Build with OpenJDK 8 +- Disable jctools-build module + +* Sat Feb 05 2022 Jiri Vanek - 3.3.0-3 +- Rebuilt for java-17-openjdk as system jdk + +* Thu Jan 20 2022 Fedora Release Engineering - 3.3.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Aug 10 2021 Sérgio Basto - 3.3.0-1 +- Update to 3.3.0 + +* Thu Jul 22 2021 Fedora Release Engineering - 3.2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Feb 02 2021 Fabio Valentini - 3.2.0-1 +- Update to version 3.2.0. + +* Tue Jan 26 2021 Fedora Release Engineering - 3.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Sep 04 2020 Mat Booth - 3.1.0-1 +- Update to latest upstream version +- Obsolete sub-packages that cannot be built on JDK 11 + +* Tue Jul 28 2020 Mat Booth - 2.1.2-10 +- Patch for javaparser API changes + +* Tue Jul 28 2020 Fedora Release Engineering - 2.1.2-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jul 10 2020 Jiri Vanek - 2.1.2-8 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Fri Jun 26 2020 Roland Grunberg - 2.1.2-7 +- Force Java 8 as we cannot build with Java 11 due to upstream bug. + +* Wed Jan 29 2020 Fedora Release Engineering - 2.1.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Dec 19 2019 Mat Booth - 2.1.2-5 +- Skip problematic NonBlockingHashMapTest + +* Mon Sep 09 2019 Fabio Valentini - 2.1.2-4 +- Disable another failure-prone unreliable test. + +* Mon Sep 09 2019 Fabio Valentini - 2.1.2-3 +- Disable failure-prone unreliable test. + +* Thu Jul 25 2019 Fedora Release Engineering - 2.1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Feb 13 2019 Mat Booth - 2.1.2-1 +- Update to latest upstream release + +* Fri Feb 01 2019 Fedora Release Engineering - 2.0.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 2.0.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 07 2018 Fedora Release Engineering - 2.0.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sun Sep 17 2017 Mat Booth - 2.0.2-2 +- Drop unneeded dep on guava-testlib + +* Mon Aug 14 2017 Tomas Repik - 2.0.2-1 +- Update to 2.0.2 + +* Wed Jul 26 2017 Fedora Release Engineering - 1.2.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 1.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Sep 28 2016 gil cattaneo 1.2.1-1 +- update to 1.2.1 + +* Thu Feb 04 2016 Fedora Release Engineering - 1.1-0.3.alpha +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 1.1-0.2.alpha +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue May 19 2015 gil cattaneo 1.1-0.1.alpha +- initial rpm diff --git a/plans/javapackages.fmf b/plans/javapackages.fmf new file mode 100644 index 0000000..8ba3510 --- /dev/null +++ b/plans/javapackages.fmf @@ -0,0 +1,7 @@ +summary: Run javapackages-specific tests +discover: + how: fmf + url: https://src.fedoraproject.org/tests/javapackages + ref: c9s +execute: + how: tmt diff --git a/plans/smoke.fmf b/plans/smoke.fmf new file mode 100644 index 0000000..a1e7bfd --- /dev/null +++ b/plans/smoke.fmf @@ -0,0 +1,5 @@ +summary: Basic smoke test +discover: + how: fmf +execute: + how: tmt diff --git a/sources b/sources new file mode 100644 index 0000000..255b1ad --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (JCTools-4.0.2.tar.gz) = d19237929ab18360427efdf2844adc08589fc8ba2838b1f983118e1d6f1270bacad34477cb000e6bc85aeab38e7e337c397181b4351681f18977547c5b2e8f37 diff --git a/tests/Sanity/smoke/Smoke.java b/tests/Sanity/smoke/Smoke.java new file mode 100644 index 0000000..070ad9f --- /dev/null +++ b/tests/Sanity/smoke/Smoke.java @@ -0,0 +1,23 @@ +import java.util.Queue; + +import org.jctools.queues.MpscChunkedArrayQueue; + +public class Smoke { + + public static void main(String[] args) { + System.out.println("SMOKE TEST START"); + + Queue q = new MpscChunkedArrayQueue<>(1024, 8*1024); + // fill up the queue + int i = 0; + while(q.offer(i)) i++; + System.out.println("Added "+ i); + // empty it + i = 0; + while(q.poll() != null) i++; + System.out.println("Removed "+ i); + + System.out.println("SMOKE TEST COMPLETE"); + } + +} diff --git a/tests/Sanity/smoke/main.fmf b/tests/Sanity/smoke/main.fmf new file mode 100644 index 0000000..b130431 --- /dev/null +++ b/tests/Sanity/smoke/main.fmf @@ -0,0 +1,6 @@ +summary: jctools smoke test +description: | + Test basic functionality of jctools. +require: + - jctools + - java-21-openjdk-devel diff --git a/tests/Sanity/smoke/runtest.sh b/tests/Sanity/smoke/runtest.sh new file mode 100755 index 0000000..d645762 --- /dev/null +++ b/tests/Sanity/smoke/runtest.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# Author: Mikolaj Izdebski +. /usr/share/beakerlib/beakerlib.sh + +rlJournalStart + + rlPhaseStartTest "test concurrent queue" + rlAssertRpm jctools + java_home=/usr/lib/jvm/java-21-openjdk/bin + jar=/usr/share/java/jctools/jctools-core.jar + rlRun "${java_home}/javac -cp ${jar} -d bin Smoke.java" + rlRun -s "${java_home}/java -cp ${jar}:bin Smoke" + rlAssertGrep "Removed 8192" $rlRun_LOG + rlAssertGrep "SMOKE TEST COMPLETE" $rlRun_LOG + rlPhaseEnd + +rlJournalEnd +rlJournalPrintText diff --git a/tests/main.fmf b/tests/main.fmf new file mode 100644 index 0000000..99fd67e --- /dev/null +++ b/tests/main.fmf @@ -0,0 +1,4 @@ +contact: Mikolaj Izdebski +framework: beakerlib +test: ./runtest.sh +tier: 0