module Main (main) where

import           System.IO (BufferMode (LineBuffering), hSetBuffering, stdout)
import qualified Test.Consensus.Cardano.ByronCompatibility
import qualified Test.Consensus.Cardano.DiffusionPipelining
import qualified Test.Consensus.Cardano.Golden
import qualified Test.Consensus.Cardano.MiniProtocol.LocalTxSubmission.Server
import qualified Test.Consensus.Cardano.Serialisation
import qualified Test.Consensus.Cardano.SupportedNetworkProtocolVersion
import qualified Test.Consensus.Cardano.SupportsSanityCheck
import           Test.Tasty
import qualified Test.ThreadNet.AllegraMary
import qualified Test.ThreadNet.Cardano
import qualified Test.ThreadNet.MaryAlonzo
import qualified Test.ThreadNet.ShelleyAllegra
import           Test.Util.TestEnv (defaultMainWithTestEnv,
                     defaultTestEnvConfig)

main :: IO ()
IO ()
main = do
  Handle -> BufferMode -> IO ()
hSetBuffering Handle
stdout BufferMode
LineBuffering
  TestEnvConfig -> TestTree -> IO ()
defaultMainWithTestEnv TestEnvConfig
defaultTestEnvConfig TestTree
tests

tests :: TestTree
tests :: TestTree
tests =
  TestName -> [TestTree] -> TestTree
testGroup TestName
"cardano"
  [ TestTree
Test.Consensus.Cardano.ByronCompatibility.tests
  , TestTree
Test.Consensus.Cardano.DiffusionPipelining.tests
  , TestTree
Test.Consensus.Cardano.Golden.tests
  , TestTree
Test.Consensus.Cardano.Serialisation.tests
  , TestTree
Test.Consensus.Cardano.SupportedNetworkProtocolVersion.tests
  , TestTree
Test.Consensus.Cardano.SupportsSanityCheck.tests
  , TestTree
Test.ThreadNet.AllegraMary.tests
  , TestTree
Test.ThreadNet.Cardano.tests
  , TestTree
Test.ThreadNet.MaryAlonzo.tests
  , TestTree
Test.ThreadNet.ShelleyAllegra.tests
  , TestTree
Test.Consensus.Cardano.MiniProtocol.LocalTxSubmission.Server.tests
  ]