Commit Graph

24 Commits

Author SHA1 Message Date
chris constantinescu
2300a4ad0f LLTs: Maximum log verbosity with --debug, allow logging from fault context
#rb Devin.Doucette
#preflight skip

[CL 20464451 by chris constantinescu in ue5-main branch]
2022-06-01 22:45:35 -04:00
chris constantinescu
b258362e47 Catch2 3.0 preview source code integration with on-demand static library build for all platforms.
Other preflights: Catch2 Build Library 6283d1c14316db80d194f6c8, Nightly Low Level Tests 6283d1c9114e08fa2f237e6b
#preflight 6283d1b5114e08fa2f237db3

[CL 20248814 by chris constantinescu in ue5-main branch]
2022-05-17 15:06:28 -04:00
chris constantinescu
1278a26f76 Low level tests further refactoring and test resource deployment
#preflight 626955ed0d4ac78d716eacf0
#rnx

[CL 19941830 by chris constantinescu in ue5-main branch]
2022-04-27 12:36:35 -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
matija kecman
e417ffe69a Catch unit tests: Redirect UE_LOG and ensure output to the global log singleton when running unit tests with Catch
Prior to this change running a catch executable (e.g., I tested with GeometryProcessingUnitTests.exe) there was no way to see any UE_LOGs or ensure output. Following this change ensure output is always shown, UE_LOG output with verbosity level <= Warning is shown if the command line argument "--log" is passed, and  UE_LOG output with verbosity level <= Log is shown if the command line arguement "--debug" is also passed. For even more verbose output the `DesiredLogVerbosity` variable in TestRunner.cpp can be edited.

#rb jimmy.andrews
#rnx
#jira none
#preflight 6255dc50153828d2734dbe7c

[CL 19728147 by matija kecman in ue5-main branch]
2022-04-12 16:27:07 -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
a9305972ac Catch2 Conversion of Core Tests
#rb trival
#fyi Chris.Constantinescu
#preflight 6246cb4bc61d8a458f5bae63

[CL 19586009 by mark lintott in ue5-main branch]
2022-04-01 06:05:26 -04:00
chris constantinescu
cdcaefe035 Introducing Catch2 disabled test cases, scenarios etc
Motivation: [.] only hides a test and it can still be executed using ~[SomeOtherTag]; It's very easy to fall into the trap of executing an infinite loop test that is decorated with the [.] tag
#rb Andriy.Tylychko, Michael.Balzer
#preflight 6245fb64f4217035fa8f38ec

[CL 19576763 by chris constantinescu in ue5-main branch]
2022-03-31 15:16:31 -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
b36a988848 LowLevelTests manual integration with UBT
#preflight 6243316b3a5a4c1622b33d33
#jira UE-147452
#rnx

#ROBOMERGE-OWNER: chris.constantinescu
#ROBOMERGE-AUTHOR: chris.constantinescu
#ROBOMERGE-SOURCE: CL 19545984 via CL 19546389 via CL 19546396
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19560843 by chris constantinescu in ue5-main branch]
2022-03-30 14:15:11 -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
stephen ma
66f936b5b3 Adds ILowLevelTestsModule to LowLevelTestRuner
- Adds method to specify Global Initalization of LowLevelTest Modules
- Fixes math header issue in LowLevelTestModule on Mac

#preflight 62335d5a1302f69e9a483a59
#rb @chris.constantinescu

[CL 19423270 by stephen ma in ue5-main branch]
2022-03-17 13:27:17 -04:00
Devin Doucette
36c07f5ca7 LowLevelTests: Changed TTuple string conversion back to Catch::StringMaker
#preflight 622a14c6d51810f7ad3a3b91
#rb Chris.Constantinescu
#rnx

[CL 19336454 by Devin Doucette in ue5-main branch]
2022-03-10 10:44:46 -05:00
Devin Doucette
aaa2b7e0c8 LowLevelTests: Changed string conversions to use std::ostream
#preflight 62284f8e8842e17a67d8b0dc
#preflight 6228b09b31133a23da807108
#rb Zousar.Shaker
#rnx

[CL 19320231 by Devin Doucette in ue5-main branch]
2022-03-09 10:27:41 -05:00
Devin Doucette
f70b0f5085 LowLevelTests: Minimized code included by TestHarness.h
- Replaced CoreMinimal.h and StringConv.h with CoreTypes.h and forward declaration headers.
- Added push/pop for disabled warnings.
- Added FStringView string conversion.

#preflight 62261cfda71867308f1d58d8
#preflight 62264964e83598518fcee4f1
#rb Chris.Constantinescu, Zousar.Shaker
#rnx

[CL 19288993 by Devin Doucette in ue5-main branch]
2022-03-07 14:06:48 -05:00
chris constantinescu
598b3a8924 Removed global setup, created common core utilities for non-special cases.
Editor, Engine, CoreUObject etc will have their own separate utility headers for tests that rely on respective special modules.

Replace platform names in catch2 code.

LLT all tests run preflight: 621e3c91f1206ae3ea5b0a66

#preflight 621e3c8bf1206ae3ea5b0872
#rb Jerome.Delattre

[CL 19202751 by chris constantinescu in ue5-main branch]
2022-03-01 13:44:27 -05:00
stephen ma
8af4582071 Add ability to LowLevelTestsRunner --global-base-moulde to Pre-load and unload modules outside of catch runs.
- This should avoid the startup.cpp and teardown.cpp pattern and more predictiablly tear-down and setup tests during GlobalSetup/Teardown.

#jira OI-3788
#review @chris.constantinescu
#rb @chris.constantinescu
#preflight 6217e996785f20248baf285d

[CL 19124450 by stephen ma in ue5-main branch]
2022-02-24 15:45:40 -05:00
chris constantinescu
c8cb8f0b04 Module-level setup/teardown with the help of source file build order overrides.
- optional alter of source file build order: towards beginning or end
- test build: correctly handle inclusion of special dependencies such as Engine, Editor, CoreUObject and ApplicationCore
- existing tests: add setup and teardown tests that initialize test modules. This causes setup and teardown to be local to module instead of global, which was not the correct way to run tests across multiple modules.

#preflight 62151e43dc0170cfb3649ee8
#rb Jermoe.Delattre

[CL 19076600 by chris constantinescu in ue5-main branch]
2022-02-22 13:52:35 -05:00
chris constantinescu
a067ec8344 Modularized setup and teardown for LLTs + global setup preliminary.
Nightly LLTs preflight 6205328b4c6c33118fa85c3d
#rb Jerome.Delattre,Mark.Lintott
#preflight 62053298a155a4cddabf933f

[CL 18938635 by chris constantinescu in ue5-main branch]
2022-02-10 12:33:20 -05:00
JeanMichel Dignard
570fa3a6b6 In preparation for the editor and enterprise low level tests:
- Added a CommonEngineInit file to share engine init code accross low level tests programs.
- Made the preprocessor definitions setup overridable per low level tests target.
#preflight 61f17d11f8088a3d298ce242

[CL 18739254 by JeanMichel Dignard in ue5-main branch]
2022-01-26 13:31:44 -05:00
chris constantinescu
410d45be21 Low level tests - platform fixes and presubmit default compilation to prevent breaking
- Addressed remaining NDA platform code that was present in public facing folders
- Compile LowLevelTests target by default on presubmits and incremental builds for Main and 5.0
- Add dummy test on LowLevelTetsts and run it on consoles daily - this test is called "Self" and it's a sanity check run for Catch2
- Fixed Switch indefinite hang - Self test run successfully on this console
- Added IRunningStateOptions to control app run state: startup and check running state options
- AudioUnitTests run successfully on XboxOneGDK and XSX
- XSX Self and AudioUnitTests run successfully but XSX reports VideoEscape errors - JIRA UE-131334

#jira UEENGQA-52681, UE-127449
#rb Jerome.Delattre
#robomerge 5.0

[CL 17830364 by chris constantinescu in ue5-main branch]
2021-10-15 12:15:53 -04:00
David Harvey
ac0fbfd8f4 make sure the Gamethread Id is stored before configuring tests.
- fix for async loading thread assert on platforms that require cooked data.

#jira UE-127389
#robomerge 5.0
#rb Eric.McDaniel, Chris.Constantinescu
#rnx

[CL 17746872 by David Harvey in ue5-main branch]
2021-10-07 04:06:58 -04:00
chris constantinescu
cd6530efad Low Level Tests: code tests built on Catch2 with multi-platform support.
Intended for writing unit, integration, functional and all types of tests.

#jira UEENGQA-49764
#rb Jerome.Delattre

[CL 17666358 by chris constantinescu in ue5-main branch]
2021-09-29 15:50:07 -04:00