blob: c95bf6719b26367f763af8e0cf767f0d95648699 [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',
],
}
if os.getenv('MODULAR_BUILD', '0') == '1':
# Tracked by b/294070803
_FILTERED_TESTS['layout_tests'] = [
'CobaltSpecificLayoutTests/Layout.Test/platform_object_user_properties_survive_gc', # pylint: disable=line-too-long
]
# TODO: b/303260272 Re-enable these tests.
_FILTERED_TESTS['blackbox'] = [
'cancel_sync_loads_when_suspended',
'preload_font',
'preload_launch_parameter',
'preload_visibility',
'suspend_visibility',
]
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',
'cors/WebPlatformTest.Run/cors_preflight_failure_htm')
])
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'
}
}