@@ -139,11 +139,12 @@ type tester struct {
139139
140140// testerConfig holds configuration parameters for running a test scenario.
141141type testerConfig struct {
142- stateHistory uint64 // Number of historical states to retain
143- layers int // Number of state transitions to generate for
144- enableIndex bool // Enable state history indexing or not
145- journalDir string // Directory path for persisting journal files
146- isVerkle bool // Enables Verkle trie mode if true
142+ stateHistory uint64 // Number of historical states to retain
143+ maxDiffLayers int // Maximum number of diff layers to maintain
144+ layers int // Number of state transitions to generate for
145+ enableIndex bool // Enable state history indexing or not
146+ journalDir string // Directory path for persisting journal files
147+ isVerkle bool // Enables Verkle trie mode if true
147148
148149 writeBuffer * int // Optional, the size of memory allocated for write buffer
149150 trieCache * int // Optional, the size of memory allocated for trie cache
@@ -177,6 +178,7 @@ func newTester(t *testing.T, config *testerConfig) *tester {
177178 db = New (disk , & Config {
178179 StateHistory : config .stateHistory ,
179180 EnableStateIndexing : config .enableIndex ,
181+ MaxDiffLayers : config .maxDiffLayers ,
180182 TrieCleanSize : config .trieCacheSize (),
181183 StateCleanSize : config .stateCacheSize (),
182184 WriteBufferSize : config .writeBufferSize (),
@@ -579,13 +581,7 @@ func (t *tester) bottomIndex() int {
579581}
580582
581583func TestDatabaseRollback (t * testing.T ) {
582- // Redefine the diff layer depth allowance for faster testing.
583- maxDiffLayers = 4
584- defer func () {
585- maxDiffLayers = 128
586- }()
587-
588- tester := newTester (t , & testerConfig {layers : 32 })
584+ tester := newTester (t , & testerConfig {layers : 32 , maxDiffLayers : 4 })
589585 defer tester .release ()
590586
591587 if err := tester .verifyHistory (); err != nil {
@@ -612,14 +608,8 @@ func TestDatabaseRollback(t *testing.T) {
612608}
613609
614610func TestDatabaseRecoverable (t * testing.T ) {
615- // Redefine the diff layer depth allowance for faster testing.
616- maxDiffLayers = 4
617- defer func () {
618- maxDiffLayers = 128
619- }()
620-
621611 var (
622- tester = newTester (t , & testerConfig {layers : 12 })
612+ tester = newTester (t , & testerConfig {layers : 12 , maxDiffLayers : 4 })
623613 index = tester .bottomIndex ()
624614 )
625615 defer tester .release ()
@@ -657,13 +647,7 @@ func TestDatabaseRecoverable(t *testing.T) {
657647}
658648
659649func TestExecuteRollback (t * testing.T ) {
660- // Redefine the diff layer depth allowance for faster testing.
661- maxDiffLayers = 4
662- defer func () {
663- maxDiffLayers = 128
664- }()
665-
666- tester := newTester (t , & testerConfig {layers : 32 })
650+ tester := newTester (t , & testerConfig {layers : 32 , maxDiffLayers : 4 })
667651 defer tester .release ()
668652
669653 // Revert database from top to bottom
@@ -710,13 +694,7 @@ func TestExecuteRollback(t *testing.T) {
710694}
711695
712696func TestDisable (t * testing.T ) {
713- // Redefine the diff layer depth allowance for faster testing.
714- maxDiffLayers = 4
715- defer func () {
716- maxDiffLayers = 128
717- }()
718-
719- tester := newTester (t , & testerConfig {layers : 32 })
697+ tester := newTester (t , & testerConfig {layers : 32 , maxDiffLayers : 4 })
720698 defer tester .release ()
721699
722700 stored := crypto .Keccak256Hash (rawdb .ReadAccountTrieNode (tester .db .diskdb , nil ))
@@ -748,13 +726,7 @@ func TestDisable(t *testing.T) {
748726}
749727
750728func TestCommit (t * testing.T ) {
751- // Redefine the diff layer depth allowance for faster testing.
752- maxDiffLayers = 4
753- defer func () {
754- maxDiffLayers = 128
755- }()
756-
757- tester := newTester (t , & testerConfig {layers : 12 })
729+ tester := newTester (t , & testerConfig {layers : 12 , maxDiffLayers : 4 })
758730 defer tester .release ()
759731
760732 if err := tester .db .Commit (tester .lastHash (), false ); err != nil {
@@ -783,13 +755,7 @@ func TestJournal(t *testing.T) {
783755}
784756
785757func testJournal (t * testing.T , journalDir string ) {
786- // Redefine the diff layer depth allowance for faster testing.
787- maxDiffLayers = 4
788- defer func () {
789- maxDiffLayers = 128
790- }()
791-
792- tester := newTester (t , & testerConfig {layers : 12 , journalDir : journalDir })
758+ tester := newTester (t , & testerConfig {layers : 12 , maxDiffLayers : 4 , journalDir : journalDir })
793759 defer tester .release ()
794760
795761 if err := tester .db .Journal (tester .lastHash ()); err != nil {
@@ -830,13 +796,7 @@ func TestCorruptedJournal(t *testing.T) {
830796}
831797
832798func testCorruptedJournal (t * testing.T , journalDir string , modifyFn func (database ethdb.Database )) {
833- // Redefine the diff layer depth allowance for faster testing.
834- maxDiffLayers = 4
835- defer func () {
836- maxDiffLayers = 128
837- }()
838-
839- tester := newTester (t , & testerConfig {layers : 12 , journalDir : journalDir })
799+ tester := newTester (t , & testerConfig {layers : 12 , maxDiffLayers : 4 , journalDir : journalDir })
840800 defer tester .release ()
841801
842802 if err := tester .db .Journal (tester .lastHash ()); err != nil {
@@ -875,13 +835,7 @@ func testCorruptedJournal(t *testing.T, journalDir string, modifyFn func(databas
875835// truncating the tail histories. This ensures that the ID of the persistent state
876836// always falls within the range of [oldest-history-id, latest-history-id].
877837func TestTailTruncateHistory (t * testing.T ) {
878- // Redefine the diff layer depth allowance for faster testing.
879- maxDiffLayers = 4
880- defer func () {
881- maxDiffLayers = 128
882- }()
883-
884- tester := newTester (t , & testerConfig {layers : 12 , stateHistory : 10 })
838+ tester := newTester (t , & testerConfig {layers : 12 , maxDiffLayers : 4 , stateHistory : 10 })
885839 defer tester .release ()
886840
887841 tester .db .Close ()
@@ -919,17 +873,13 @@ func copyStorages(set map[common.Hash]map[common.Hash][]byte) map[common.Hash]ma
919873}
920874
921875func TestDatabaseIndexRecovery (t * testing.T ) {
922- maxDiffLayers = 4
923- defer func () {
924- maxDiffLayers = 128
925- }()
926-
927876 //log.SetDefault(log.NewLogger(log.NewTerminalHandlerWithLevel(os.Stderr, log.LevelDebug, true)))
928877 writeBuffer := 512 * 1024
929878 config := & testerConfig {
930- layers : 64 ,
931- enableIndex : true ,
932- writeBuffer : & writeBuffer ,
879+ layers : 64 ,
880+ maxDiffLayers : 4 ,
881+ enableIndex : true ,
882+ writeBuffer : & writeBuffer ,
933883 }
934884 env := newTester (t , config )
935885 defer env .release ()
0 commit comments