Skip to content

feat: add drogalis SPSC-Queue as benchmark contender - #13

Merged
Milerius merged 3 commits into
mainfrom
feat/drogalis-spsc-contender
Mar 27, 2026
Merged

Milerius merged 3 commits into
mainfrom
feat/drogalis-spsc-contender

fix: add drogalis impl mapping in bench-report.sh

979c117
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
GitHub Actions / Rust Tests (ubuntu-latest) succeeded Mar 27, 2026 in 1s

265 passed, 0 failed and 0 skipped

Tests passed successfully

✅ target/nextest/ci/junit.xml

265 tests were completed in 4s with 265 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
mantis-bench 11✅ NaNms
mantis-core 1✅ NaNms
mantis-layout 2✅ NaNms
mantis-platform 182✅ NaNms
mantis-queue 37✅ NaNms
mantis-queue::spsc_basic 7✅ NaNms
mantis-queue::spsc_copy_basic 8✅ NaNms
mantis-queue::spsc_stress 1✅ NaNms
mantis-types 6✅ NaNms
mantis-verify 10✅ NaNms

✅ mantis-bench

✅ measurement::tests::measurement_creation
✅ measurement::tests::measurement_captures_samples
✅ measurement::tests::sample_collector_per_op
✅ workloads::tests::burst_copy_workload
✅ workloads::tests::batch_copy_workload
✅ report::tests::report_serializes_to_json
✅ workloads::tests::burst_workload
✅ workloads::tests::full_drain_workload
✅ workloads::tests::single_item_copy_workload
✅ workloads::tests::single_item_workload
✅ report::tests::detect_fills_arch_and_os

✅ mantis-core

✅ tests::counting_instr_tracks_push_pop

✅ mantis-layout

✅ tests::inspect_u64
✅ tests::inspect_large_type

✅ mantis-platform

✅ bithacks::tests::ceil_div_basics
✅ bithacks::tests::ceil_div_zero_panics
✅ bithacks::tests::log2_floor_basics
✅ bithacks::tests::log2_floor_usize_max
✅ bithacks::tests::log2_floor_zero_panics
✅ bithacks::tests::next_power_of_two_basics
✅ bithacks::tests::power_of_two_basics
✅ bithacks::tests::round_up_basics
✅ bithacks::tests::round_up_non_power_panics
✅ constant_time::ct_division::tests::div32_100_by_7
✅ bithacks::tests::trailing_zeros_basics
✅ constant_time::ct_division::tests::div32_exact
✅ constant_time::ct_division::tests::div32_large_cross_check
✅ constant_time::ct_division::tests::div32_zero_numerator
✅ constant_time::ct_division::tests::div32_normalized_directly
✅ constant_time::ct_division::tests::div_100_by_7
✅ constant_time::ct_division::tests::div_exact
✅ constant_time::ct_division::tests::div_n_hi_zero
✅ constant_time::ct_division::tests::div_large_cross_check
✅ constant_time::ct_division::tests::div_numerator_equals_denominator
✅ constant_time::ct_division::tests::div_normalized_directly
✅ constant_time::ct_division::tests::div_numerator_less_than_denominator
✅ constant_time::ct_division::tests::div_zero_numerator
✅ constant_time::ct_routines::tests::add_wrapping
✅ constant_time::ct_routines::tests::assign_arith
✅ constant_time::ct_routines::tests::assign_ops
✅ constant_time::ct_routines::tests::bitwise_and
✅ constant_time::ct_routines::tests::bitwise_or
✅ constant_time::ct_routines::tests::bitwise_xor
✅ constant_time::ct_routines::tests::bitwise_not
✅ constant_time::ct_routines::tests::cneg_exhaustive_u8
✅ constant_time::ct_routines::tests::cneg_true_negates
✅ constant_time::ct_routines::tests::ct_eq_equal
✅ constant_time::ct_routines::tests::cneg_false_identity
✅ constant_time::ct_routines::tests::ct_eq_unequal
✅ constant_time::ct_routines::tests::ct_le_basic
✅ constant_time::ct_routines::tests::ct_eq_exhaustive_u8
✅ constant_time::ct_routines::tests::ct_lt_basic
✅ constant_time::ct_routines::tests::ct_ne
✅ constant_time::ct_routines::tests::ctbool_and
✅ constant_time::ct_routines::tests::ctbool_not
✅ constant_time::ct_routines::tests::ct_lt_exhaustive_u8
✅ constant_time::ct_routines::tests::ctbool_or
✅ constant_time::ct_routines::tests::ctbool_xor
✅ constant_time::ct_routines::tests::is_msb_set_u64
✅ constant_time::ct_routines::tests::is_msb_set_u8
✅ constant_time::ct_routines::tests::is_non_zero
✅ constant_time::ct_routines::tests::is_zero
✅ constant_time::ct_routines::tests::neg_twos_complement
✅ constant_time::ct_routines::tests::mul_wrapping
✅ constant_time::ct_routines::tests::shift_left
✅ constant_time::ct_routines::tests::shift_right
✅ constant_time::ct_routines::tests::shift_wrapping_does_not_panic
✅ constant_time::ct_routines::tests::u16_comparisons
✅ constant_time::ct_routines::tests::sub_wrapping
✅ constant_time::ct_routines::tests::u32_comparisons
✅ constant_time::ct_routines::tests::u8_comparisons
✅ constant_time::ct_routines::tests::usize_ops
✅ constant_time::ct_types::tests::carry_borrow_are_ct_u8
✅ constant_time::ct_types::tests::ct_construction
✅ constant_time::ct_types::tests::ct_debug_does_not_leak
✅ constant_time::ct_types::tests::ctbool_ctrue_cfalse
✅ constant_time::ct_types::tests::ctbool_from_bool
✅ constant_time::multiplexers::tests::ccopy32_boundary_max
✅ constant_time::multiplexers::tests::ccopy32_true_overwrites
✅ constant_time::ct_types::tests::vartime_is_zst
✅ constant_time::multiplexers::tests::ccopy32_false_preserves
✅ constant_time::multiplexers::tests::ccopy_false_preserves
✅ constant_time::multiplexers::tests::ccopy_true_overwrites
✅ constant_time::multiplexers::tests::ccopy_same_value_idempotent
✅ constant_time::multiplexers::tests::ccopy_usize_false_preserves
✅ constant_time::multiplexers::tests::mux32_boundary_values
✅ constant_time::multiplexers::tests::ccopy_usize_true_overwrites
✅ constant_time::multiplexers::tests::mux32_asm_matches_portable
✅ constant_time::multiplexers::tests::mux32_false_returns_y
✅ constant_time::multiplexers::tests::mux32_true_returns_x
✅ constant_time::multiplexers::tests::mux_bool32_selects_correctly
✅ constant_time::multiplexers::tests::mux_asm_matches_portable_u64
✅ constant_time::multiplexers::tests::mux_bool_false_selects_y
✅ constant_time::multiplexers::tests::mux_bool_true_selects_x
✅ constant_time::multiplexers::tests::mux_bool_usize_selects_correctly
✅ constant_time::multiplexers::tests::mux_boundary_values
✅ constant_time::multiplexers::tests::mux_false_returns_y
✅ constant_time::multiplexers::tests::mux_same_x_y
✅ constant_time::multiplexers::tests::mux_true_returns_x
✅ constant_time::multiplexers::tests::mux_usize_selects_correctly
✅ constant_time::multiplexers::tests::secret_lookup_all_indices
✅ constant_time::multiplexers::tests::secret_lookup_boundary_values
✅ constant_time::multiplexers::tests::secret_lookup_empty_returns_zero
✅ cpudetect::tests::cpu_name_returns_nonempty
✅ constant_time::multiplexers::tests::secret_lookup_single_element
✅ intrinsics::addcarry_subborrow::tests::add_c_u32_both_carries
✅ intrinsics::addcarry_subborrow::tests::add_c_u32_carry_in
✅ intrinsics::addcarry_subborrow::tests::add_c_u32_carry_out
✅ intrinsics::addcarry_subborrow::tests::add_c_u32_chain_4_limbs
✅ intrinsics::addcarry_subborrow::tests::add_c_u32_no_carry
✅ intrinsics::addcarry_subborrow::tests::add_c_u64_carry_in
✅ intrinsics::addcarry_subborrow::tests::add_c_u64_both_carries
✅ intrinsics::addcarry_subborrow::tests::add_c_u64_carry_out
✅ intrinsics::addcarry_subborrow::tests::add_c_u64_no_carry
✅ intrinsics::addcarry_subborrow::tests::add_c_u64_chain_4_limbs
✅ intrinsics::addcarry_subborrow::tests::sub_b_u32_borrow_in
✅ intrinsics::addcarry_subborrow::tests::sub_b_u32_borrow_out
✅ intrinsics::addcarry_subborrow::tests::sub_b_u32_both_borrows
✅ intrinsics::addcarry_subborrow::tests::sub_b_u32_chain_4_limbs
✅ intrinsics::addcarry_subborrow::tests::sub_b_u64_borrow_in
✅ intrinsics::addcarry_subborrow::tests::sub_b_u32_no_borrow
✅ intrinsics::addcarry_subborrow::tests::sub_b_u64_borrow_out
✅ intrinsics::addcarry_subborrow::tests::sub_b_u64_chain_4_limbs
✅ intrinsics::addcarry_subborrow::tests::sub_b_u64_both_borrows
✅ intrinsics::addcarry_subborrow::tests::sub_b_u64_no_borrow
✅ intrinsics::compiler_hints::tests::enum_values
✅ intrinsics::compiler_hints::tests::prefetch_does_not_crash
✅ intrinsics::compiler_hints::tests::prefetch_large_handles_big_type
✅ intrinsics::compiler_hints::tests::prefetch_read_does_not_crash_stack_array
✅ intrinsics::compiler_hints::tests::prefetch_write_does_not_crash
✅ intrinsics::copy_dispatch::tests::dispatcher_32_bytes
✅ intrinsics::copy_dispatch::tests::copy_out_roundtrip_u64
✅ intrinsics::copy_dispatch::tests::roundtrip_128
✅ intrinsics::copy_dispatch::tests::roundtrip_16
✅ intrinsics::copy_dispatch::tests::roundtrip_24
✅ intrinsics::copy_dispatch::tests::roundtrip_32
✅ intrinsics::copy_dispatch::tests::roundtrip_48
✅ intrinsics::copy_dispatch::tests::roundtrip_56
✅ intrinsics::copy_dispatch::tests::roundtrip_u64
✅ intrinsics::copy_dispatch::tests::roundtrip_64
✅ intrinsics::copy_dispatch::tests::simd_copy_out_roundtrip_u64
✅ intrinsics::copy_dispatch::tests::simd_roundtrip_128
✅ intrinsics::copy_dispatch::tests::simd_roundtrip_16
✅ intrinsics::copy_dispatch::tests::simd_roundtrip_48
✅ intrinsics::copy_dispatch::tests::simd_roundtrip_56
✅ intrinsics::copy_dispatch::tests::simd_roundtrip_32
✅ intrinsics::copy_dispatch::tests::simd_roundtrip_64
✅ intrinsics::copy_dispatch::tests::simd_roundtrip_24
✅ intrinsics::copy_dispatch::tests::simd_roundtrip_u64
✅ intrinsics::extended_prec::tests::mul_acc32_from_zero
✅ intrinsics::extended_prec::tests::mul_acc_carry_into_t
✅ intrinsics::extended_prec::tests::mul_acc_carry_into_u
✅ intrinsics::extended_prec::tests::mul_acc_from_zero
✅ intrinsics::extended_prec::tests::mul_acc_into_nonzero
✅ intrinsics::extended_prec::tests::mul_double_acc32_equals_two_mul_acc32
✅ intrinsics::extended_prec::tests::mul_double_acc_equals_two_mul_acc
✅ intrinsics::extended_prec::tests::mul_double_acc_small
✅ intrinsics::extended_prec::tests::muladd1_u32_basic
✅ intrinsics::extended_prec::tests::muladd1_u32_max_squared_plus_max
✅ intrinsics::extended_prec::tests::muladd1_u64_max_squared_plus_max
✅ intrinsics::extended_prec::tests::muladd2_u32_basic
✅ intrinsics::extended_prec::tests::muladd2_u32_max_squared_plus_two_max
✅ intrinsics::extended_prec::tests::smul_u32_negative_negative
✅ intrinsics::extended_prec::tests::muladd2_u64_max_squared_plus_two_max
✅ intrinsics::extended_prec::tests::smul_u32_positive_negative
✅ intrinsics::extended_prec::tests::smul_u32_zero
✅ intrinsics::extended_prec::tests::smul_u32_positive_positive
✅ intrinsics::extended_prec::tests::smul_u64_negative_negative
✅ intrinsics::extended_prec::tests::smul_u64_mixed_sign
✅ intrinsics::extended_prec::tests::smul_u64_positive_positive
✅ intrinsics::extended_prec::tests::smul_u64_zero
✅ intrinsics::extended_prec::tests::wide_mul_u32_max_times_max
✅ intrinsics::extended_prec::tests::wide_mul_u32_one
✅ intrinsics::extended_prec::tests::wide_mul_u32_small
✅ intrinsics::extended_prec::tests::wide_mul_u32_zero
✅ intrinsics::extended_prec::tests::wide_mul_u64_one
✅ intrinsics::extended_prec::tests::wide_mul_u64_small
✅ intrinsics::extended_prec::tests::wide_mul_u64_max_times_max
✅ intrinsics::extended_prec::tests::wide_mul_u64_zero
✅ isa_x86::assembler::tests::constraint_variants
✅ isa_x86::assembler::tests::operand_construction
✅ isa_x86::assembler::tests::mem_indirect_access_variants
✅ isa_x86::assembler::tests::register_debug
✅ isa_x86::cpudetect::tests::feature_detection_is_consistent
✅ isa_x86::assembler::tests::rm_variants_are_distinct
✅ isa_x86::cpudetect::tests::cpu_name_x86_nonempty
✅ isa_x86::rdtsc::tests::rdtsc_counter_increases
✅ isa_x86::cpudetect::tests::has_sse2_is_true
✅ metering::hw_counters::tests::hw_counter_deltas_default_is_zero
✅ isa_x86::cpudetect::tests::features_dont_panic
✅ metering::instant::tests::instant_counter_default
✅ metering::instant::tests::instant_counter_measures_time
✅ metering::hw_counters::tests::noop_counters_returns_none
✅ pad::tests::cache_padded_alignment
✅ pad::tests::cache_padded_deref
✅ pad::tests::cache_padded_deref_mut

✅ mantis-queue

✅ copy_ring::engine::tests::batch_fifo_ordering
✅ copy_ring::engine::tests::batch_empty_slice
✅ copy_ring::engine::tests::batch_wraparound
✅ copy_ring::engine::tests::fifo_ordering
✅ copy_ring::engine::proptest_tests::batch_fifo_preserved
✅ copy_ring::engine::tests::len_and_capacity
✅ copy_ring::engine::tests::pop_batch_all
✅ copy_ring::engine::tests::pop_batch_partial
✅ copy_ring::engine::tests::pop_batch_wraparound_contiguous
✅ copy_ring::engine::tests::pop_empty_returns_false
✅ copy_ring::engine::tests::push_batch_full_capacity
✅ copy_ring::engine::tests::push_batch_wraparound_contiguous
✅ copy_ring::engine::tests::push_batch_partial
✅ copy_ring::engine::tests::push_full_returns_false
✅ copy_ring::engine::tests::push_pop_single
✅ copy_ring::engine::tests::push_pop_batch_differential
✅ copy_ring::engine::tests::wraparound
✅ engine::tests::fifo_ordering
✅ engine::tests::len_and_is_empty
✅ engine::tests::pop_empty_returns_error
✅ engine::tests::push_full_returns_value
✅ engine::tests::push_pop_single
✅ engine::tests::wraparound
✅ handle::tests::heap_split_handles
✅ handle::tests::producer_consumer_are_send
✅ handle::tests::raw_ring_push_pop
✅ presets::tests::instrumented_preset_tracks
✅ handle::tests::split_handles_push_pop
✅ presets::tests::heap_preset_works
✅ presets::tests::spsc_ring_preset_works
✅ raw::slot::tests::drop_in_place_runs_destructor
✅ raw::slot::tests::write_then_read_string
✅ raw::slot::tests::write_then_read_u64
✅ storage::tests::heap_storage_rounds_up_capacity
✅ storage::tests::heap_storage_slot_roundtrip
✅ storage::tests::inline_storage_capacity
✅ storage::tests::inline_storage_slot_roundtrip

✅ mantis-queue::spsc_basic

✅ drop_safety_with_string
✅ extensive_wraparound
✅ heap_fill_and_drain
✅ instrumented_tracks_all_events
✅ split_handles_two_thread
✅ spsc_ring_fill_and_drain
✅ spsc_ring_fill_and_drain_capacity_16

✅ mantis-queue::spsc_copy_basic

✅ heap_push_pop
✅ inline_batch_roundtrip
✅ inline_push_pop
✅ inline_fill_and_drain
✅ instrumented_counts
✅ split_handles_two_thread
✅ split_handles_batch_two_thread
✅ stress_two_thread_message48

✅ mantis-queue::spsc_stress

✅ stress_10m_items

✅ mantis-types

✅ tests::power_of_two_valid
✅ tests::push_error_display
✅ tests::push_error_preserves_value
✅ tests::queue_error_display
✅ tests::seq_num_ordering
✅ tests::slot_index_equality

✅ mantis-verify

✅ spsc_diff::tests::copy_vs_general_fixed
✅ spsc_diff::tests::portable_vs_heap
✅ spsc_diff::tests::portable_vs_instrumented_fixed
✅ spsc_diff::tests::portable_vs_instrumented_bolero
✅ spsc_props::tests::copy_batch_fifo_ordering
✅ spsc_props::tests::copy_batch_respects_capacity
✅ spsc_props::tests::fifo_ordering
✅ spsc_props::tests::len_invariant
✅ spsc_props::tests::not_empty_when_has_items
✅ spsc_props::tests::not_full_when_under_capacity