Commit 31dec389 authored by Preethi Mohan's avatar Preethi Mohan Committed by Commit Bot

Dedupe the test list before running.

Bug: 1025371
Change-Id: I12bce9cd3f8f9a62cdb859db6d499b59f6d1a4da
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2219409Reviewed-by: default avatarXianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: default avatarRakib Hasan <rmhasan@google.com>
Reviewed-by: default avatarRobert Ma <robertma@chromium.org>
Commit-Queue: Robert Ma <robertma@chromium.org>
Cr-Commit-Position: refs/heads/master@{#775258}
parent 543ffca1
......@@ -37,6 +37,7 @@ from blinkpy.web_tests.layout_package.json_results_generator import convert_time
from blinkpy.web_tests.models import test_expectations, typ_types
from blinkpy.web_tests.models.typ_types import ResultType
from blinkpy.web_tests.port.base import Port
from collections import OrderedDict
_log = logging.getLogger(__name__)
......@@ -90,6 +91,8 @@ class WebTestFinder(object):
running_all_tests = True
test_files = filter_tests(test_files, [f.split('::') for f in filters])
# de-dupe the test list here before running them.
test_files = list(OrderedDict.fromkeys(test_files))
return (paths, test_files, running_all_tests)
def _times_trie(self):
......
......@@ -389,9 +389,9 @@ class RunTest(unittest.TestCase, StreamTestingMixin):
'passes/args.html'
]
tests_run = get_tests_run(['--order=natural'] + tests_to_run)
# because of deduping the test list, they should be run once.
self.assertEqual([
'passes/args.html', 'passes/args.html', 'passes/audio.html',
'passes/audio.html'
'passes/args.html', 'passes/audio.html'
], tests_run)
def test_random_order(self):
......@@ -447,8 +447,9 @@ class RunTest(unittest.TestCase, StreamTestingMixin):
'passes/args.html'
]
tests_run = get_tests_run(['--order=random'] + tests_to_run)
self.assertEqual(tests_run.count('passes/audio.html'), 2)
self.assertEqual(tests_run.count('passes/args.html'), 2)
# because of deduping the test list, they should be run once.
self.assertEqual(tests_run.count('passes/audio.html'), 1)
self.assertEqual(tests_run.count('passes/args.html'), 1)
def test_no_order(self):
tests_to_run = [
......@@ -464,7 +465,8 @@ class RunTest(unittest.TestCase, StreamTestingMixin):
'passes/args.html'
]
tests_run = get_tests_run(['--order=none'] + tests_to_run)
self.assertEqual(tests_to_run, tests_run)
# because of deduping the test list, they should be run once.
self.assertEqual(['passes/args.html', 'passes/audio.html'], tests_run)
def test_no_order_with_directory_entries_in_natural_order(self):
tests_to_run = ['http/tests/ssl', 'perf/foo', 'http/tests/passes']
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment