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]
.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]
#tests Ran serialization tests via FoundationTests LLT target and the automation framework
#rb chris.constantinescu
[CL 32369190 by nick edwards in ue5-main branch]
* 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]
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]
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]
- 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]
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]
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]
- 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]
- 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]