{-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} module Main where import Cardano.Ledger.Alonzo (AlonzoEra) import Data.Proxy (Proxy (..)) import System.Environment (lookupEnv) import qualified Test.Cardano.Ledger.Alonzo.ChainTrace as ChainTrace import qualified Test.Cardano.Ledger.Alonzo.Golden as Golden import Test.Cardano.Ledger.Alonzo.ImpTest () import Test.Cardano.Ledger.Common import qualified Test.Cardano.Ledger.Shelley.PropertyTests as Shelley import qualified Test.Cardano.Ledger.Shelley.Rules.AdaPreservation as AdaPreservation import qualified Test.Cardano.Ledger.Shelley.Rules.IncrementalStake as IncrementalStake main :: IO () IO () main = do Maybe String nightly <- String -> IO (Maybe String) lookupEnv String "NIGHTLY" Spec -> IO () ledgerTestMain (Spec -> IO ()) -> Spec -> IO () forall a b. (a -> b) -> a -> b $ case Maybe String nightly of Maybe String Nothing -> Spec defaultTests Just String _ -> Spec nightlyTests defaultTests :: Spec defaultTests :: Spec defaultTests = String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "Alonzo tests" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ do forall era. (EraGen era, EraStake era, ChainProperty era, HasTrace (CHAIN era) (GenEnv MockCrypto era), GovState era ~ ShelleyGovState era, State (EraRule "LEDGER" era) ~ LedgerState era, Signal (EraRule "LEDGER" era) ~ Tx era, Environment (EraRule "LEDGER" era) ~ LedgerEnv era, BaseM (EraRule "LEDGER" era) ~ ShelleyBase, STS (EraRule "LEDGER" era)) => Int -> Spec AdaPreservation.tests @AlonzoEra Int 50 Spec Golden.tests nightlyTests :: Spec nightlyTests :: Spec nightlyTests = String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "Alonzo tests - nightly" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ do String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "Shelley common tests" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ [Spec] -> Spec forall (t :: * -> *) (m :: * -> *) a. (Foldable t, Monad m) => t (m a) -> m () sequence_ ([Spec] -> Spec) -> [Spec] -> Spec forall a b. (a -> b) -> a -> b $ forall era. (EraGen era, EraStake era, ShelleyEraAccounts era, ApplyBlock era, GetLedgerView era, Embed (EraRule "BBODY" era) (CHAIN era), Embed (EraRule "TICK" era) (CHAIN era), Embed (EraRule "TICKN" era) (CHAIN era), HasTrace (EraRule "LEDGERS" era) (GenEnv MockCrypto era), State (EraRule "TICKN" era) ~ TicknState, Environment (EraRule "LEDGERS" era) ~ ShelleyLedgersEnv era, Environment (EraRule "TICKN" era) ~ TicknEnv, Signal (EraRule "LEDGERS" era) ~ Seq (Tx era), Signal (EraRule "TICKN" era) ~ Bool, BaseM (EraRule "LEDGERS" era) ~ ShelleyBase, AtMostEra "Alonzo" era, GovState era ~ ShelleyGovState era, InstantStake era ~ ShelleyInstantStake era, BaseEnv (EraRule "LEDGER" era) ~ Globals, HasTrace (EraRule "LEDGER" era) (GenEnv MockCrypto era), State (EraRule "TICK" era) ~ NewEpochState era, State (EraRule "LEDGER" era) ~ LedgerState era, BaseM (EraRule "LEDGER" era) ~ ShelleyBase, State (EraRule "BBODY" era) ~ ShelleyBbodyState era, Environment (EraRule "LEDGER" era) ~ LedgerEnv era, Environment (EraRule "TICK" era) ~ (), Signal (EraRule "LEDGER" era) ~ Tx era, State (EraRule "LEDGERS" era) ~ LedgerState era, Environment (EraRule "BBODY" era) ~ BbodyEnv era, Signal (EraRule "TICK" era) ~ SlotNo, Signal (EraRule "BBODY" era) ~ Block BHeaderView era) => [Spec] Shelley.commonTests @AlonzoEra Proxy AlonzoEra -> Spec forall era. (EraGen era, EraGov era, EraStake era, ShelleyEraAccounts era, HasTrace (CHAIN era) (GenEnv MockCrypto era)) => Proxy era -> Spec IncrementalStake.incrStakeComparisonTest (Proxy AlonzoEra forall {k} (t :: k). Proxy t Proxy :: Proxy AlonzoEra) Spec ChainTrace.tests