@@ -532,38 +532,41 @@ mod test {
532532 Ok ( DatabaseLogger :: open ( path) )
533533 }
534534
535- /// An `InstanceEnv` requires `ModuleSubscriptions`
536- fn subscription_actor ( relational_db : Arc < RelationalDB > ) -> ModuleSubscriptions {
537- ModuleSubscriptions :: new ( relational_db, <_ >:: default ( ) , Identity :: ZERO )
538- }
539-
540535 /// An `InstanceEnv` requires a `ReplicaContext`.
541536 /// For our purposes this is just a wrapper for `RelationalDB`.
542- fn replica_ctx ( relational_db : Arc < RelationalDB > ) -> Result < ReplicaContext > {
543- Ok ( ReplicaContext {
544- database : Database {
545- id : 0 ,
546- database_identity : Identity :: ZERO ,
547- owner_identity : Identity :: ZERO ,
548- host_type : HostType :: Wasm ,
549- initial_program : Hash :: ZERO ,
537+ fn replica_ctx ( relational_db : Arc < RelationalDB > ) -> Result < ( ReplicaContext , tokio:: runtime:: Runtime ) > {
538+ let ( subs, runtime) = ModuleSubscriptions :: for_test_new_runtime ( relational_db. clone ( ) ) ;
539+ Ok ( (
540+ ReplicaContext {
541+ database : Database {
542+ id : 0 ,
543+ database_identity : Identity :: ZERO ,
544+ owner_identity : Identity :: ZERO ,
545+ host_type : HostType :: Wasm ,
546+ initial_program : Hash :: ZERO ,
547+ } ,
548+ replica_id : 0 ,
549+ logger : Arc :: new ( temp_logger ( ) ?) ,
550+ subscriptions : subs,
551+ relational_db,
550552 } ,
551- replica_id : 0 ,
552- logger : Arc :: new ( temp_logger ( ) ?) ,
553- subscriptions : subscription_actor ( relational_db. clone ( ) ) ,
554- relational_db,
555- } )
553+ runtime,
554+ ) )
556555 }
557556
558557 /// An `InstanceEnv` used for testing the database syscalls.
559- fn instance_env ( db : Arc < RelationalDB > ) -> Result < InstanceEnv > {
558+ fn instance_env ( db : Arc < RelationalDB > ) -> Result < ( InstanceEnv , tokio :: runtime :: Runtime ) > {
560559 let ( scheduler, _) = Scheduler :: open ( db. clone ( ) ) ;
561- Ok ( InstanceEnv {
562- replica_ctx : Arc :: new ( replica_ctx ( db) ?) ,
563- scheduler,
564- tx : TxSlot :: default ( ) ,
565- start_time : Timestamp :: now ( ) ,
566- } )
560+ let ( replica_context, runtime) = replica_ctx ( db) ?;
561+ Ok ( (
562+ InstanceEnv {
563+ replica_ctx : Arc :: new ( replica_context) ,
564+ scheduler,
565+ tx : TxSlot :: default ( ) ,
566+ start_time : Timestamp :: now ( ) ,
567+ } ,
568+ runtime,
569+ ) )
567570 }
568571
569572 /// An in-memory `RelationalDB` for testing.
@@ -662,7 +665,7 @@ mod test {
662665 #[ test]
663666 fn table_scan_metrics ( ) -> Result < ( ) > {
664667 let db = relational_db ( ) ?;
665- let env = instance_env ( db. clone ( ) ) ?;
668+ let ( env, _runtime ) = instance_env ( db. clone ( ) ) ?;
666669
667670 let ( table_id, _) = create_table_with_index ( & db) ?;
668671
@@ -694,7 +697,7 @@ mod test {
694697 #[ test]
695698 fn index_scan_metrics ( ) -> Result < ( ) > {
696699 let db = relational_db ( ) ?;
697- let env = instance_env ( db. clone ( ) ) ?;
700+ let ( env, _runtime ) = instance_env ( db. clone ( ) ) ?;
698701
699702 let ( _, index_id) = create_table_with_index ( & db) ?;
700703
@@ -746,7 +749,7 @@ mod test {
746749 #[ test]
747750 fn insert_metrics ( ) -> Result < ( ) > {
748751 let db = relational_db ( ) ?;
749- let env = instance_env ( db. clone ( ) ) ?;
752+ let ( env, _runtime ) = instance_env ( db. clone ( ) ) ?;
750753
751754 let ( table_id, _) = create_table_with_index ( & db) ?;
752755
@@ -783,7 +786,7 @@ mod test {
783786 #[ test]
784787 fn update_metrics ( ) -> Result < ( ) > {
785788 let db = relational_db ( ) ?;
786- let env = instance_env ( db. clone ( ) ) ?;
789+ let ( env, _runtime ) = instance_env ( db. clone ( ) ) ?;
787790
788791 let ( table_id, index_id) = create_table_with_unique_index ( & db) ?;
789792
@@ -810,7 +813,7 @@ mod test {
810813 #[ test]
811814 fn delete_by_index_metrics ( ) -> Result < ( ) > {
812815 let db = relational_db ( ) ?;
813- let env = instance_env ( db. clone ( ) ) ?;
816+ let ( env, _runtime ) = instance_env ( db. clone ( ) ) ?;
814817
815818 let ( _, index_id) = create_table_with_index ( & db) ?;
816819
@@ -838,7 +841,7 @@ mod test {
838841 #[ test]
839842 fn delete_by_value_metrics ( ) -> Result < ( ) > {
840843 let db = relational_db ( ) ?;
841- let env = instance_env ( db. clone ( ) ) ?;
844+ let ( env, _runtime ) = instance_env ( db. clone ( ) ) ?;
842845
843846 let ( table_id, _) = create_table_with_index ( & db) ?;
844847
0 commit comments