@@ -424,10 +424,7 @@ mod tests {
424424        machine:: { new_machine_with_builtin,  Machine } , 
425425        parameters:: consensus:: TRANSACTION_DEFAULT_EPOCH_BOUND , 
426426        state:: { State ,  Substate } , 
427-         storage:: { 
428-             new_storage_manager_for_testing,  tests:: FakeStateManager , 
429-             StorageManager , 
430-         } , 
427+         storage:: { new_storage_manager_for_testing,  tests:: FakeStateManager } , 
431428        test_helpers:: get_state_for_genesis_write, 
432429        vm:: { 
433430            CallType ,  Context  as  ContextTrait ,  ContractCreateResult , 
@@ -464,9 +461,12 @@ mod tests {
464461        } 
465462    } 
466463
464+     // storage_manager is apparently unused but it must be held to keep the 
465+     // database directory. 
466+     #[ allow( unused) ]  
467467    struct  TestSetup  { 
468-         storage_manager :  Option < Box < FakeStateManager > > , 
469-         state :  Option < State > , 
468+         storage_manager :  FakeStateManager , 
469+         state :  State , 
470470        machine :  Machine , 
471471        internal_contract_map :  InternalContractMap , 
472472        spec :  Spec , 
@@ -475,36 +475,25 @@ mod tests {
475475    } 
476476
477477    impl  TestSetup  { 
478-         fn  init_state ( & mut  self ,  storage_manager :  & ' static  StorageManager )  { 
479-             self . state  = Some ( get_state_for_genesis_write ( storage_manager) ) ; 
480-         } 
481- 
482478        fn  new ( )  -> Self  { 
483-             let  storage_manager = Box :: new ( new_storage_manager_for_testing ( ) ) ; 
479+             let  storage_manager = new_storage_manager_for_testing ( ) ; 
480+             let  state = get_state_for_genesis_write ( & * storage_manager) ; 
484481            let  machine = new_machine_with_builtin ( Default :: default ( ) ) ; 
485482            let  env = get_test_env ( ) ; 
486483            let  spec = machine. spec ( env. number ) ; 
487484            let  internal_contract_map = InternalContractMap :: new ( ) ; 
488485
489486            let  mut  setup = Self  { 
490-                 storage_manager :   None , 
491-                 state :   None , 
487+                 storage_manager, 
488+                 state, 
492489                machine, 
493490                internal_contract_map, 
494491                spec, 
495492                substate :  Substate :: new ( ) , 
496493                env, 
497494            } ; 
498-             setup. storage_manager  = Some ( storage_manager) ; 
499-             setup. init_state ( unsafe  { 
500-                 & * ( & * * setup. storage_manager . as_ref ( ) . unwrap ( ) . as_ref ( ) 
501-                     as  * const  StorageManager ) 
502-             } ) ; 
503- 
504495            setup
505496                . state 
506-                 . as_mut ( ) 
507-                 . unwrap ( ) 
508497                . init_code ( & Address :: zero ( ) ,  vec ! [ ] ,  Address :: zero ( ) ) 
509498                . ok ( ) ; 
510499
@@ -515,7 +504,7 @@ mod tests {
515504    #[ test]  
516505    fn  can_be_created ( )  { 
517506        let  mut  setup = TestSetup :: new ( ) ; 
518-         let  state = & mut  setup. state . unwrap ( ) ; 
507+         let  state = & mut  setup. state ; 
519508        let  origin = get_test_origin ( ) ; 
520509
521510        let  ctx = Context :: new ( 
@@ -538,7 +527,7 @@ mod tests {
538527    #[ test]  
539528    fn  can_return_block_hash_no_env ( )  { 
540529        let  mut  setup = TestSetup :: new ( ) ; 
541-         let  state = & mut  setup. state . unwrap ( ) ; 
530+         let  state = & mut  setup. state ; 
542531        let  origin = get_test_origin ( ) ; 
543532
544533        let  mut  ctx = Context :: new ( 
@@ -580,7 +569,7 @@ mod tests {
580569    //            last_hashes.push(test_hash.clone()); 
581570    //            env.last_hashes = Arc::new(last_hashes); 
582571    //        } 
583-     //        let state = &mut setup.state.unwrap() ; 
572+     //        let state = &mut setup.state; 
584573    //        let origin = get_test_origin(); 
585574    // 
586575    //        let mut ctx = Context::new( 
@@ -610,7 +599,7 @@ mod tests {
610599    #[ should_panic]  
611600    fn  can_call_fail_empty ( )  { 
612601        let  mut  setup = TestSetup :: new ( ) ; 
613-         let  state = & mut  setup. state . unwrap ( ) ; 
602+         let  state = & mut  setup. state ; 
614603        let  origin = get_test_origin ( ) ; 
615604
616605        let  mut  ctx = Context :: new ( 
@@ -658,7 +647,7 @@ mod tests {
658647        . unwrap( ) ] ; 
659648
660649        let  mut  setup = TestSetup :: new ( ) ; 
661-         let  state = & mut  setup. state . unwrap ( ) ; 
650+         let  state = & mut  setup. state ; 
662651        let  origin = get_test_origin ( ) ; 
663652
664653        { 
@@ -687,7 +676,7 @@ mod tests {
687676        refund_account. set_user_account_type_bits ( ) ; 
688677
689678        let  mut  setup = TestSetup :: new ( ) ; 
690-         let  state = & mut  setup. state . unwrap ( ) ; 
679+         let  state = & mut  setup. state ; 
691680        let  mut  origin = get_test_origin ( ) ; 
692681
693682        let  mut  contract_address = Address :: zero ( ) ; 
@@ -731,7 +720,7 @@ mod tests {
731720        use  std:: str:: FromStr ; 
732721
733722        let  mut  setup = TestSetup :: new ( ) ; 
734-         let  state = & mut  setup. state . unwrap ( ) ; 
723+         let  state = & mut  setup. state ; 
735724        let  origin = get_test_origin ( ) ; 
736725
737726        let  address = { 
@@ -777,7 +766,7 @@ mod tests {
777766        use  std:: str:: FromStr ; 
778767
779768        let  mut  setup = TestSetup :: new ( ) ; 
780-         let  state = & mut  setup. state . unwrap ( ) ; 
769+         let  state = & mut  setup. state ; 
781770        let  origin = get_test_origin ( ) ; 
782771
783772        let  address = { 
0 commit comments