Files
UnrealEngineUWP/Engine/Source/Programs/WebTests
lorry li acbaf16fb7 Fix a random dead lock when shut down http manager.
Reason: Currently when shutdown and flush in http manager, it gives up and cancels remaining requests after waiting a short period. When cancel, it holds the RequestLock, and in FHttpRequestCommon::CancelRequest, it tries to access HttpTaskTimerHandleCriticalSection to stop activity timer. In the mean time, the request itself could be in activity or total timeout callback, which is holding the HttpTaskTimerHandleCriticalSection, and trying to AbortRequest which will try to access RequstLock in HttpManager.IsValidRequest.

[REVIEW] [at]michael.kirzinger [at]michael.atchison [at]rafa.lecina
#rb michael.atchison, Michael.Kirzinger, Rafa.Lecina
#tests Reproduced with test case in WebTests and fixed it. Tried launch and quit game on Win64.

[CL 32281657 by lorry li in ue5-main branch]
2024-03-15 15:12: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/