packages feed

pqi-conformance-0.0.1.2: pqi-conformance.cabal

cabal-version: 3.0
name: pqi-conformance
version: 0.0.1.2
category: Database, PostgreSQL, Testing
synopsis: Differential conformance tests for pqi adapters
description:
  A reusable [@hspec@](https://hackage.haskell.org/package/hspec) toolkit that checks any [@pqi@](https://hackage.haskell.org/package/pqi) 'Pqi.IsConnection' adapter against the FFI reference adapter. It boots a throwaway PostgreSQL container (via [@testcontainers@](https://hackage.haskell.org/package/testcontainers)), runs the same operation on the candidate and the FFI connection, and asserts that the protocol-derived observations match.

  Each adapter's own test suite reuses these spec builders, wiring itself in as the candidate.

homepage: https://github.com/nikita-volkov/pqi-conformance
bug-reports: https://github.com/nikita-volkov/pqi-conformance/issues
author: Nikita Volkov <nikita.y.volkov@mail.ru>
maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>
copyright: (c) 2026, Nikita Volkov
license: MIT
license-file: LICENSE
extra-doc-files:
  CHANGELOG.md
  LICENSE
  README.md

source-repository head
  type: git
  location: https://github.com/nikita-volkov/pqi-conformance

common base
  default-language: Haskell2010
  default-extensions:
    ApplicativeDo
    BangPatterns
    BinaryLiterals
    BlockArguments
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveTraversable
    DerivingStrategies
    DerivingVia
    DuplicateRecordFields
    EmptyDataDecls
    ExistentialQuantification
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    GADTs
    GeneralizedNewtypeDeriving
    LambdaCase
    LiberalTypeSynonyms
    MagicHash
    MultiParamTypeClasses
    MultiWayIf
    NamedFieldPuns
    NoFieldSelectors
    NoImplicitPrelude
    NoMonomorphismRestriction
    NumericUnderscores
    OverloadedRecordDot
    OverloadedStrings
    ParallelListComp
    PatternGuards
    QuasiQuotes
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    StrictData
    TemplateHaskell
    TupleSections
    TypeApplications
    TypeFamilies
    TypeOperators
    UnboxedTuples
    ViewPatterns

common test
  import: base
  ghc-options:
    -threaded
    -with-rtsopts=-N

library
  import: base
  hs-source-dirs: src/library
  exposed-modules:
    Pqi.Conformance

  other-modules:
    Pqi.Conformance.Harness
    Pqi.Conformance.Observation
    Pqi.Conformance.Operation.BackendPID
    Pqi.Conformance.Operation.Cancel
    Pqi.Conformance.Operation.Cancel.Cleanup
    Pqi.Conformance.Operation.Cancel.Stale
    Pqi.Conformance.Operation.ClientEncoding
    Pqi.Conformance.Operation.CmdStatus
    Pqi.Conformance.Operation.CmdTuples
    Pqi.Conformance.Operation.Connectdb
    Pqi.Conformance.Operation.ConnectionNeedsPassword
    Pqi.Conformance.Operation.ConnectionUsedPassword
    Pqi.Conformance.Operation.ConnectPoll
    Pqi.Conformance.Operation.ConnectStart
    Pqi.Conformance.Operation.ConsumeInput
    Pqi.Conformance.Operation.Db
    Pqi.Conformance.Operation.DescribePortal
    Pqi.Conformance.Operation.DescribePrepared
    Pqi.Conformance.Operation.DisableNoticeReporting
    Pqi.Conformance.Operation.EnableNoticeReporting
    Pqi.Conformance.Operation.EnterPipelineMode
    Pqi.Conformance.Operation.ErrorMessage
    Pqi.Conformance.Operation.EscapeByteaConn
    Pqi.Conformance.Operation.EscapeIdentifier
    Pqi.Conformance.Operation.EscapeStringConn
    Pqi.Conformance.Operation.Exec
    Pqi.Conformance.Operation.ExecParams
    Pqi.Conformance.Operation.ExecPrepared
    Pqi.Conformance.Operation.ExitPipelineMode
    Pqi.Conformance.Operation.Fformat
    Pqi.Conformance.Operation.Finish
    Pqi.Conformance.Operation.Flush
    Pqi.Conformance.Operation.Fmod
    Pqi.Conformance.Operation.Fname
    Pqi.Conformance.Operation.Fnumber
    Pqi.Conformance.Operation.Fsize
    Pqi.Conformance.Operation.Ftable
    Pqi.Conformance.Operation.Ftablecol
    Pqi.Conformance.Operation.Ftype
    Pqi.Conformance.Operation.GetCancel
    Pqi.Conformance.Operation.GetCopyData
    Pqi.Conformance.Operation.Getisnull
    Pqi.Conformance.Operation.Getlength
    Pqi.Conformance.Operation.GetNotice
    Pqi.Conformance.Operation.GetResult
    Pqi.Conformance.Operation.Getvalue
    Pqi.Conformance.Operation.GetvalueCopy
    Pqi.Conformance.Operation.Host
    Pqi.Conformance.Operation.IsBusy
    Pqi.Conformance.Operation.Isnonblocking
    Pqi.Conformance.Operation.IsNullConnection
    Pqi.Conformance.Operation.LoClose
    Pqi.Conformance.Operation.LoCreat
    Pqi.Conformance.Operation.LoCreate
    Pqi.Conformance.Operation.LoExport
    Pqi.Conformance.Operation.LoImport
    Pqi.Conformance.Operation.LoImportWithOid
    Pqi.Conformance.Operation.LoOpen
    Pqi.Conformance.Operation.LoRead
    Pqi.Conformance.Operation.LoSeek
    Pqi.Conformance.Operation.LoTell
    Pqi.Conformance.Operation.LoTruncate
    Pqi.Conformance.Operation.LoUnlink
    Pqi.Conformance.Operation.LoWrite
    Pqi.Conformance.Operation.NewNullConnection
    Pqi.Conformance.Operation.Nfields
    Pqi.Conformance.Operation.Notifies
    Pqi.Conformance.Operation.Nparams
    Pqi.Conformance.Operation.Ntuples
    Pqi.Conformance.Operation.Options
    Pqi.Conformance.Operation.ParameterStatus
    Pqi.Conformance.Operation.Paramtype
    Pqi.Conformance.Operation.Pass
    Pqi.Conformance.Operation.PipelineStatus
    Pqi.Conformance.Operation.PipelineSync
    Pqi.Conformance.Operation.Port
    Pqi.Conformance.Operation.Prepare
    Pqi.Conformance.Operation.ProtocolVersion
    Pqi.Conformance.Operation.PutCopyData
    Pqi.Conformance.Operation.PutCopyEnd
    Pqi.Conformance.Operation.Reset
    Pqi.Conformance.Operation.ResetPoll
    Pqi.Conformance.Operation.ResetStart
    Pqi.Conformance.Operation.ResultErrorField
    Pqi.Conformance.Operation.ResultErrorMessage
    Pqi.Conformance.Operation.ResultStatus
    Pqi.Conformance.Operation.SendDescribePortal
    Pqi.Conformance.Operation.SendDescribePrepared
    Pqi.Conformance.Operation.SendFlushRequest
    Pqi.Conformance.Operation.SendPrepare
    Pqi.Conformance.Operation.SendQuery
    Pqi.Conformance.Operation.SendQueryParams
    Pqi.Conformance.Operation.SendQueryPrepared
    Pqi.Conformance.Operation.ServerVersion
    Pqi.Conformance.Operation.SetClientEncoding
    Pqi.Conformance.Operation.SetErrorVerbosity
    Pqi.Conformance.Operation.Setnonblocking
    Pqi.Conformance.Operation.SetSingleRowMode
    Pqi.Conformance.Operation.Socket
    Pqi.Conformance.Operation.Status
    Pqi.Conformance.Operation.TransactionStatus
    Pqi.Conformance.Operation.UnsafeFreeResult
    Pqi.Conformance.Operation.User
    Pqi.Conformance.Prelude
    Pqi.Conformance.Reference
    Pqi.Conformance.Scenario

  build-depends:
    base >=4.11 && <5,
    bytestring >=0.10 && <0.13,
    containers >=0.6 && <0.9,
    directory >=1.3 && <1.4,
    hspec >=2.11 && <2.12,
    postgresql-libpq >=0.11 && <0.12,
    pqi ^>=0.0,
    testcontainers-postgresql ^>=0.2,
    text >=1.2 && <3,