-
Notifications
You must be signed in to change notification settings - Fork 343
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
Port output-check-record feature to the nrunner #3882
Comments
@beraldoleal I think you've captured it all. Nothing to add for now. |
@clebergnu I'm trying to focus on issues related to our effort to make nrun feature complete. I have added this label "nrun2run" here, but I'm thinking better now, and I'm not sure if this is a dependency for the Next Runner, right? I just would like to double-check with you if we can remove this label "nrun2run" here. |
Many existing tests cover features that are specific to the legacy runner, and it makes no or little sense to port them to be compatible with the nrunner. Examples include: * selftests/functional/test_basic.py:RunnerOperationTest.test_unsupported_status - The legacy runner contains extra handling after the test process ends, and this test depends on that behavior * selftests/functional/test_basic.py:RunnerOperationTest.test_hanged_test_with_status * selftests/functional/test_basic.py:RunnerOperationTest.test_no_status_reported - Relies on Avocado trying to kill test processes, only performed in the legacy runner * selftests/functional/test_output_check.py: - Output check feature is limited to the legacy and data files available along side the test - avocado-framework#3882 And many other similar examples. Signed-off-by: Cleber Rosa <crosa@redhat.com>
Many existing tests cover features that are specific to the legacy runner, and it makes no or little sense to port them to be compatible with the nrunner. Examples include: * selftests/functional/test_basic.py:RunnerOperationTest.test_unsupported_status - The legacy runner contains extra handling after the test process ends, and this test depends on that behavior * selftests/functional/test_basic.py:RunnerOperationTest.test_hanged_test_with_status * selftests/functional/test_basic.py:RunnerOperationTest.test_no_status_reported - Relies on Avocado trying to kill test processes, only performed in the legacy runner * selftests/functional/test_output_check.py: - Output check feature is limited to the legacy and data files available along side the test - avocado-framework#3882 And many other similar examples. Signed-off-by: Cleber Rosa <crosa@redhat.com>
Many existing tests cover features that are specific to the legacy runner, and it makes no or little sense to port them to be compatible with the nrunner. Examples include: * selftests/functional/test_basic.py:RunnerOperationTest.test_unsupported_status - The legacy runner contains extra handling after the test process ends, and this test depends on that behavior * selftests/functional/test_basic.py:RunnerOperationTest.test_hanged_test_with_status * selftests/functional/test_basic.py:RunnerOperationTest.test_no_status_reported - Relies on Avocado trying to kill test processes, only performed in the legacy runner * selftests/functional/test_output_check.py: - Output check feature is limited to the legacy and data files available along side the test - avocado-framework#3882 And many other similar examples. Signed-off-by: Cleber Rosa <crosa@redhat.com>
Many existing tests cover features that are specific to the legacy runner, and it makes no or little sense to port them to be compatible with the nrunner. Examples include: * selftests/functional/test_basic.py:RunnerOperationTest.test_unsupported_status - The legacy runner contains extra handling after the test process ends, and this test depends on that behavior * selftests/functional/test_basic.py:RunnerOperationTest.test_hanged_test_with_status * selftests/functional/test_basic.py:RunnerOperationTest.test_no_status_reported - Relies on Avocado trying to kill test processes, only performed in the legacy runner * selftests/functional/test_output_check.py: - Output check feature is limited to the legacy and data files available along side the test - avocado-framework#3882 And many other similar examples. Signed-off-by: Cleber Rosa <crosa@redhat.com>
Many existing tests cover features that are specific to the legacy runner, and it makes no or little sense to port them to be compatible with the nrunner. Examples include: * selftests/functional/test_basic.py:RunnerOperationTest.test_unsupported_status - The legacy runner contains extra handling after the test process ends, and this test depends on that behavior * selftests/functional/test_basic.py:RunnerOperationTest.test_hanged_test_with_status * selftests/functional/test_basic.py:RunnerOperationTest.test_no_status_reported - Relies on Avocado trying to kill test processes, only performed in the legacy runner * selftests/functional/test_output_check.py: - Output check feature is limited to the legacy and data files available along side the test - avocado-framework#3882 And many other similar examples. Signed-off-by: Cleber Rosa <crosa@redhat.com>
Many existing tests cover features that are specific to the legacy runner, and it makes no or little sense to port them to be compatible with the nrunner. Examples include: * selftests/functional/test_basic.py:RunnerOperationTest.test_unsupported_status - The legacy runner contains extra handling after the test process ends, and this test depends on that behavior * selftests/functional/test_basic.py:RunnerOperationTest.test_hanged_test_with_status * selftests/functional/test_basic.py:RunnerOperationTest.test_no_status_reported - Relies on Avocado trying to kill test processes, only performed in the legacy runner * selftests/functional/test_output_check.py: - Output check feature is limited to the legacy and data files available along side the test - avocado-framework#3882 And many other similar examples. Signed-off-by: Cleber Rosa <crosa@redhat.com>
Many existing tests cover features that are specific to the legacy runner, and it makes no or little sense to port them to be compatible with the nrunner. Examples include: * selftests/functional/test_basic.py:RunnerOperationTest.test_unsupported_status - The legacy runner contains extra handling after the test process ends, and this test depends on that behavior * selftests/functional/test_basic.py:RunnerOperationTest.test_hanged_test_with_status * selftests/functional/test_basic.py:RunnerOperationTest.test_no_status_reported - Relies on Avocado trying to kill test processes, only performed in the legacy runner * selftests/functional/test_output_check.py: - Output check feature is limited to the legacy and data files available along side the test - avocado-framework#3882 And many other similar examples. Signed-off-by: Cleber Rosa <crosa@redhat.com>
Many existing tests cover features that are specific to the legacy runner, and it makes no or little sense to port them to be compatible with the nrunner. Examples include: * selftests/functional/test_basic.py:RunnerOperationTest.test_unsupported_status - The legacy runner contains extra handling after the test process ends, and this test depends on that behavior * selftests/functional/test_basic.py:RunnerOperationTest.test_hanged_test_with_status * selftests/functional/test_basic.py:RunnerOperationTest.test_no_status_reported - Relies on Avocado trying to kill test processes, only performed in the legacy runner * selftests/functional/test_output_check.py: - Output check feature is limited to the legacy and data files available along side the test - avocado-framework#3882 And many other similar examples. Signed-off-by: Cleber Rosa <crosa@redhat.com>
The "output-check-record" feature was removed from the legacy runner a while ago. This seems to be unused code that could have been removed then, so better be removed now. Reference: avocado-framework#5185 Reference: avocado-framework#3882 Signed-off-by: Cleber Rosa <crosa@redhat.com>
The "output-check-record" feature was removed from the legacy runner a while ago. This seems to be unused code that could have been removed then, so better be removed now. Reference: avocado-framework#5185 Reference: avocado-framework#3882 Signed-off-by: Cleber Rosa <crosa@redhat.com>
The "output-check-record" feature was removed from the legacy runner a while ago. This seems to be unused code that could have been removed then, so better be removed now. Reference: avocado-framework#5185 Reference: avocado-framework#3882 Signed-off-by: Cleber Rosa <crosa@redhat.com>
The "output-check-record" feature was removed from the legacy runner a while ago. This seems to be unused code that could have been removed then, so better be removed now. Reference: avocado-framework#5185 Reference: avocado-framework#3882 Signed-off-by: Cleber Rosa <crosa@redhat.com>
I have a BluePrint under development that will propose this feature under the new Avocado architecture (nrunner). Stay tuned! |
The idea of the features
--output-check-record
and--output-check
are valid and we have today a few use cases that explore those functionalities.The "problem" with this logic is that it is being used also to generate the test-results/stdout, stderr, and output files, depending on the
--output-check-record
value. I can understand that we are using this logic today because we are limited by thesubprocess.Popen()
ability to generate both "combined" and "split" (stdout and stderr) and also to avoid calling the tests twice.We could split this logic into 3:
Sometimes the users would like to run the avocado only to generate the ".data/" folder with stdout, stderr, and combined results. For this situation we could have a boolean option named
--record-output
and the code can be executed twice to accomplish that. This run is something like a "dry-run" and there is no need to save information on job-results folder;A normal run that MUST be executed only once that will generate the job-results information and will not care about the
--record-output
A run that will check for the expected values stored inside
.data/
. This could be done with something like--check-output
, also a boolean variable that will use the same logic that we have today:3.1 If output.expected is there, then run the subprocess generating a "combined" version;
3.2 if stdout.expected or stderr.expected are there, then run the subprocess generating a "both/split" version;
@clebergnu any comments?
The text was updated successfully, but these errors were encountered: