branchrust_reboot/main/Pool_Remove_FreeDynamiccancel
21 Commits over 31 Days - 0.03cph!
Bugfix: Close socket properly instead of aborting during test teardown
This is slower, but avoids tripping up the companion server that's polling on data and suddenly gets unexpected remote closure, triggering an exception.
Tests: ran the batch of tests 10 times, no failures
Merge: from main
When testing on main, suddenly discovered that 3rd test batch run would produce an error.
Tests: ran CompanionServerTests multiple times, 2 green batches, 1 red (on teardown) - will fix in next CL
Merge: From Main
Tests: Ran CompanionServerTests couple times, all green
Update: disabling ServerTests to not mislead that they are working
Tests: none, trivial change
Merge: from main
Tests: ran new unit tests - all green
Update: Refactoring code to not need Pool.FreeDynamic
Since there's no more users of Pool.FreeDynamic, removing it as well.
Tests: Ran CompanionServerTests - all green.
Clean: Makign tests available only in CLIENT+SERVER
Also adding assert messages to CompanionServerTests for slightly more clarity
Tests: built all targets in editor - pass. Ran all CompanionServer tests couple times - all green.
Bugfix: Tests now able to run after a play session
- ServerMgr now cleans up players on shutdown in editor
- Tests are able to temp overwrite TerrainTexturing
- Tests disable gameplay analytics
Tests: ran all tests multiple times - all green
Optim: Don't wait full timeout for CompanionServer if it's done
Tests now run 2.5s instead of 12s.
Tests: Ran all tests multiple times - all green
Update: Adding last tests to CompanionServerTests
One of them, TestNexusAuth, doesn't do deep testing since it requires setup of NexusServer, which is incompatible because of DontDestroyOnLoad.
Tests: Ran all unit tests multiple times - all green
Update: Avoiding multiple GameObject instatiation in CompanionServerTests
There's now one testDummy that can be used as a component storage. This allows to have proper "alive" components. This revealed a couple issues (late database cleanup leading to locks, not fully configured clan participation) which I've fixed.
Tests: reran all tests multiple times - all green
Update: Added Subscription-related tests to CompanionServerTests
2 more down, 2 to go.
Tests: ran all tests multiple times - all green
Update: Adding EntityInfo related tests to CompanionServerTests.cs
2 down, 4 to go.
Tests: ran all unit tests multiple times - all green
Update: Adding Camera-related tests to CompanionServerTests.cs
This adds 3 more (total 13, 6 to go). These tests don't setup an environment to validate the full flow, but they do prove that request handling is correct.
Tests: ran all tests multipel times - they pass.
Update: Adding Clat-related tests to CompanionServerTests
This adds 4 mote tests. Added test-related funcitonality to ClanManager to init/deinit.
Tests: ran new unit tests individually, together with rest, multiple times - all pass.
Update: Adding Team related tests to CompanionServerTests
This adds 4 new tests. Expanded RelationshipManager access for testing, also allowing skipping of sending updates on team changes (as it makes tracking responses harder). Lastly, removed an extra update send for player joining a team as it was already sent in MarkDirty.
Tests: ran new unit tests repeatedly, they pass
Bugfix: RelationshipManager.PlayerTeam implements IPooled
My new batch of tests revealed that PlayerTeam wasn't properly cleaned up when returned to the pool, causing test failures on repeated runs(teams still had members in them after disbanding).
Tests: ran new tests (submitted in next CL), they pass
Update: consolidating CompanionServerTests logic
Now that patterns are relatively clear we can simplify logic. This'll make adding the remaining 19 tests faster/easier.
Tests: ran new tests
New: Starting set of CompanionServerTests
A set of functional tests that validate operation of CompanionServer (Rust+). This only covers 3 request types out of 19, but proves that this should work in principle. Next up is adding the remaining tests and making it safe in regards to server-client modes.
Tests: Ran new unit tests - they pass.
New: Adding Server unit tests foundation
Sadly, they're not fully functional now - the client and server connect to each other, but the full client handshake doesn't happen. Will chase this up after I setup companion server tests (what I originally intended to test).
Tests: none, as I know it's borked