-
Notifications
You must be signed in to change notification settings - Fork 187
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adjust Testsuite to async uploads #4095
Comments
Thoughts:
|
@kobergj see core PR owncloud/core#40180 and test demonstration PR cs3org/reva#3034 You could make a PR in a branch off your The core code changes in owncloud/core#40180 will allow the test suite to retry any request that gets an HTTP 425 status response. Maybe that could happen for things like upload-overwrite (if a test uploads a file then quickly uploads a next version, the original upload could be still in post-processing). For any request, it will be retried up to 10 times at 1-second intervals if it gets 425. |
Sorry, this ticket got completely lost for me somehow 😞 I have now created a PR that tests with async uploads. I can change the core commit id if needed: #5251 To activate async uploads for local testing one only needs to set the |
ToDo:
|
No additional headers to test. Files in postprocessing should mainly behave the same as normal files. Except:
|
Do I understand correctly that the code should change to
Actual: no files (no matter what size). the response code remains 425 |
Two issues here:
|
@kobergj I run ocis with |
I created issue for this case #5256 |
Async uploads are implemented on the shiny new
experimental
branch cs3org/reva#3029The idea is that the server returns immediately after he has received all bytes, then handle postprocessing asynchronly.
With virusscanning around the corner and potentially more features that make use of async postprocessing mechanism it would be nice to have all that properly tested.
Unfortunately the testsuite in its current state cannot handle async uploads. There a mainly two reasons for it
425
status code while processingDuring postprocessing of a file the server will send status code
425
on propfinds or get requests. This is because the file is not ready yet and can therefore not be downloaded until processing is finished. The server does send metadata information already with the425
status code, so for most tests it might be sufficient to just ignore the status code of the response and continue checking file metadata. However tests that actually download a file and check its content need to wait until the processing is finished and the server returns a200
status code again.Last Updated time
Some tests check for the
Modified
time of a file. They do expect it to match a specific timestamp. However, if postprocessing is finished, the file will get a new timestamp. This is because the file is now processed and ready to download, so the etags need to be updated. These checks probably need to be omitted, or one could just check that the actual timestamp is after the original expected one.These are the two main issues which (I hope) will allow most tests to run async. There might be more adjustments needed. But I can't say for sure because of too many failing tests.
The text was updated successfully, but these errors were encountered: