Skip to content
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

Manage log streams when runnign multiple tests in parallel #120

Open
adamnovak opened this issue Nov 10, 2021 · 3 comments
Open

Manage log streams when runnign multiple tests in parallel #120

adamnovak opened this issue Nov 10, 2021 · 3 comments

Comments

@adamnovak
Copy link
Contributor

I'm trying to debug Toil running the CWL conformance tests; a few random tests seem to hit their timeouts.

I'm running cwltest with -j8 or so to run multiple tests in parallel, and I've set Toil to log debug logs even with the --quiet that cwltest passes. But my terminal ends up being logs from all the simultaneously running and passing tests, and I'm never going to be able to tease out the logs specifically from the tests that time out (different tests every time) to see what is going wrong in those cases.

I need cwltest to be able to capture the output streams from the runner processes for each test, and to print out the streams for the tests that fail or time out after the failure or timeout happens, without interleaving with the streams from other simultaneous successful tests.

@adamnovak
Copy link
Contributor Author

I think this is already possible somewhat with --junit-xml, but it would be nice to have this work at the console too, like pytest does it.

@mr-c
Copy link
Member

mr-c commented Nov 11, 2021

Agreed @adamnovak ; speaking of pytest, have you seen #74 ?

@adamnovak
Copy link
Contributor Author

#74 looks pretty interesting.

I tried using --junit-xml, and while it does keep the tests output straight from each other, one of my tests that timed out got no output stored in the XML; there's no system-out or system-err elements like for other tests.

This is because we're using communicate() with a timeout, but not doing the special dance from the docs to actually get the output from the process if the timeout expires.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants