blob: 6deb19f258757313eeee94bc23aa6490a88377f4 [file] [log] [blame]
# Copyright 2017 The Cobalt Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Starboard Linux Cobalt shared configuration."""
import os
from cobalt.build import cobalt_configuration
from starboard.tools.testing import test_filter
_FILTERED_TESTS = {
# Tracked by b/185820828
'net_unittests': ['SpdyNetworkTransactionTest.SpdyBasicAuth',],
'base_unittests': [
# Fails when run in a sharded configuration: b/233108722, b/216774170
'TaskQueueSelectorTest.TestHighestPriority',
'TaskQueueSelectorTest.TestHighPriority',
'TaskQueueSelectorTest.TestLowPriority',
'TaskQueueSelectorTest.TestBestEffortPriority',
'TaskQueueSelectorTest.TestControlPriority',
'TaskQueueSelectorTest.TestObserverWithEnabledQueue',
'TaskQueueSelectorTest.TestObserverWithSetQueuePriorityAndQueueAlreadyEnabled', #pylint: disable=line-too-long
'TaskQueueSelectorTest.TestDisableEnable',
'TaskQueueSelectorTest.TestDisableChangePriorityThenEnable',
'TaskQueueSelectorTest.TestEmptyQueues',
'TaskQueueSelectorTest.TestAge',
'TaskQueueSelectorTest.TestControlStarvesOthers',
'TaskQueueSelectorTest.TestHighestPriorityDoesNotStarveHigh',
'TaskQueueSelectorTest.TestHighestPriorityDoesNotStarveHighOrNormal',
'TaskQueueSelectorTest.TestHighestPriorityDoesNotStarveHighOrNormalOrLow', #pylint: disable=line-too-long
'TaskQueueSelectorTest.TestHighPriorityDoesNotStarveNormal',
'TaskQueueSelectorTest.TestHighPriorityDoesNotStarveNormalOrLow',
'TaskQueueSelectorTest.TestNormalPriorityDoesNotStarveLow',
'TaskQueueSelectorTest.TestBestEffortGetsStarved',
'TaskQueueSelectorTest.TestHighPriorityStarvationScoreIncreasedOnlyWhenTasksArePresent', #pylint: disable=line-too-long
'TaskQueueSelectorTest.TestNormalPriorityStarvationScoreIncreasedOnllWhenTasksArePresent', #pylint: disable=line-too-long
'TaskQueueSelectorTest.TestLowPriorityTaskStarvationOnlyIncreasedWhenTasksArePresent', #pylint: disable=line-too-long
'TaskQueueSelectorTest.AllEnabledWorkQueuesAreEmpty',
'TaskQueueSelectorTest.AllEnabledWorkQueuesAreEmpty_ControlPriority',
'TaskQueueSelectorTest.ChooseOldestWithPriority_Empty',
'TaskQueueSelectorTest.ChooseOldestWithPriority_OnlyDelayed',
'TaskQueueSelectorTest.ChooseOldestWithPriority_OnlyImmediate',
'TaskQueueSelectorTest.TestObserverWithOneBlockedQueue',
'TaskQueueSelectorTest.TestObserverWithTwoBlockedQueues',
'HistogramTesterTest.GetHistogramSamplesSinceCreationNotNull',
'HistogramTesterTest.TestUniqueSample',
'HistogramTesterTest.TestBucketsSample',
'HistogramTesterTest.TestBucketsSampleWithScope',
'HistogramTesterTest.TestGetAllSamples',
'HistogramTesterTest.TestGetAllSamples_NoSamples',
'HistogramTesterTest.TestGetTotalCountsForPrefix',
'HistogramTesterTest.TestGetAllChangedHistograms',
],
}
# Tracked by b/294070803
if os.getenv('MODULAR_BUILD', '0') == '1':
_FILTERED_TESTS['layout_tests'] = [
'CobaltSpecificLayoutTests/Layout.Test/platform_object_user_properties_survive_gc', # pylint: disable=line-too-long
]
class CobaltLinuxConfiguration(cobalt_configuration.CobaltConfiguration):
"""Starboard Linux Cobalt shared configuration."""
def __init__( # pylint:disable=useless-super-delegation
self, platform_configuration, application_name, application_directory):
super().__init__(platform_configuration, application_name,
application_directory)
def GetTestFilters(self):
filters = super().GetTestFilters()
for target, tests in _FILTERED_TESTS.items():
filters.extend(test_filter.TestFilter(target, test) for test in tests)
return filters
def GetWebPlatformTestFilters(self):
filters = super().GetWebPlatformTestFilters()
filters.extend([
# These tests are timing-sensitive, and are thus flaky on slower builds
test_filter.TestFilter(
'web_platform_tests',
'xhr/WebPlatformTest.Run/XMLHttpRequest_send_timeout_events_htm',
'debug'),
test_filter.TestFilter(
'web_platform_tests',
'streams/WebPlatformTest.Run/streams_readable_streams_templated_html', # pylint:disable=line-too-long
'debug'),
test_filter.TestFilter(
'web_platform_tests',
'cors/WebPlatformTest.Run/cors_preflight_failure_htm', 'devel')
])
return filters
def GetTestEnvVariables(self):
return {
'base_unittests': {
'ASAN_OPTIONS': 'detect_leaks=0'
},
'crypto_unittests': {
'ASAN_OPTIONS': 'detect_leaks=0'
},
'net_unittests': {
'ASAN_OPTIONS': 'detect_leaks=0'
},
# Tracked by b/294071365
'starboard_platform_tests': {
'ASAN_OPTIONS': 'detect_odr_violation=0'
}
}