-- suite.hs: hOpenPGP test suite
-- Copyright © 2012-2026  Clint Adams
-- This software is released under the terms of the Expat license.
-- (See the LICENSE file).

import Test.Tasty (TestTree, defaultMain, localOption, testGroup)
import qualified Test.Tasty.QuickCheck as QC
import Test.Tasty.Runners (NumThreads(..))
import Tests.Encryption (encryptionAndCompressionTests)
import Tests.Keys (keyAndVerificationTests)
import Tests.MessageAndArmor (messageAndArmorTests)
import Tests.Properties (propertiesTests)
import Tests.Serialization (serializationTests)
import Tests.Utilities (utilityTests)

tests :: TestTree
tests =
  localOption
    (NumThreads 4)
    (testGroup
       "Tests"
       [ localOption (QC.QuickCheckTests 20) propertiesTests
       , unitTests
       ])

unitTests :: TestTree
unitTests =
  testGroup
    "Unit Tests"
    [ serializationTests
    , keyAndVerificationTests
    , encryptionAndCompressionTests
    , messageAndArmorTests
    , utilityTests
    ]

main :: IO ()
main = defaultMain tests
