emichael / dslabs

Distributed Systems Labs and Framework
https://ellismichael.com/dslabs/
1.23k stars 339 forks source link

Incorporate SearchSettings in the new debugger #29

Closed gnanabite closed 2 years ago

gnanabite commented 2 years ago

As described in https://github.com/emichael/dslabs/pull/20#issuecomment-1039365182, search tests often have settings to prevent some traces from being explored (e.g., by prunes, by declaring links/nodes inactive, by not delivering timers for some nodes, etc.). This change enforces the SearchSettings specified in a search test to help students to debug the search-based liveness tests.

This change is done in 3 parts.

NOTES:

TESTS: manually started the debugger from various search test failures and confirmed that the invariant pane and actions behave correctly. I aimed to check the following:

emichael commented 2 years ago

One other thing that would be nice to have: optionally ignoring all of the restrictions on message/timer delivery via menu option. I think given the current state of things you would just have to call updateState and then pass null to all of the node state panels.

emichael commented 2 years ago

Okay, once all of my review comments are addressed and the menu option to ignore event delivery restrictions is added, I think we're good to go.

About the menu item: this should probably be grouped w/ "View delivered messages" under a "Settings " menu? Perhaps "View delivered messages" should be "Show delivered messages" then?

gnanabite commented 2 years ago

Thanks for reviewing! I think all comments are addressed, and the menu option is added in https://github.com/emichael/dslabs/pull/29/commits/27414f011aa78f5d2b942fbecfa77fee0e20371f.

emichael commented 2 years ago

LGTM!

I just tweaked the text of the new menu item and hid it if there aren't any search settings. After seeing it, I don't love the eye icon, but I also can't think of a better alternative.