Skip to content

Commit

Permalink
Add more complicated unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
kderme committed Nov 28, 2021
1 parent 763d6e5 commit c8559b6
Showing 1 changed file with 47 additions and 1 deletion.
48 changes: 47 additions & 1 deletion cardano-chain-gen/test/Test/Cardano/Db/Mock/Unit.hs
Expand Up @@ -11,7 +11,8 @@ import Control.Concurrent.Async
import Control.Monad
import Control.Monad.IO.Class
import Control.Monad.Class.MonadSTM.Strict
import Data.Text
import Data.Text (Text)
import qualified Data.Text as Text
import System.Directory
import System.FilePath hiding (isValid)

Expand Down Expand Up @@ -162,6 +163,51 @@ simpleRollback iom knownMigrations = do
atomically $ rollback mockServer (blockPoint blk1)
assertBlockNoBackoff 1

bigChain :: IOManager -> [(Text, Text)] -> IO ()
bigChain iom knownMigrations = do
let testDir = rootTestDir </> "temp/bigChain"
recreateDir testDir
cfg <- mkConfig configDir testDir
interpreter <- initInterpreter (protocolInfoForging cfg) nullTracer
let initSt = Consensus.pInfoInitLedger $ protocolInfo cfg
mockServer <- forkServerThread @CardanoBlock iom (topLevelConfig cfg) initSt (NetworkMagic 42) $ unSocketPath (enpSocketPath $ syncNodeParams cfg)
blks <- forM (take 101 $ repeat mockBlock0) (forgeNext interpreter)
atomically $ forM_ blks $ addBlock mockServer
_ <- async $ runDbSyncNode emptyMetricsSetters True knownMigrations (syncNodeParams cfg)
assertBlockNoBackoff 100
blks' <- forM (take 100 $ repeat mockBlock1) (forgeNext interpreter)
atomically $ forM_ blks' $ addBlock mockServer
assertBlockNoBackoff 200
blks'' <- forM (take 5 $ repeat mockBlock2) (forgeNext interpreter)
atomically $ forM_ blks'' $ addBlock mockServer
assertBlockNoBackoff 205
atomically $ rollback mockServer (blockPoint $ last blks')
assertBlockNoBackoff 200


bigChainRestart :: IOManager -> [(Text, Text)] -> IO ()
bigChainRestart iom knownMigrations = do
let testDir = rootTestDir </> "temp/bigChainRestart"
recreateDir testDir
cfg <- mkConfig configDir testDir
interpreter <- initInterpreter (protocolInfoForging cfg) nullTracer
let initSt = Consensus.pInfoInitLedger $ protocolInfo cfg
mockServer <- forkServerThread @CardanoBlock iom (topLevelConfig cfg) initSt (NetworkMagic 42) $ unSocketPath (enpSocketPath $ syncNodeParams cfg)
blks <- forM (take 101 $ repeat mockBlock0) (forgeNext interpreter)
atomically $ forM_ blks $ addBlock mockServer
dbSync <- async $ runDbSyncNode emptyMetricsSetters True knownMigrations (syncNodeParams cfg)
assertBlockNoBackoff 100
blks' <- forM (take 100 $ repeat mockBlock1) (forgeNext interpreter)
atomically $ forM_ blks' $ addBlock mockServer
assertBlockNoBackoff 200
blks'' <- forM (take 5 $ repeat mockBlock2) (forgeNext interpreter)
atomically $ forM_ blks'' $ addBlock mockServer
assertBlockNoBackoff 205
cancel dbSync
atomically $ rollback mockServer (blockPoint $ last blks')
_ <- async $ runDbSyncNode emptyMetricsSetters True knownMigrations (syncNodeParams cfg)
assertBlockNoBackoff 200

recreateDir :: FilePath -> IO ()
recreateDir path = do
removePathForcibly path
Expand Down

0 comments on commit c8559b6

Please sign in to comment.