Full changes:
- Fixed error reading the minor engine version, which broke the netcode in the transition from 4.9 to 4.10
- Added '-UnitTestClientDebug' commandline parameter, which launches unit test clients with a valid render interface, to allow interaction when debugging
- Added a 'MaxAutoCloseCount' config variable, to limit the number of times a unit test can be auto-aborted, before the unit test tool refuses to run it again
- Fixed rare infinite recursion in unit test log window search
- Added unit test failure condition, when trying to send an RPC when the net buffers are saturated
- Increased the wait time to 2 minutes before auto-aborting, when a unit test crashes, due to long wait time for crash stack dump sometimes
- Added better notification of unit tests aborts, in the status window
- Prevent net connections timing out in developer mode
- Updated comments to use VAX hashtags
[CL 2634646 by John Barrett in Main branch]
- Added class for allowing reflection of UObjects/UStructs/UProperties/etc., so that properties can be referenced dynamically by string, instead of statically
- Allows game code to be referenced without direct linking
- Allows unit tests to break without blocking compiles, allows easier backwards compatability, and easier archiving of old unit tests
- Very useful for quick debug code; may tie it into the console with autocomplete at some stage
- Example:
FGuid* EntryItemGuidRef = (FGuid*)(void*)((FVMReflection(UnitPC.Get())->*"WorldInventory"->*"Inventory"->*ItemsPropName)["FFortItemEntry"][0]->*"ItemGuid")["FGuid"];
- Added a new stack tracing manager, which can be used by unit tests through GTraceManager, or through the whole engine with the StackTrace console command (see UnitTestManager.cpp for full command list)
- Allows conditional/filtered stack traces to be inserted anywhere into the code (categorized by name), for debugging purposes
- Once-off stack trace example:
GEngine->Exec(NULL, TEXT("StackTrace TraceName"));
- Multiple/accumulated stack trace examples:
GEngine->Exec(NULL, TEXT("StackTrace TraceName Add -Log"));
GEngine->Exec(NULL, TEXT("StackTrace TraceName Dump"));
- Added a log hook for the stack tracing manager, and a LogTrace command, which allows stack traces to be dumped whenever a specific log is encountered (see UnitTestManager.cpp for full command list)
- Example, for debugging the cause of a disconnect:
"LogTrace AddPartial UNetConnection::Close: Name: IpConnection_"
- Added -UnitTestCap=x commandline parameter, to limit the maximum number of unit tests that can run at once
- Added AllowedClientActors/AllowedClientRPCs to ClientUnitTest, to allow better whitelisting of accepted actors/RPC's
- Fixed many broken unit tests
- Adjusted actor replication blocking hook, to allow blocking of all instances of actor replication, instead of just actor channels
- Made console command results, auto-focus the Console tab, if the current tab won't display the results
- Fixed blocking automation testing, when the current game project doesn't support unit tests (doesn't have a unit test environment setup)
- Disable recursive killing of unit test child processes, while TerminateProc has a bug that kills all killable Windows processes
- Updated crash callstack detection
[CL 2565239 by John Barrett in Main branch]
#UE4 - const FUniqueNetId / FOnlinePartyId changes
--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2538253 by Josh.Markiewicz on 2015/05/05 17:39:19.
[CL 2540329 by Josh Markiewicz in Main branch]