diff options
author | Alex Zamorzaev <zamorzaev@chromium.org> | 2019-04-05 12:07:59 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-04-13 01:32:17 -0700 |
commit | f0573b54ce9e9076dbbfeedfd94c5ac777d7db91 (patch) | |
tree | 6528b05ff4aa19019cd340f1ec13eab5973a4351 /venv | |
parent | 49457e143188969274762192114691a0a3af1411 (diff) | |
download | autotest-f0573b54ce9e9076dbbfeedfd94c5ac777d7db91.tar.gz |
autotest: Add test counts to test_push
BUG=chromium:940564
TEST=unit tests, also will be tested in staging after submit
Change-Id: If53c858a3c3ca8a405de8cbf8a6156a34aba02e9
Reviewed-on: https://chromium-review.googlesource.com/1554985
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Commit-Ready: Alex Zamorzaev <zamorzaev@chromium.org>
Tested-by: Alex Zamorzaev <zamorzaev@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>
Diffstat (limited to 'venv')
-rw-r--r-- | venv/skylab_staging/test_push.py | 22 | ||||
-rw-r--r-- | venv/skylab_staging/test_push_unittest.py | 13 |
2 files changed, 24 insertions, 11 deletions
diff --git a/venv/skylab_staging/test_push.py b/venv/skylab_staging/test_push.py index fcb7d42dab..9df2dadc6d 100644 --- a/venv/skylab_staging/test_push.py +++ b/venv/skylab_staging/test_push.py @@ -20,6 +20,7 @@ from __future__ import division from __future__ import print_function import argparse +import collections import logging import sys import time @@ -34,14 +35,15 @@ _POLLING_INTERVAL_S = 10 _WAIT_FOR_DUTS_TIMEOUT_S = 20 * 60 # Dictionary of test results expected in suite:skylab_staging_test. -_EXPECTED_TEST_RESULTS = {'login_LoginSuccess.*': 'GOOD', - 'provision_AutoUpdate.double': 'GOOD', - 'dummy_Pass.*': 'GOOD', - 'dummy_Fail.Fail$': 'FAIL', - 'dummy_Fail.Error$': 'ERROR', - 'dummy_Fail.Warn$': 'WARN', - 'dummy_Fail.NAError$': 'TEST_NA', - 'dummy_Fail.Crash$': 'GOOD'} +_EXPECTED_TEST_RESULTS = {'login_LoginSuccess.*': ['GOOD'], + 'provision_AutoUpdate.double': ['GOOD'], + 'dummy_Pass.*': ['GOOD'], + 'dummy_Fail.Fail$': ['FAIL'], + 'dummy_Fail.Error$': ['ERROR'], + 'dummy_Fail.Warn$': ['WARN'], + 'dummy_Fail.NAError$': ['TEST_NA'], + 'dummy_Fail.Crash$': ['GOOD'], + } # Some test could be missing from the test results for various reasons. Add # such test in this list and explain the reason. @@ -235,7 +237,9 @@ def _view_is_preserved(view): def _verify_and_summarize(available_views, expected_results): """Verify and generate summaries for test_push results.""" test_push_common = autotest.load('site_utils.test_push_common') - views = {v['test_name']:v['status'] for v in available_views} + views = collections.defaultdict(list) + for view in available_views: + views[view['test_name']].append(view['status']) return test_push_common.summarize_push(views, expected_results, _IGNORED_TESTS) diff --git a/venv/skylab_staging/test_push_unittest.py b/venv/skylab_staging/test_push_unittest.py index a04281f529..8419ad6255 100644 --- a/venv/skylab_staging/test_push_unittest.py +++ b/venv/skylab_staging/test_push_unittest.py @@ -16,12 +16,10 @@ EXAMPLE_TEST_RESULTS = [ ('dummy_Pass.actionable', 'GOOD'), ('dummy_Pass', 'GOOD'), ('dummy_Fail.Error', 'ERROR'), - ('dummy_Fail.Fail', 'FAIL'), ('dummy_Fail.Warn', 'WARN'), ('dummy_Fail.NAError', 'TEST_NA'), ('dummy_Fail.Crash', 'GOOD'), ('login_LoginSuccess', 'GOOD'), - ('dummy_Fail.Error', 'ERROR'), ('provision_AutoUpdate.double', 'GOOD'), ] @@ -62,3 +60,14 @@ def test_missing_test(): test_push._EXPECTED_TEST_RESULTS) assert len(summary) != 0 assert 'login_LoginSuccess' in summary[1] + + +def test_incorrect_test_count(): + """Test a test push with a failed test.""" + available_views = _construct_test_views_list() + available_views.append({'test_name': 'dummy_Fail.Fail', 'status': 'FAIL'}) + + summary = test_push._verify_and_summarize(available_views, + test_push._EXPECTED_TEST_RESULTS) + assert len(summary) != 0 + assert 'dummy_Fail.Fail' in summary[1] |