From ddaca29a8944267648e23a3576930b6011c12341 Mon Sep 17 00:00:00 2001 From: Johnny Hughes Date: Wed, 15 Jan 2025 13:02:19 -0600 Subject: [PATCH] Import from Fedora --- .fmf/version | 1 + .gitignore | 11 ++ ci.fmf | 1 + disruptor-3.3.2-jmock.patch | 21 ++++ disruptor.spec | 192 ++++++++++++++++++++++++++++++++++ gating.yaml | 8 ++ plans/javapackages.fmf | 7 ++ plans/smoke.fmf | 5 + sources | 2 + tests/Sanity/smoke/Smoke.java | 51 +++++++++ tests/Sanity/smoke/main.fmf | 6 ++ tests/Sanity/smoke/runtest.sh | 18 ++++ tests/main.fmf | 4 + 13 files changed, 327 insertions(+) create mode 100644 .fmf/version create mode 100644 .gitignore create mode 100644 ci.fmf create mode 100644 disruptor-3.3.2-jmock.patch create mode 100644 disruptor.spec create mode 100644 gating.yaml create mode 100644 plans/javapackages.fmf create mode 100644 plans/smoke.fmf create mode 100644 sources create mode 100644 tests/Sanity/smoke/Smoke.java create mode 100644 tests/Sanity/smoke/main.fmf create mode 100755 tests/Sanity/smoke/runtest.sh create mode 100644 tests/main.fmf 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..cc6365c --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +/3.2.1.tar.gz +/3.3.2.tar.gz +/disruptor-3.3.2.pom +/disruptor-3.3.4.pom +/3.3.4.tar.gz +/disruptor-3.3.6.tar.gz +/disruptor-3.3.6.pom +/disruptor-3.4.2.pom +/disruptor-3.4.2.tar.gz +/disruptor-3.4.4.tar.gz +/disruptor-3.4.4.pom 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/disruptor-3.3.2-jmock.patch b/disruptor-3.3.2-jmock.patch new file mode 100644 index 0000000..2f4797e --- /dev/null +++ b/disruptor-3.3.2-jmock.patch @@ -0,0 +1,21 @@ +--- disruptor-3.3.2/src/test/java/com/lmax/disruptor/BatchEventProcessorTest.java 2015-02-25 10:09:57.000000000 +0100 ++++ disruptor-3.3.2/src/test/java/com/lmax/disruptor/BatchEventProcessorTest.java.jmock 2015-06-03 15:52:43.997446568 +0200 +@@ -23,6 +23,7 @@ + import org.jmock.api.Action; + import org.jmock.api.Invocation; + import org.jmock.integration.junit4.JMock; ++import org.jmock.lib.concurrent.Synchroniser; + import org.junit.Test; + import org.junit.runner.RunWith; + +@@ -35,7 +36,9 @@ + @RunWith(JMock.class) + public final class BatchEventProcessorTest + { +- private final Mockery context = new Mockery(); ++ private final Mockery context = new Mockery() {{ ++ setThreadingPolicy(new Synchroniser()); ++ }}; + private final Sequence lifecycleSequence = context.sequence("lifecycleSequence"); + private final CountDownLatch latch = new CountDownLatch(1); + diff --git a/disruptor.spec b/disruptor.spec new file mode 100644 index 0000000..a14dd6f --- /dev/null +++ b/disruptor.spec @@ -0,0 +1,192 @@ +%bcond_with bootstrap + +Name: disruptor +Version: 3.4.4 +Release: 26%{?dist} +Summary: Concurrent Programming Framework +License: Apache-2.0 +URL: https://lmax-exchange.github.io/disruptor/ +BuildArch: noarch +ExclusiveArch: %{java_arches} noarch + +Source0: https://github.com/LMAX-Exchange/disruptor/archive/%{version}/%{name}-%{version}.tar.gz +Source1: https://repo1.maven.org/maven2/com/lmax/%{name}/%{version}/%{name}-%{version}.pom + +%if %{with bootstrap} +BuildRequires: javapackages-bootstrap +%else +BuildRequires: maven-local +BuildRequires: mvn(junit:junit) +BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) +%endif + +%description +A High Performance Inter-Thread Messaging Library. + +%package javadoc +Summary: API documentation for %{name} + +%description javadoc +API documentation for %{name}. + +%prep +%autosetup -p1 +# Cleanup +find . -name "*.class" -print -delete +find . -name "*.jar" -type f -print -delete + +cp -p %{SOURCE1} pom.xml + +# Add OSGi support +%pom_xpath_inject "pom:project" "bundle" +%pom_add_plugin org.apache.felix:maven-bundle-plugin:2.3.7 . ' +true + + + %{url} + ${project.name} + LMAX Disruptor Development Team + + + + + bundle-manifest + process-classes + + manifest + + +' + +# fail to compile cause: incompatible hamcrest apis +rm -r src/test/java/com/lmax/disruptor/RingBufferTest.java \ + src/test/java/com/lmax/disruptor/RingBufferEventMatcher.java +# Failed to stop thread: Thread[com.lmax.disruptor.BatchEventProcessor@1d057a39,5,main] +rm -r src/test/java/com/lmax/disruptor/dsl/DisruptorTest.java +# Test fails due to incompatible jmock version +#rm -f src/test/java/com/lmax/disruptor/EventPollerTest.java + +%mvn_file :%{name} %{name} + +%build + +%mvn_build -- -Dproject.build.sourceEncoding=UTF-8 -Dmaven.compiler.source=1.8 -Dmaven.compiler.target=1.8 + +%install +%mvn_install + +%files -f .mfiles +%doc README.md +%license LICENCE.txt + +%files javadoc -f .mfiles-javadoc +%license LICENCE.txt + +%changelog +* Fri Nov 29 2024 Mikolaj Izdebski - 3.4.4-24 +- Update javapackages test plan to f42 + +* Wed Jul 17 2024 Fedora Release Engineering - 3.4.4-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Feb 27 2024 Jiri Vanek - 3.4.4-11 +- Rebuilt for java-21-openjdk as system jdk + +* Fri Feb 23 2024 Jiri Vanek - 3.4.4-10 +- bump of release for for java-21-openjdk as system jdk + +* Wed Jan 24 2024 Fedora Release Engineering - 3.4.4-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 3.4.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Sep 01 2023 Mikolaj Izdebski - 3.4.4-7 +- Convert License tag to SPDX format + +* Wed Jul 19 2023 Fedora Release Engineering - 3.4.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 3.4.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Fedora Release Engineering - 3.4.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Feb 05 2022 Jiri Vanek - 3.4.4-3 +- Rebuilt for java-17-openjdk as system jdk + +* Thu Jan 20 2022 Fedora Release Engineering - 3.4.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Dec 13 2021 Sérgio Basto - 3.4.4-1 +- Update disruptor to 3.4.4 (#1953941) + +* Wed Jul 21 2021 Fedora Release Engineering - 3.4.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jun 28 2021 Mikolaj Izdebski - 3.4.2-5 +- Remove unneeded buildrequires on jmock and hamcrest + +* Tue Jan 26 2021 Fedora Release Engineering - 3.4.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 3.4.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jul 10 2020 Jiri Vanek - 3.4.2-2 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Tue May 12 2020 Alexander Scheel - 3.4.2-1 +- Rebase to disruptor upstream release v3.4.2 + +* Tue Jan 28 2020 Fedora Release Engineering - 3.3.6-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jul 24 2019 Fedora Release Engineering - 3.3.6-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 3.3.6-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jul 12 2018 Fedora Release Engineering - 3.3.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 07 2018 Fedora Release Engineering - 3.3.6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 3.3.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 3.3.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Nov 11 2016 gil cattaneo 3.3.6-1 +- update to 3.3.6 + +* Thu Jun 23 2016 gil cattaneo 3.3.4-1 +- update to 3.3.4 + +* Wed Feb 03 2016 Fedora Release Engineering - 3.3.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 3.3.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Jun 03 2015 gil cattaneo 3.3.2-2 +- build fix for jmock 2.8.1 + +* Wed Jun 3 2015 Mikolaj Izdebski - 3.3.2-1 +- Update to upstream version 3.3.2 + +* Sun Feb 01 2015 gil cattaneo 3.2.1-3 +- introduce license macro + +* Sat Jun 07 2014 Fedora Release Engineering - 3.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Apr 21 2014 gil cattaneo 3.2.1-1 +- update to 3.2.1 + +* Wed Aug 14 2013 gil cattaneo 3.2.0-1 +- initial rpm 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/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..3f31734 --- /dev/null +++ b/sources @@ -0,0 +1,2 @@ +SHA512 (disruptor-3.4.4.tar.gz) = 871d474ecbc4e09d33b0d099232f2abdf88b755141e00406e4a721e5bd6c5edc99c6c446277e054bd603ae9b158bdb6b438aa6e8532194dca9bce953b748bfde +SHA512 (disruptor-3.4.4.pom) = 32c4ce4267c8dac44803949e68298fabfc399e1ff170a630b531aca2d87b8ec8fdb9a3f379005c512e94c9cfaa25f15bc421023d211c6c6d8ceb3eee1b61ce0d diff --git a/tests/Sanity/smoke/Smoke.java b/tests/Sanity/smoke/Smoke.java new file mode 100644 index 0000000..64fa8f7 --- /dev/null +++ b/tests/Sanity/smoke/Smoke.java @@ -0,0 +1,51 @@ +import com.lmax.disruptor.dsl.Disruptor; +import com.lmax.disruptor.EventFactory; +import com.lmax.disruptor.RingBuffer; +import com.lmax.disruptor.util.DaemonThreadFactory; +import java.nio.ByteBuffer; + +class LongEvent +{ + private long value; + + public void set(long value) + { + this.value = value; + } +} + +class LongEventFactory implements EventFactory +{ + public LongEvent newInstance() + { + return new LongEvent(); + } +} + +public class Smoke +{ + public static void main(String[] args) throws Exception + { + System.out.println("SMOKE TEST START"); + + int bufferSize = 1024; + + Disruptor disruptor = + new Disruptor<>(LongEvent::new, bufferSize, DaemonThreadFactory.INSTANCE); + + disruptor.handleEventsWith((event, sequence, endOfBatch) -> + System.out.println("Event: " + event)); + disruptor.start(); + + RingBuffer ringBuffer = disruptor.getRingBuffer(); + ByteBuffer bb = ByteBuffer.allocate(8); + for (long l = 0; l < 10; l++) + { + bb.putLong(0, l); + ringBuffer.publishEvent((event, sequence, buffer) -> event.set(buffer.getLong(0)), bb); + Thread.sleep(100); + } + + 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..a551c7f --- /dev/null +++ b/tests/Sanity/smoke/main.fmf @@ -0,0 +1,6 @@ +summary: disruptor smoke test +description: | + Test basic functionality of disruptor. +require: + - disruptor + - java-21-openjdk-devel diff --git a/tests/Sanity/smoke/runtest.sh b/tests/Sanity/smoke/runtest.sh new file mode 100755 index 0000000..8116d4e --- /dev/null +++ b/tests/Sanity/smoke/runtest.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# Author: Mikolaj Izdebski +. /usr/share/beakerlib/beakerlib.sh + +rlJournalStart + + rlPhaseStartTest "log events" + rlAssertRpm disruptor + java_home=/usr/lib/jvm/java-21-openjdk/bin + jar=/usr/share/java/disruptor.jar + rlRun "${java_home}/javac -cp ${jar} -d bin Smoke.java" + rlRun -s "${java_home}/java -cp ${jar}:bin Smoke" + rlAssertGrep "Event: LongEvent" $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