Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cardano-testnet-test: allow to rewrite Conway configuration #5643

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions cardano-testnet/src/Testnet/Start/Cardano.hs
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ startTimeOffsetSeconds = if OS.isWin32 then 90 else 15
-- > └── utxo-keys
-- >    └── utxo{1,2,3}.{addr,skey,vkey}
cardanoTestnet :: CardanoTestnetOptions -> Conf -> H.Integration TestnetRuntime
cardanoTestnet testnetOptions Conf {tempAbsPath} = do
cardanoTestnet testnetOptions Conf {tempAbsPath, rewriteConway} = do
testnetMinimumConfigurationRequirements testnetOptions
void $ H.note OS.os
currentTime <- H.noteShowIO DTC.getCurrentTime
Expand Down Expand Up @@ -167,7 +167,8 @@ cardanoTestnet testnetOptions Conf {tempAbsPath} = do
H.evalIO $ LBS.writeFile alonzoConwayTestGenesisJsonTargetFile $ Aeson.encode gen

conwayConwayTestGenesisJsonTargetFile <- H.noteShow $ tempAbsPath' </> "genesis.conway.spec.json"
H.evalIO $ LBS.writeFile conwayConwayTestGenesisJsonTargetFile $ Aeson.encode defaultConwayGenesis
let conwayGenesis = rewriteConway defaultConwayGenesis
H.evalIO $ LBS.writeFile conwayConwayTestGenesisJsonTargetFile $ Aeson.encode conwayGenesis

configurationFile <- H.noteShow $ tempAbsPath' </> "configuration.yaml"

Expand Down
20 changes: 18 additions & 2 deletions cardano-testnet/src/Testnet/Start/Types.hs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE ScopedTypeVariables #-}

module Testnet.Start.Types
Expand All @@ -23,6 +24,8 @@ import Data.Word

import Hedgehog.Extras.Test.Base (Integration)

import Cardano.Api.Ledger (StandardCrypto)
import qualified Cardano.Ledger.Conway.Genesis as Ledger
import Testnet.Filepath


Expand Down Expand Up @@ -82,14 +85,27 @@ newtype NodeConfigurationYaml = NodeConfigurationYaml
{ unYamlFilePath :: FilePath
} deriving (Eq, Show)

newtype Conf = Conf
data Conf = Conf
{ tempAbsPath :: TmpAbsolutePath
} deriving (Eq, Show)
, -- | Function to rewrite the Conway genesis file before creating the testnet
rewriteConway :: Ledger.ConwayGenesis StandardCrypto -> Ledger.ConwayGenesis StandardCrypto
Copy link
Contributor

@Jimbo4350 Jimbo4350 Jan 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is precisely what we don't want to do. We do not want to re-write things in the test. The configuration you begin with is the configuration that is used. All fiddling with genesis files should happen before the test begins and not in Haskell.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Jimbo4350> I don't understand your reluctance here. The rewrite is actually specified at the beginning in the test when using this API, see e.g.

for an example.

Why do you think this is harmful?

}

instance Show Conf where
-- We ignore rewriteConway
show Conf { tempAbsPath } =
unlines
["Conf{"
, " tempAbsPath=" ++ show tempAbsPath
, " rewriteConway=unshowable"
, "}"
]

mkConf :: FilePath -> Integration Conf
mkConf tempAbsPath' =
return $ Conf
{ tempAbsPath = TmpAbsolutePath tempAbsPath'
, rewriteConway = id -- By default, don't change anything
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you link to the PR where you use it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}


Loading