Files
UnrealEngineUWP/Engine/Source/Programs/WebTests
lorry li abe7f74335 Fix the dead lock by reducing the scope of request lock in http manager to make sure when trigger http request complete callback in Tick, it doesn't hold the requests lock;
Deperecate the FGenericPlatformHttp::UsesThreadedHttp interface and remove corresponding impls, now all platforms are using threaded http requests;
Re-enable retry system off-game thread support.

Reason:
When accessing requests lock and trigger complete callback in http manager Tick from main thread, the complete callback could have been bound to retry manager which will try to access retry manager lock, while retry manager lock can be holding by FHttpRetrySystem::FManager::RetryHttpRequestWithDelay, which triggered by timer callback from http thread and is trying to access http manager's requests lock in order to add the retry request to http manager.

[REVIEW] [at]michael.atchison [at]michael.kirzinger [at]rafa.lecina
#rb michael.atchison

[CL 32493084 by lorry li in 5.4 branch]
2024-03-25 19:55:05 -04:00
..

WebTests

This is a collection of tests for web features like http, websocket, ssl etc.

Running the Tests

Run the WebTestsServer(NOTE: This server is created for TEST PURPOSE ONLY, it's not production ready!!!):

In ../WebTestsServer folder:
	> runserver.bat
Or if you use docker:
	> dockerbuildandrun.bat

Run the tests from VS:

Set `WebTests` as the startup project and set Solution Configuration to a `Development`.
If running tests on other devices, pass in the ip as command line args, after extra args AT THE END, like: "--extra-args --web_server_ip=your.pc.ip.address"
Compile and debug

Adding new test case in WebTestsServer:

Add/change the code in ./WebTestsServer code, most likely in httptests/urls.py and httptests/views.py, and save. Code will be reloaded if the web server is running
When using docker, also need to run dockerbuildandrun.bat
For more info about how to code in django, check https://docs.djangoproject.com/en/