From f7da40e7403c2eeedbaa34ed72d98bec6337bacd Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Mon, 21 Feb 2022 07:27:45 +0100 Subject: [PATCH] Onboard disruptor into gating Related: rhbz#2054991 --- .fmf/version | 1 + gating.yaml | 7 +++++++ plans/Smoke.java | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ plans/smoke.fmf | 8 ++++++++ 4 files changed, 67 insertions(+) create mode 100644 .fmf/version create mode 100644 gating.yaml create mode 100644 plans/Smoke.java create mode 100644 plans/smoke.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/gating.yaml b/gating.yaml new file mode 100644 index 0000000..f1bb5dd --- /dev/null +++ b/gating.yaml @@ -0,0 +1,7 @@ +--- !Policy +product_versions: + - rhel-9 +decision_contexts: + - osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} diff --git a/plans/Smoke.java b/plans/Smoke.java new file mode 100644 index 0000000..64fa8f7 --- /dev/null +++ b/plans/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/plans/smoke.fmf b/plans/smoke.fmf new file mode 100644 index 0000000..92ede0f --- /dev/null +++ b/plans/smoke.fmf @@ -0,0 +1,8 @@ +summary: Basic smoke test +prepare: + how: install + package: java-devel +execute: + script: + - javac -cp /usr/share/java/disruptor.jar plans/Smoke.java + - java -cp /usr/share/java/disruptor.jar:plans Smoke