{-# LANGUAGE TypeApplications #-} import Cardano.Crypto.Libsodium (sodiumInit) import Cardano.Ledger.Shelley.Rules (ShelleyLEDGER) import System.Environment (lookupEnv) import System.IO (hSetEncoding, stdout, utf8) import Test.Cardano.Ledger.Shelley.ConcreteCryptoTypes (C) import Test.Cardano.Ledger.Shelley.PropertyTests (commonTests) import qualified Test.Cardano.Ledger.Shelley.Rewards as Rewards (tests) import qualified Test.Cardano.Ledger.Shelley.Rules.AdaPreservation as AdaPreservation import qualified Test.Cardano.Ledger.Shelley.Rules.ClassifyTraces as ClassifyTraces ( onlyValidChainSignalsAreGenerated, relevantCasesAreCovered, ) import qualified Test.Cardano.Ledger.Shelley.Rules.Deposits as Deposits (tests) import qualified Test.Cardano.Ledger.Shelley.RulesTests as RulesTests ( chainExamples, multisigExamples, testTickF, ) import qualified Test.Cardano.Ledger.Shelley.SafeHash as SafeHash (safeHashTest) import qualified Test.Cardano.Ledger.Shelley.Serialisation as Serialisation import qualified Test.Cardano.Ledger.Shelley.UnitTests as UnitTests (unitTests) import qualified Test.Cardano.Ledger.Shelley.WitVKeys as WitVKeys (tests) import Test.Tasty import Test.Tasty.QuickCheck (QuickCheckMaxRatio (..)) import Test.Cardano.Ledger.Shelley.Serialisation.EraIndepGenerators () import Test.QuickCheck (Args (maxSuccess), stdArgs) main :: IO () IO () main = do Handle -> TextEncoding -> IO () hSetEncoding Handle stdout TextEncoding utf8 IO () sodiumInit Maybe String nightly <- String -> IO (Maybe String) lookupEnv String "NIGHTLY" TestTree -> IO () defaultMain forall a b. (a -> b) -> a -> b $ case Maybe String nightly of Maybe String Nothing -> TestTree defaultTests Just String _ -> TestTree nightlyTests defaultTests :: TestTree defaultTests :: TestTree defaultTests = String -> [TestTree] -> TestTree testGroup String "Shelley tests" [ forall era. (EraGen era, EraGov era, HasTrace (CHAIN era) (GenEnv era)) => TestTree Deposits.tests @C , ( forall v. IsOption v => v -> TestTree -> TestTree localOption (Int -> QuickCheckMaxRatio QuickCheckMaxRatio Int 50) (forall era. (EraGen era, ChainProperty era, HasTrace (CHAIN era) (GenEnv era)) => Int -> TestTree ClassifyTraces.relevantCasesAreCovered @C (Args -> Int maxSuccess Args stdArgs)) ) , forall era ledger. (EraGen era, TestingLedger era ledger, ChainProperty era, HasTrace (CHAIN era) (GenEnv era), GovState era ~ ShelleyGovState era) => Int -> TestTree AdaPreservation.tests @C @(ShelleyLEDGER C) (Args -> Int maxSuccess Args stdArgs) , forall era. (EraGen era, HasTrace (CHAIN era) (GenEnv era), EraGov era) => TestTree ClassifyTraces.onlyValidChainSignalsAreGenerated @C , TestTree WitVKeys.tests , TestTree Rewards.tests , TestTree Serialisation.tests , TestTree RulesTests.chainExamples , TestTree RulesTests.multisigExamples , TestTree RulesTests.testTickF , TestTree UnitTests.unitTests , TestTree SafeHash.safeHashTest ] nightlyTests :: TestTree nightlyTests :: TestTree nightlyTests = String -> [TestTree] -> TestTree testGroup String "Shelley tests - nightly" forall a b. (a -> b) -> a -> b $ TestTree Serialisation.tests forall a. a -> [a] -> [a] : forall era ledger. (EraGen era, ChainProperty era, HasTrace (CHAIN era) (GenEnv era), HasTrace ledger (GenEnv era), Embed (EraRule "DELEGS" era) ledger, Embed (EraRule "UTXOW" era) ledger, Environment ledger ~ LedgerEnv era, BaseEnv ledger ~ Globals, BaseM ledger ~ ReaderT Globals Identity, State ledger ~ LedgerState era, Signal ledger ~ Tx era, GovState era ~ ShelleyGovState era) => [TestTree] commonTests @C @(ShelleyLEDGER C)