2,483 Commits over 608 Days - 0.17cph!
Merge: from projectileweaponmod_allocs
- Optim: get rid of missed alloc in ProjectileWeaponMod aggregation calls
Tests: inspected snapshot taken while shooting
Optim: avoid IEnumerable Enumerator allocation
Not as generic, but saves an alloc
Tests: took a snapshot while shooting
Merge: from buildingprivlidge_invoke_allocs
- Optim: BuildingPrivlidge.AddDelayedUpdate caches it's invoke
Tests: none, trivial change
Optim: cache invoking callback in BuildingPrivlidge.AddDelayedUpdate
Tests: none, trivial change
Remerge of
147094 - Merge: from projectileweaponmod_allocs
Merge: from projectileweaponmod_allocs
- Optim: removed allocations related to ProjectileWeaponMod.Sum/Mult/Min/Max/Avg and their callers
Tests: used a modded AK to kill a scientist
Clean: ProjectileWeaponMod.Mult - use 1 as hardcoded default value
They've been manually specified as 1 everywhere, seems a bit redundant
Tests: compiles
Optim: cache all selectors that are used in mod value aggregations
Tests: got shot by a scientist. killed them with a fully modded ak
Optim: reimplement projectile mod aggregators to be alloc free
- added outstanding Avg, Min and Max helpers
- all helpers are now generic, to support the 2 overloads we have
- ripped out GetMods to avoid accidental reintroduction of allocs
Still need to fix remaining dynamic callback creation
Tests: got shot by a scientist
Clean: simplify ProjectileWeaponMod code
- get rid of 0 as default arg
- mini bugfix: hook up bypassModToggles in one of Sum overloads
- added non-GC mul and sum, but not plugged in yet
Tests: compiles
▉▉▋▄▋▅▌ ▉█▊█ ▌▊▆█▅▋▍▇▇▉▌▌▆▅▄▋▅▋▋▌▅▆▌▇▉▍▋▉▍▇ ▊▇█▄▆█ ▅▌▄ ▉▋▄▉ █▋▋█ ▍▋█▊▋▊ ▌▇▊▌▌▌▅▄█ ▇▍ ▍█▇▅▌▉▉▇ ▊▅▄ ▅▋▇▊▌█▌▌█▋▌▊▊▋▊▊▇▍▌▉▇▊▉▉▇▇▆ ▄▆▍▆▄▉▋▅▌█▆▄▋▅▉ ▌▆▅▋▋█ ▅▌ ▅█▌▉▊▉ ▅▌▆▉ ▆▋▊▉█▋ ▅▌▊▌▅▅▍▅▇ ▋▋▆▇▉▉▌▍
▄▆▄▌▇▆█▄ ▆▆▋▄▍▊▋ █▇▇▆▍█▉▋▍▄▇▌▉█▍█▍▌▌▄▉▄▄█▇▊▇ ▋▇▉█▅ ▅▋▌ █▇▆▇ ▆ █ ▉▄▌▍ █▌▉ ▇▌▌ ▆▅▊ ▆▇▆▍ ▍▇▅▋▇▇▊▆▊▌▉█▅▊▉▉▉▍▍▆█▍▋▋█▉▋ ▅▍▉▉█▅ ▇▇ ▍▅▋▆▋▅ ▋▋▍▄▍▊▅▋▊ ▅▆▇▄█▍▉ ▇▇▋▊ █▆▅▇▄▆ ▋▆▉▇▌▊▆▄▋ ▅▋ ▋▉▌▉█▇▇▆▅▅▌ ▇▇▌▇█▄▋█▊▊▍ ▊▍▍▅▆▆▉▅▍▋▌▌▉▌▍▅▍▍▋▅▍▄▍▍▆▉█ ▆▅▆▇ ▉ ▅▌▌▍▊▇▄▄▊▍ ▆▅▉▉ ▆▉ ▉▍▌▉▌▉ ▄▉▍▍ ▍▊▌▇▍▊▇▆▊▋▍▍▉▉▌▊█▍▌ ▋▇▊▆▍▊ ▆█▋ ▊▉▌ ▇▍▊█▇▆ ▇▄ ▉▋▆▌▉▉ ▉█▆▊ ▆▄▄▋▆▊ ▆█▍▊▋▅▉▊▄ ▍▊▄▌▅█▇▅▍ ▆▄▅▋▋▇▅ ▋▅▅ █▉▋▊ ▋▄ ▅▍▇▊▇▇▅ ▊▌▊ ▍▉▉▅ ▆
Clean(tests): add messages to new checks to know which permutation and player diverged
Tests: ran the modified test
▌ ▋▋▊▆▍█ █▊▉▇█▄▊ █▇▅▇▉▋▉█▌▋▅▋▍▉█▉▋▆ ▅▄▍▆▄▆█ ▍▇ ▆▅▄▆ ▌▆ ▋▌▄▄▆▅█ ██▍▍██ ▄▌▄▅▌ ▅▆▍▋ ▅▆ ▌▍ ▊█ ▇▆▋▉▇█▅▋▇██▄▋▊█▆▅▌▍▌▉▆ ▄▆▅▊▇ ▄▋▋▆▆▉▄ ▅▆▆█▅▄
Update(tests): TestIsFlyingConsistency now also compares computed flying states
- Reset flying state between test runs
Tests: ran tests, level 1 passes but level 3 now fails
Bugfix(tests): make AntiHack tests spawn players with colliders
Tests: ran all AH tests, all pass except for 1 already known
Update(tests): rewrite TestIsFlyingConsistency to better mix various players
Need to figure out why playerr-on-player test doesn't detect player, will do next
Tests: ran unit test, detects an issue on level 1
Update: set UsePlayerUpdateJobs 2 as default
- codegen
Tests: none, trivial change
Clean(tests): fix formatting inside Test.AntiHack.cs broken by auto conflict resolution
Tests: compiles
Clean: simplify sync from flying cache back to players
Tests: none, trivial change
Clean: annotate AreFlying jobs with context comments
- got rid of ref and added ReadOnly in a couple places
Tests: compiles
Merge: from reorganize_unit_tests
- Buildfix
Tests: switched through all modes
Buildfix(tests): add a missing SERVER macro guard
Tests: clicked through all modes - all compile
Merge: from reorganize_unit_tests
- Clean(tests): reorganize unit test structure - all test classes are either in Tests.Unit or Tests.Perf or both namespaces
- Bugfix(tests): patch up a bunch of test classes so that they work properly
Tests: ran all unit tests. some spurriously fail as part of big batch, but individual test classes pass.
Bugfix(tests): patch up ServerOcclusionTests
- replace out-of-date occlusion cache with a new one based on Craggy
- update CanSee and CantSee chunk pairs
- add missing initialization
Tests: ran ServerOcclusion unit tests - they pass
Bugfix(tests): CompanionServerTests - switch to persistent ClanManager
- ClanManagedDB now also lives in a temp folder for tests
- some tests now drain any backlogged traffic on the test socket
Tests: all CompanionServerTests unit tests pass consistently (finally)
Bugfix(tests): CompanionServerTests - use persistent RelationshipManager
- house RelationshipManagerDB in a temp folder
Tests: ran CompanionServerTests unit tests, 1 sporadically fails
Bugfix(tests): CompanionServerTests - setup player lookup map
Broke since one of our optims way back.
Tests: ran CompanionServerTests - now 2 failing
Bugfix(tests): CompanionServerTests - use unique persistence database per test run
If a test goes wrong, the cleanup doesn't happen, which borks all the subsequent tests in a run
Tests: ran CompanionServerTests - 16 pass, 3 fail
Bugfix(tests): rewrite GrowableGenesTests no allocs tests to use ServerProfiler new api
Think my old hacky solution finally broke
Tests: ran GrowableGenesTests test - it passes
Bugfix(tests): workaround "don't add editor components" safety check when running editor unit tests
Tests: ran GameTraceTests unit tests - they now all pass
Bugfix(tests): fix missing InvokeHandler in GamePhysicsTests
Tests: ran GamePhysicsTests unit tests, now all pass
Bugfix(tests): ProjectileTests now pass
- Skip god mode overlay setting for local player in tests
- explicitly enable main shield collider after spawning
Tests: ran ProjectileTests unit tests
Bugfix(tests): fixup ServerProfiler tests that are sensitive to type hierarchies
- release binaries from a496e80e
Tests: ran ServerProfilerTests
Buildfix(tests): all modes compile
Tests: clicked through all modes
Clean(tests): rest of Assembly-CSharp-Editor.dll tests restructure
Just gotta make sure all platforms build and check if unit tests pass
Tests: none
Merge: from useplayerupdatejobs3
- Bugfixes for dynamically enabling Jobs 3 mode
Tests: unit tests + switched Jobs 2 -> 3 on Craggy in editor
Bugfix: ensure AntiHack states are properly expanded when going from Jobs 2 to Jobs 3
Tests: sanity test on craggy in editor, switched Jobs 2 to 3
Clean: one more unnecessary playerCache passing
Tests: compiles
Bugfix: ensure SpeedhackStates and FlyhackStates have sufficient storage
- remove playerCache propagation where we already pass a ReadOnlySpan
Tests: ran unit tests
Clean(tests): 30% restructure of Assembly-CSharp-Editor.dll tests
Tests: none, will rerun once all moved
Clean(tests): restructure Facepunch.System.Tests.dll tests
- removed FPTask and associated tests (was experimental code)
Tests: ran unit tests
Clean: restructure Rust.Global.Tests.dll tests
Tests: ran unit tests. some OBBTests sporadically fail, but pass on 2nd run - think same as before
Clean(tests): rename DummyServer -> TestServer
Tests: compiles
Clean(tests): consolidate various test entities/systems
Tests: none, going to happen later
Clean(tests): Move test utilities to Tests and Tests.Perf namespaces
- replaced manual measurement loops with Test.Perf.MeasureAndPrint
Tests: none, leaving till later