(rule
 (action
  (copy
   ../../src/michael_scott_queue/michael_scott_queue.ml
   michael_scott_queue.ml))
 (package saturn))

(rule
 (action
  (copy
   ../../src/michael_scott_queue/michael_scott_queue_unsafe.ml
   michael_scott_queue_unsafe.ml))
 (package saturn))

(rule
 (action
  (copy
   ../../src/michael_scott_queue/michael_scott_queue_intf.mli
   michael_scott_queue_intf.ml))
 (package saturn))

(test
 (package saturn)
 (name michael_scott_queue_dscheck)
 (libraries alcotest atomic backoff dscheck multicore-magic-dscheck)
 (build_if
  (and
   (>= %{ocaml_version} 5)
   (not
    (and
     (= %{arch_sixtyfour} false)
     (= %{architecture} arm)))))
 (modules
  michael_scott_queue
  michael_scott_queue_unsafe
  michael_scott_queue_unsafe_node
  michael_scott_queue_intf
  michael_scott_queue_dscheck)
 (flags
  (:standard -open Multicore_magic_dscheck)))

(test
 (package saturn)
 (name qcheck_michael_scott_queue)
 (libraries
  ms_queues
  saturn
  barrier
  qcheck
  qcheck-core
  qcheck-alcotest
  domain_shims
  alcotest)
 (modules qcheck_michael_scott_queue))

(test
 (package saturn)
 (name stm_michael_scott_queue)
 (modules stm_michael_scott_queue)
 (libraries ms_queues saturn qcheck-core qcheck-stm.stm stm_run))
