blob: 261477404a27422b760dfb8451d3f42e0e9db201 [file] [log] [blame]
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from __future__ import absolute_import
import string
import sys
import time
from telemetry.testing import serially_executed_browser_test_case
_PREV_TEST_NAME = None
class SimpleTest(
serially_executed_browser_test_case.SeriallyExecutedBrowserTestCase):
@classmethod
def AddCommandlineArgs(cls, parser):
parser.add_option('--adder-sum', type=int, default=5)
def setUp(self):
self.extra = 5
@classmethod
def GenerateTestCases_AdderTest(cls, options):
yield 'add_1_and_2', (1, 2, options.adder_sum)
yield 'add_2_and_3', (2, 3, options.adder_sum)
yield 'add_7_and_3', (7, 3, options.adder_sum)
# Filtered out in browser_test_runner_unittest.py
yield 'dontrun_add_1_and_2', (1, 2, options.adder_sum)
@classmethod
def GenerateTestCases_AlphabeticalTest(cls, options):
del options # unused
prefix = 'Alphabetical_'
test_names = []
for character in string.lowercase[:26]:
test_names.append(prefix + character)
for character in string.uppercase[:26]:
test_names.append(prefix + character)
for num in range(20):
test_names.append(prefix + str(num))
# Shuffle |test_names| so the tests will be generated in a random order.
test_names = (test_names[25:40] + test_names[40:70] + test_names[:25] +
test_names[70:])
for t in test_names:
yield t, ()
def AlphabeticalTest(self):
test_name = self.id()
global _PREV_TEST_NAME # pylint: disable=global-statement
self.assertLess(_PREV_TEST_NAME, test_name)
_PREV_TEST_NAME = test_name
def AdderTest(self, a, b, partial_sum):
self.assertEqual(a + b, partial_sum)
@classmethod
def GenerateTestCases_MultiplierTest(cls, options):
del options # unused
yield 'multiplier_simple', (10, 2, 4)
yield 'multiplier_simple_2', (2, 3, 5)
yield 'multiplier_simple_3', (10, 3, 6)
# Filtered out in browser_test_runner_unittest.py
yield 'dontrun_multiplier_simple', (10, 2, 4)
def MultiplierTest(self, a, b, partial_sum):
self.assertEqual(a * b, partial_sum * self.extra)
def TestSimple(self):
time.sleep(0.5)
self.assertEqual(1, self.extra)
def TestException(self):
raise Exception('Expected exception')
def load_tests(loader, tests, pattern): # pylint: disable=invalid-name
del loader, tests, pattern # Unused.
return serially_executed_browser_test_case.LoadAllTestsInModule(
sys.modules[__name__])