diff --git a/base/src/test/rm_fault/main.cc b/base/src/test/rm_fault/main.cc index ee91ae384..b8adca78d 100644 --- a/base/src/test/rm_fault/main.cc +++ b/base/src/test/rm_fault/main.cc @@ -192,6 +192,8 @@ void main_parent(Dataspace_capability elf_ds) rm.detach((void *)child_virt_addr); } + fault_handler.dissolve(&signal_context); + printf("--- parent role of region-manager fault test finished ---\n"); } diff --git a/os/src/test/signal/main.cc b/os/src/test/signal/main.cc index 9b00ff863..2cb80c406 100644 --- a/os/src/test/signal/main.cc +++ b/os/src/test/signal/main.cc @@ -293,6 +293,8 @@ static void fast_sender_test() if (sender->submit_cnt() != handler->receive_cnt()) throw Test_failed(); + receiver.dissolve(&context_123); + destroy(env()->heap(), sender); destroy(env()->heap(), handler); @@ -378,6 +380,7 @@ static void multiple_handlers_test() } /* cleanup */ + receiver.dissolve(&context_123); destroy(env()->heap(), sender); for (int i = 0; i < NUM_HANDLERS; i++) destroy(env()->heap(), handler[i]); @@ -437,6 +440,7 @@ static void stress_test() if (sender->submit_cnt() != handler->receive_cnt()) throw Test_failed_with_unequal_sent_and_received_signals(); + receiver.dissolve(&context_123); destroy(env()->heap(), sender); destroy(env()->heap(), handler); @@ -480,6 +484,9 @@ static void lazy_receivers_test() printf("returned from wait_for_signal for receiver 1\n"); } + rec_1.dissolve(&rec_context_1); + rec_2.dissolve(&rec_context_2); + printf("TEST %d FINISHED\n", test_cnt); }