module Main where
import Hydra.Prelude
import Hydra.API.ClientInputSpec qualified
import Hydra.API.HTTPServerSpec qualified
import Hydra.API.ServerOutputSpec qualified
import Hydra.API.ServerSpec qualified
import Hydra.BehaviorSpec qualified
import Hydra.CBORSpec qualified
import Hydra.Chain.BlockfrostSpec qualified
import Hydra.Chain.Direct.HandlersSpec qualified
import Hydra.Chain.Direct.ScriptRegistrySpec qualified
import Hydra.Chain.Direct.StateSpec qualified
import Hydra.Chain.Direct.TimeHandleSpec qualified
import Hydra.Chain.Direct.TxSpec qualified
import Hydra.Chain.Direct.TxTraceSpec qualified
import Hydra.Chain.Direct.WalletSpec qualified
import Hydra.Chain.ScriptRegistrySpec qualified
import Hydra.ConfigSpec qualified
import Hydra.CryptoSpec qualified
import Hydra.Events.RotationSpec qualified
import Hydra.Events.S3Spec qualified
import Hydra.Events.SQLiteBasedSpec qualified
import Hydra.Events.UDPSpec qualified
import Hydra.HeadLogic.OutcomeSpec qualified
import Hydra.HeadLogicSnapshotSpec qualified
import Hydra.HeadLogicSpec qualified
import Hydra.JSONSchemaSpec qualified
import Hydra.Ledger.Cardano.TimeSpec qualified
import Hydra.Ledger.CardanoSpec qualified
import Hydra.Ledger.SimpleSpec qualified
import Hydra.Logging.MonitoringSpec qualified
import Hydra.LoggingSpec qualified
import Hydra.Model.MockChainSpec qualified
import Hydra.ModelSpec qualified
import Hydra.Network.AuthenticateSpec qualified
import Hydra.NetworkSpec qualified
import Hydra.NetworkVersionsSpec qualified
import Hydra.Node.InputQueueSpec qualified
import Hydra.Node.RunSpec qualified
import Hydra.Node.UtilSpec qualified
import Hydra.NodeSpec qualified
import Hydra.OffChainAgreementSpec qualified
import Hydra.OffChainLeaderSpec qualified
import Hydra.OptionsSpec qualified
import Hydra.PartySpec qualified
import Hydra.PersistentQueueSpec qualified
import Hydra.UtilsSpec qualified
import Test.Hydra.TastyMain (defaultMainHydra, testSpec, testSpecs)
import Test.Tasty (DependencyType (AllFinish), after, dependentTestGroup)
main :: IO ()
IO ()
main =
TestName -> [IO TestTree] -> IO ()
defaultMainHydra
TestName
"hydra-node"
[ TestName -> Spec -> IO TestTree
testSpec TestName
"API.ClientInput" Spec
Hydra.API.ClientInputSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"API.HTTPServer" Spec
Hydra.API.HTTPServerSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"API.ServerOutput" Spec
Hydra.API.ServerOutputSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"API.Server" Spec
Hydra.API.ServerSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Behavior" Spec
Hydra.BehaviorSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"CBOR" Spec
Hydra.CBORSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Chain.Blockfrost" Spec
Hydra.Chain.BlockfrostSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Chain.Direct.Handlers" Spec
Hydra.Chain.Direct.HandlersSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Chain.Direct.ScriptRegistry" Spec
Hydra.Chain.Direct.ScriptRegistrySpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Chain.Direct.State" Spec
Hydra.Chain.Direct.StateSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Chain.Direct.TimeHandle" Spec
Hydra.Chain.Direct.TimeHandleSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Chain.Direct.Tx" Spec
Hydra.Chain.Direct.TxSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Chain.Direct.TxTrace" Spec
Hydra.Chain.Direct.TxTraceSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Chain.Direct.Wallet" Spec
Hydra.Chain.Direct.WalletSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Chain.ScriptRegistry" Spec
Hydra.Chain.ScriptRegistrySpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Config" Spec
Hydra.ConfigSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Crypto" Spec
Hydra.CryptoSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Events.Rotation" Spec
Hydra.Events.RotationSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Events.S3" Spec
Hydra.Events.S3Spec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Events.SQLiteBased" Spec
Hydra.Events.SQLiteBasedSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Events.UDP" Spec
Hydra.Events.UDPSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"HeadLogic.Outcome" Spec
Hydra.HeadLogic.OutcomeSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"HeadLogicSnapshot" Spec
Hydra.HeadLogicSnapshotSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"HeadLogic" Spec
Hydra.HeadLogicSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"JSONSchema" Spec
Hydra.JSONSchemaSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Ledger.Cardano" Spec
Hydra.Ledger.CardanoSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Ledger.Cardano.Time" Spec
Hydra.Ledger.Cardano.TimeSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Ledger.Simple" Spec
Hydra.Ledger.SimpleSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Logging.Monitoring" Spec
Hydra.Logging.MonitoringSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Logging" Spec
Hydra.LoggingSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Model.MockChain" Spec
Hydra.Model.MockChainSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Model" Spec
Hydra.ModelSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Network.Authenticate" Spec
Hydra.Network.AuthenticateSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Network" Spec
Hydra.NetworkSpec.spec
,
DependencyType -> TestName -> TestTree -> TestTree
after DependencyType
AllFinish TestName
"$2 != \"Network.Etcd\"" (TestTree -> TestTree)
-> ([TestTree] -> TestTree) -> [TestTree] -> TestTree
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TestName -> DependencyType -> [TestTree] -> TestTree
dependentTestGroup TestName
"Network.Etcd" DependencyType
AllFinish
([TestTree] -> TestTree) -> IO [TestTree] -> IO TestTree
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Spec -> IO [TestTree]
testSpecs Spec
Hydra.NetworkSpec.etcdSpec
, TestName -> Spec -> IO TestTree
testSpec TestName
"NetworkVersions" Spec
Hydra.NetworkVersionsSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Node.InputQueue" Spec
Hydra.Node.InputQueueSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Node.Run" Spec
Hydra.Node.RunSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Node.Util" Spec
Hydra.Node.UtilSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Node" Spec
Hydra.NodeSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"OffChainAgreement" Spec
Hydra.OffChainAgreementSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"OffChainLeader" Spec
Hydra.OffChainLeaderSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Options" Spec
Hydra.OptionsSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Party" Spec
Hydra.PartySpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"PersistentQueue" Spec
Hydra.PersistentQueueSpec.spec
, TestName -> Spec -> IO TestTree
testSpec TestName
"Utils" Spec
Hydra.UtilsSpec.spec
]