It would be nice if we could test the inner workings of the rendering pipeline to some degree. From a cursory glance it doesn't appear that much of the guts of nannou were tested all that extensively.
For winit I propose something like this:
winit events generate our own version of an Event enum (unless it's trivial to generate the winitevents ourselves)
Immediately after receiving these events they're put onto a channel (event queue)
The actual work of the event system happens when these events are pulled off of the queue
This allows us to generate sequences of these events ourselves to potentially simulate the system deterministically
This may also allow us to do some property testing
For drawing I propose something like this:
User commands like draw generate a Command enum
Each of these enums gets added to an internal queue
Once the user calls submit the queue is processed
This allows us to do something similar to what is mentioned above
Hard to say much more about what this should look like given that I don't have much insight into the inner workings of the crate yet.
It would be nice if we could test the inner workings of the rendering pipeline to some degree. From a cursory glance it doesn't appear that much of the guts of
nannou
were tested all that extensively.For
winit
I propose something like this:winit
events generate our own version of anEvent
enum (unless it's trivial to generate thewinit
events ourselves)For drawing I propose something like this:
draw
generate aCommand
enumsubmit
the queue is processedHard to say much more about what this should look like given that I don't have much insight into the inner workings of the crate yet.