arbiter-test-0.1.0.0
arbiter-test
Safe HaskellNone
LanguageGHC2024

Arbiter.Test.ConcurrencyLimit

Description

Backend-parameterized integration tests for per-job concurrency limits over the shared CLReg registry. Each job's key comes from the HasConcurrency instance for CLPayload.

Synopsis

Documentation

newtype CLPayloadSource #

A payload that selects a concurrency policy by its text. mx, my and mz select those policies (limits 1, 2 and 3) on one key. Other text selects declpolicy (limit 2), keyed by the text.

Constructors

CLPayload Text 

Instances

Instances details
FromJSON CLPayload Source # 
Instance details

Defined in Arbiter.Test.ConcurrencyLimit

ToJSON CLPayload Source # 
Instance details

Defined in Arbiter.Test.ConcurrencyLimit

HasConcurrency CLPayload Source # 
Instance details

Defined in Arbiter.Test.ConcurrencyLimit

Eq CLPayload Source # 
Instance details

Defined in Arbiter.Test.ConcurrencyLimit

Generic CLPayload Source # 
Instance details

Defined in Arbiter.Test.ConcurrencyLimit

Associated Types

type Rep CLPayload 
Instance details

Defined in Arbiter.Test.ConcurrencyLimit

type Rep CLPayload = D1 ('MetaData "CLPayload" "Arbiter.Test.ConcurrencyLimit" "arbiter-test-0.1.0.0-inplace" 'True) (C1 ('MetaCons "CLPayload" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))
Show CLPayload Source # 
Instance details

Defined in Arbiter.Test.ConcurrencyLimit

type Rep CLPayload Source # 
Instance details

Defined in Arbiter.Test.ConcurrencyLimit

type Rep CLPayload = D1 ('MetaData "CLPayload" "Arbiter.Test.ConcurrencyLimit" "arbiter-test-0.1.0.0-inplace" 'True) (C1 ('MetaCons "CLPayload" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

type CLReg = '[Queue "arbiter_concurrency_test" CLPayload]Source #

A one-queue registry over CLPayload.

concurrencyTable :: TextSource #

Table name for CLReg, shared across backends.

concurrencyLimitSpec :: forall env m. HasRegistry m CLReg => (forall a. env -> m a -> IO a) -> SpecWith envSource #

The concurrency-limit suite, run against any backend. Build the schema with setupOnce and empty it before each test with cleanupData.