Commit Graph

15 Commits

Author SHA1 Message Date
joe pribele
db7a692cc7 second attempt to fix for performance problem when converting arrays of TObjectPtr to UObject*
changed the access tracking to a bulk operation api to allow for single calls instead of O(n) calls
#preflight 63fe5fc7ac6c61e2b553e9a9

[CL 24449378 by joe pribele in ue5-main branch]
2023-02-28 15:26:26 -05:00
joe pribele
6d1d492c29 [Backout] - CL24432584
#fyi joe.pribele
Original CL Desc
-----------------------------------------------------------------
fix for performance problem when converting arrays of TObjectPtr to UObject*
changed the access tracking to a bulk operation api to allow for single calls instead of O(n) calls
#preflight 63fd1de9f43e53f6811a37af

[CL 24436160 by joe pribele in ue5-main branch]
2023-02-27 19:54:50 -05:00
joe pribele
bcc680cfa3 fix for performance problem when converting arrays of TObjectPtr to UObject*
changed the access tracking to a bulk operation api to allow for single calls instead of O(n) calls
#preflight 63fd1de9f43e53f6811a37af

[CL 24432584 by joe pribele in ue5-main branch]
2023-02-27 16:37:45 -05:00
joe pribele
e39d3ce7ef changed ObjectHandleTracking to use Functions instead of delegates as the performance of delegate is poor
https://p4-swarm.epicgames.net/reviews/23751084

#rb zousar.shaker
#preflight 63c9ae14d45afa2a8fc37d9d

[CL 23781117 by joe pribele in ue5-main branch]
2023-01-19 16:34:29 -05:00
joe pribele
eb2bb506e7 code cleanup of ObjectHandle
made ObjectPathId to private
trimmed down the public API as much as possible

https://p4-swarm.epicgames.net/reviews/23658342

#rb zousar.shaker
#preflight 63c5c8922a6acaf1625fcf25

[CL 23734208 by joe pribele in ue5-main branch]
2023-01-16 19:20:47 -05:00
joe pribele
cffacc0be5 support for TObjectPtr handling renames and GetTypeHash(TObjectPtr) no long has to resolve
GetTypeHash will create a packaged object ref for hashing if the class is defined as lazy load otherwise raw pointer is hashed
a map was added for moved objects and ObjectPathId can be a WeakObjectPtr
the map allows UObjects to be mapped back to packed object refs

#rb zousar.shaker
https://p4-swarm.epicgames.net/reviews/23356491
#preflight 63b5de641c35d1cbdbccecf7
#preflight 63b70406e26e31879b8aa6d3

[CL 23589497 by joe pribele in ue5-main branch]
2023-01-05 12:27:16 -05:00
joe pribele
0f45c0a9d5 Undo //UE5/Main/Engine/... changelist 23416765
#preflight 638fed855c5308d18c157af0

[CL 23423019 by joe pribele in ue5-main branch]
2022-12-06 20:58:56 -05:00
joe pribele
115c3e1a0e support for TObjectPtr handling renames and GetTypeHash(TObjectPtr) no long has to resolve
GetTypeHash will create a packaged object ref for hashing if the class is defined as lazy load otherwise raw pointer is hashed
a map was added for moved objects and ObjectPathId can be a WeakObjectPtr
the map allows UObjects to be mapped back to packed object refs
#preflight 638fad1b5624e6da5e166024

[CL 23416765 by joe pribele in ue5-main branch]
2022-12-06 16:27:20 -05:00
nick darnell
42c12e3776 Core - Adding support for getting the PathName from a ObjectPtr without resolving the Object*.
Core - Refactoring the Object Handle event callbacks so that we can hook and unhook them with delegates/delegatehandles.
Core - Adding support for detecting loads via object handles as a new event distinct from resolution callback.
Core - Expanding the utility functions on FObjectRef so that we can resolve it in a myraid of fashions to get the path, the class path, the full path and the export path.

[REVIEW] [at]Zousar.Shaker, [at]Joe.Pribele

[CL 22063982 by nick darnell in ue5-main branch]
2022-09-16 20:26:12 -04:00
David Harvey
910086f603 add missing include
#rb trivial
#jira none
#rnx
#preflight 6274db228d32cd80d8d43998

[CL 20073359 by David Harvey in ue5-main branch]
2022-05-06 04:29:17 -04:00
chris constantinescu
28111d40fc Redundancy cleanup in UBT Low Level Tests:
- test-specific targets and modules are constructed by RulesAssembly which removes a lot of spaghetti code
- no more excluding the Tests folder by default which is guaranteed to mislead users #fyi Jon.Nabozny
- test compilation in Tests is controlled through WITH_LOW_LEVEL_TESTS
- preparation code for switching tests between Catch2 / TestAutomation Fmwk

Nightly LLT PF 6260431391376845adeb4c40

#rnx
#preflight 62602d50dd47b4ad2173c30b

[CL 19834665 by chris constantinescu in ue5-main branch]
2022-04-20 14:24:59 -04:00
chris constantinescu
054a91e666 Introduce global setup for the LowLevelTests project.
Motivation: CoreUObject, taskgraph and threads are global constructs and need to be initialized as such and are expensive to setup/teardown before/after multiple single tests.

Introduced --global-setup and --no-global-setup to control execution of global test setup.
Unit tests that rely heavily on mocking and are designed to run without any global context should use --no-global-setup

Other: Removed CoreTestFixture and applied minor fixes wherever things didn't make sense.
One particular CoreUObject test was converted but had always failed to run on non-desktop platforms. It needs to be addressed ASAP.

#preflight 625873c7e304a95465fc148e
#rb Devin.Doucette, Zousar.Shaker

[CL 19769262 by chris constantinescu in ue5-main branch]
2022-04-15 07:21:27 -04:00
chris constantinescu
1ad862400a CoreUObject test conversion damage control.
Correcting tests commited in CL 19498448 that were converted and tagged [Smoke] but weren't marked with EAUtomationTestFlags::SmokeFilter in the original source.
EditorBulkDataTests was left unconverted, moved back to original Private/Tests/Serialization folder
ObjectPtrTest -> CoreUObject::TObjectPtr::Soft Object Path fails at line 197 on non-desktop platforms but it didn't failed before the conversion.
#preflight 624eee0a2c01f9c6da9446e0
#rb Devin.Doucette

[CL 19668909 by chris constantinescu in ue5-main branch]
2022-04-07 10:34:55 -04:00
mark lintott
bc9b168688 Add new Unit Tests
#rb Chris.Constantinescu
#preflight 62458f77292f228e09013681

[CL 19571202 by mark lintott in ue5-main branch]
2022-03-31 07:45:37 -04:00
chris constantinescu
ae281656f2 Tests converted from 18848115 made to work multi-platform.
Not all were converted because they were designed for packaged applications whereas low level tests are designed to run as "native" non-packaged applications.
- reporting support for non-desktop platforms, for the moment Catch2 report type "console" is used that is sent to a .out file
- most number of tests possible running multi platform, slower tests excluded on incremental builds
- slow tests are moved to run on the monolithic build
- Catch2 report failure event listener such that Horde detects them as build errors. Must add new Horde matcher for Catch2 failures

#rb Mark.Lintott
#preflight 623c8de389625f0612dabd64

[CL 19498448 by chris constantinescu in ue5-main branch]
2022-03-24 13:28:25 -04:00