52 Commits

Author SHA1 Message Date
dave jones2
feaebd2165 UE-219092 - Warning: Flushing package <path> while it's being preloaded in the same callstack is not possible
Cyclic dependencies between Blueprints that also include a UDS in the mix can create a scenario where we might recursively load a package that we're already loading. Currently, Zen loader warns about this. While technically harmless, it makes the warning somewhat useless if it raises false positives.

The core issue is that preloading a UDS will use FObjectPropertyBase::FindImportedObject to resolve a string that represents a UObject path. In the case of a cycle, RequestPlaceholderValue creates a placeholder object, but it neglects to supply a package index for the import. As a result, ResolveDependencyPlaceholder forces a StaticLoadObject call that triggers the warning. This can be fixed by determining the package index of the corresponding object path in RequestPlaceholderValue, which avoids trying to find the import using StaticLoadObject.

This fix introduces two new API functions:
* FLinkerLoad::FindImport overload that takes a full object path and returns the corresponding package index.
* FPackageName::SplitFullObjectPath overload that returns each subobject in a path.

For this fix, the subobject support isn't necessary. However, FindImport's implementation would be incomplete if it didn't support subobjects. New tests for each function were also added to LowLevelTests. In order to test FLinkerLoad, we also need to compile out the "final" when running the tests. This makes it easier to setup a test harness for strictly testing FindImport functionality.

#jira UE-219092
#rb danny.couture, Francis.Hurteau
#rnx

[CL 35192522 by dave jones2 in ue5-main branch]
2024-07-30 14:50:16 -04:00
chris constantinescu
84bb87d719 Rrestrict test metadata to test mode
Step verified job 66390cb0242b321d4c9d98a6
#jira UE-214088

[CL 33461215 by chris constantinescu in ue5-main branch]
2024-05-06 13:09:50 -04:00
chris constantinescu
5d2d569cb1 Use optional arguments and Extend/Expand pattern for Macros to reduce LLT xml metadata file footprint
.xml metadata files are generated exclusively using TestMode, from values of TestMetadata set from the module class
RunUBT -Mode=Test -GenerateMetadata
To support additional NDA platforms, build modules must be created.
Cleanup unused metadata files from the previous generation system.
#jira UE-195038
#rb Jerome.Delattre

[CL 33373724 by chris constantinescu in ue5-main branch]
2024-05-01 11:35:44 -04:00
chris constantinescu
aaa08cfc45 Correctly set compilation flags for FoundationTests to build with UBT without -Mode=Test
#rb robert.millar
#jira UE-212721

[CL 33081458 by chris constantinescu in ue5-main branch]
2024-04-18 15:17:25 -04:00
chris constantinescu
7c5095a408 LLT Android support
#rb Chris.Babcock, sebastian.lewicki
#jira UE-210332

[CL 32714226 by chris constantinescu in ue5-main branch]
2024-04-03 18:39:56 -04:00
eric renaudhoude
e34f40ba3e ColorManagement: Remaining deprecation of headers & color management module, since they were moved to Core at CL 32299544.
#jira UE-201221
#rb Sebastien.Hillaire
#rnx

[CL 32470542 by eric renaudhoude in ue5-main branch]
2024-03-25 11:04:55 -04:00
nick edwards
179c6c1671 Update StructSerializerTest to LLT, and add Serialization module as a dependency of FoundationTests to include the StructSerializerTest in it.
#tests Ran serialization tests via FoundationTests LLT target and the automation framework
#rb chris.constantinescu

[CL 32369190 by nick edwards in ue5-main branch]
2024-03-20 12:07:31 -04:00
chris constantinescu
56b2fd5e18 Move UE component cleanup logic from TestRunner into proper place (introduced at CL 32031322) and fix refactoring (CL 32031169) on Sony platforms to re-allow unpackaged builds
#jira UE-209196
#rb sebastian.lewicki

[CL 32221092 by chris constantinescu in ue5-main branch]
2024-03-13 14:18:48 -04:00
jonathan bard
cbdc9b3e1c Created MathCore module, a module meant to regroup all math utils that are not generic enough that they should be in Core (in order not to bloat it) or owned by the foundation team :
* Moved directed graph utils from audio to core, in namespace UE::MathCore::Graph
* Renamed Depth/BreadthFirstTraversal to Depth/BreadthFirstNodeTraversal and added Depth/BreadthFirstEdgeTraversal to traverse the graph edges
* Added FindLeaves method to retrieve graph nodes with no children from a starting node

Created MathCoreTests low-level test executable :
* Moved directed graph unit tests there
* Enabled on CIS on all platforms

#tests low-level tests
#rb chris.constantinescu, danny.couture, phil.popp, johan.torp

[CL 31680629 by jonathan bard in ue5-main branch]
2024-02-21 09:41:51 -05:00
chris constantinescu
c594e982a3 Move the FoundationTests suite into their own folder under Source\Programs\LowLevelTests
#jira UE-205180
#rb jonathan.bard, sean.sweeney, sebastian.lewicki

[CL 31007109 by chris constantinescu in ue5-main branch]
2024-01-30 10:29:47 -05:00
eric renaudhoude
eda9a1381c ColorManagement: Convert tests to low-level tests.
#jira UE-202757
#rb chris.constantinescu
#rnx

[CL 30430836 by eric renaudhoude in ue5-main branch]
2023-12-21 12:56:11 -05:00
lorry li
7f221d7240 Fix WebTests Android compile errors.
[REVIEW] [at]stephen.ma [at]chris.constantinescu [at]rafa.lecina
#jira UE-196941
#rb [at]stephen.ma [at]chris.constantinescu [at]rafa.lecina

[CL 28415202 by lorry li in ue5-main branch]
2023-10-03 11:18:54 -04:00
robert millar
8ff1fb466e Build path tree from leaf up to avoid re-checking existence of parent nodes as frequently.
Require callers to strip trailing slashes from input.
Add batch delegates for path add/remove.

#rb matt.peters,ben.zeigler

[CL 27975572 by robert millar in ue5-main branch]
2023-09-18 17:18:48 -04:00
chris constantinescu
e0a64b2e7d Low level tests documentation update to match the public one.
Moved the README into the more appropriate LowLevelTestsRunner module folder.
#jira UE-178204
#rb ue-qa-sdets

[CL 27877607 by chris constantinescu in ue5-main branch]
2023-09-14 10:05:35 -04:00
chris constantinescu
735dba1e66 LLT metadata generation fixes:
- make files readable when (re)generating
- make more platforms non-runnable by default
- adjust binaries path for plugins
- supported platforms are generated from TestMetadata instead of C# attribute

New tests brought to Horde: EventLoop and StateGraph

#rb Jerome.Delattre
#jira UE-192549

[CL 27184032 by chris constantinescu in ue5-main branch]
2023-08-17 16:15:06 -04:00
robert millar
5805d87cef Router object to connect telemetry producers with consumer that can aggregate, filter, format and send telemetry to endpoints.
#rb logan.buchy

[CL 26248327 by robert millar in ue5-main branch]
2023-06-26 19:04:16 -04:00
joe pribele
0a1ccfbbc1 redoing 25858318
moved leak detection and Garbage collection to Plugin Manager
Before unmounting the plugin path, GC is ran, leaked detection for any references objects under the plugin path

#rb Justin.Marcus, Markus.Breyer
https://p4-swarm.epicgames.net/reviews/25611054

[CL 26214355 by joe pribele in ue5-main branch]
2023-06-23 14:22:58 -04:00
joe pribele
d2b78c257c Undo //Fortnite/Main/... changelist 25858318
[CL 25862359 by joe pribele in ue5-main branch]
2023-06-07 19:42:46 -04:00
joe pribele
8543547111 moved leak detection and Garbage collection to Plugin Manager
Before unmounting the plugin path, GC is ran, leaked detection for any references objects under the plugin path

#rb Justin.Marcus, Markus.Breyer
https://p4-swarm.epicgames.net/reviews/25611054

[CL 25858446 by joe pribele in ue5-main branch]
2023-06-07 17:09:53 -04:00
robert millar
76de3dab98 Missing file for lowleveltests
#rb none

[CL 25415993 by robert millar in ue5-main branch]
2023-05-10 16:35:09 -04:00
robert millar
a8278fe991 Optimize PIE soft object path fixups.
- FSoftObjectPath properties report as containing weak object references for serializers.
- Mark PIE ID fixup archive as ArIsObjectReferenceCollector.

#rb francis.hurteau

[CL 25415885 by robert millar in ue5-main branch]
2023-05-10 16:30:59 -04:00
chris constantinescu
e003cfd4a1 Use Gauntlet to run low level tests instead of BG's Spawn, move LowLevelTests.xml to public folder and remove all restricted platform names
#rb Jerome.Delattre
#preflight 6452abfd4d593c0b422b5d9e

[CL 25335483 by chris constantinescu in ue5-main branch]
2023-05-04 11:05:46 -04:00
chris constantinescu
684f6ff926 Foundation tests: with editor only data = true for desktop platforms, debug and development builds.
#fyi joe.pribele
#preflight skip

[CL 24265912 by chris constantinescu in ue5-main branch]
2023-02-16 14:40:17 -05:00
chris constantinescu
67858d8ade Rename LowLevelTests project and build/target to FoundationTests
#preflight 63e27d251b44ee7cb1070c1b
#rnx

[CL 24051131 by chris constantinescu in ue5-main branch]
2023-02-07 12:02:31 -05:00
chris constantinescu
4e7e7f9f3f LLT cleanup and improvements/updates:
- remove dependency on LaunchEngineLoop.cpp which also allows compilation against engine to succeed
- LowLevelTestsRunner no dependency on engine modules required: Launch, Core, Project
- EXPLICIT_TESTS_TARGET definition for self-contained tests: test modules and targets that derive from TestModuleRules/TestTargetRules respectively
- Cleanup Launch dependencies from existing explicit tests
- Cleanup redundant flags from existing explicit tests
- rename Self -> Foundation for in Horde
- additional platform fixes
Default #preflight 63e14d37244dc45a20e29337
All platform/tests LLTs #preflight 63e022f91b44ee7cb1c11d60
#rnx

[CL 24035900 by chris constantinescu in ue5-main branch]
2023-02-06 14:27:24 -05:00