Draft
Conversation
The actual test part of the test is fairly basic, but the logging serves as a somewhat more advanced test.
… more complicated The goal is going to be to have separate "logger" classes to go with each test, serving as a "real-world" use case for the features being tested. Also made this non-blocking logger support asynchronous logging, to make it even harder to run. Probably going to work in separate tests for running as sync and async, but for now I've just got it set to run async.
…acros to validate returns.
Need to copy log result, otherwise it can change on the fly.
A far more simplistic logging backend, where blocking IO saves us from needing to mess with epolls, and we don't need to deal with the various errors coming from incomplete connections or messages.
Now the loggers are actually relevant to the tests. The "first" round of tests runs with no logging backend, perfect for ensuring basic behavior works. The second round runs with the blocking sockets logging backend, third round with the non-blocking sync logging, and finally the last round uses non-blocking async logging.
Didn't cause issues too often on PS4, but was an issue that could occur.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This homebrew uses a variety of socket-related behaviors to visually test how sockets are functioning.
The primary test code is a basic test of non-blocking socket communication, and I've baked in a couple socket-based logging backends to ensure multiple sockets can communicate simultaneously, and give a visual indicator of sockets functioning.
I've run these tests on a PS4 with no internet, and they run to completion without logging any errors.
I plan to continue increasing the scope of these tests over time, so I've marked this as a draft for now.