diff options
| author | nelsonli <nelsonli@google.com> | 2020-05-07 12:16:30 +0800 |
|---|---|---|
| committer | nelsonli <nelsonli@google.com> | 2020-06-04 11:41:59 +0800 |
| commit | 33aa168b9784161f93d3892ead622fcc34fffb97 (patch) | |
| tree | 544ac207a620e62b4b041626c6ea987d4c4bc197 | |
| parent | efa6c0a4575d283d267756fec12ff492b765e7b7 (diff) | |
| download | platform_test_vts-testcase_kernel-33aa168b9784161f93d3892ead622fcc34fffb97.tar.gz platform_test_vts-testcase_kernel-33aa168b9784161f93d3892ead622fcc34fffb97.tar.bz2 platform_test_vts-testcase_kernel-33aa168b9784161f93d3892ead622fcc34fffb97.zip | |
[VTS] add tool to generate ltp test config in vts.
Bug: 154446791
Bug: 157435167
Test: python3 gen_ltp_config.py arm 64 False False test.config
Change-Id: Iec16aee981689f59a2b295b2f9801d8901df61b1
| -rw-r--r-- | ltp/testcase/tools/common/filter_utils.py | 570 | ||||
| -rw-r--r-- | ltp/testcase/tools/common/list_utils.py | 42 | ||||
| -rw-r--r-- | ltp/testcase/tools/configs/disabled_tests.py | 454 | ||||
| -rw-r--r-- | ltp/testcase/tools/configs/stable_tests.py | 2289 | ||||
| -rwxr-xr-x | ltp/testcase/tools/gen_ltp_config.py | 49 | ||||
| -rw-r--r-- | ltp/testcase/tools/host/const.py | 20 | ||||
| -rw-r--r-- | ltp/testcase/tools/ltp_configs.py | 155 | ||||
| -rw-r--r-- | ltp/testcase/tools/ltp_enums.py | 48 | ||||
| -rw-r--r-- | ltp/testcase/tools/ltp_test_cases.py | 323 | ||||
| -rw-r--r-- | ltp/testcase/tools/template/template.xml | 51 | ||||
| -rw-r--r-- | ltp/testcase/tools/test_case.py | 134 |
11 files changed, 4135 insertions, 0 deletions
diff --git a/ltp/testcase/tools/common/filter_utils.py b/ltp/testcase/tools/common/filter_utils.py new file mode 100644 index 00000000..ff1ffdce --- /dev/null +++ b/ltp/testcase/tools/common/filter_utils.py @@ -0,0 +1,570 @@ +# +# Copyright (C) 2020 The Android Open Source Project +# +# 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. +# + +import copy +import logging +import re +from sre_constants import error as regex_error +import types + +from host import const +from common import list_utils + +REGEX_PREFIX = 'r(' +REGEX_SUFFIX = ')' +REGEX_PREFIX_ESCAPE = '\\r(' +NEGATIVE_PATTERN_PREFIX = '-' +_INCLUDE_FILTER = '_include_filter' +_EXCLUDE_FILTER = '_exclude_filter' +DEFAULT_EXCLUDE_OVER_INCLUDE = False +_MODULE_NAME_PATTERN = '{module}.{test}' + + +def ExpandBitness(input_list): + '''Expand filter items with bitness suffix. + + If a filter item contains bitness suffix, only test name with that tag + will be included in output. + Otherwise, 2 more item with 32bit and 64bit suffix will be added to the output list. + + This method removes duplicated item while keeping item order before returning output. + + Examples of input -> output are: + [a_32bit] -> [a_32bit] + [a] -> [a, a_32bit, a_64bit] + [a_32bit, a] -> [a_32bit, a, a_64bit] + + Args: + input_list: list of string, the list to expand + + Returns: + A list of string + ''' + result = [] + for item in input_list: + result.append(str(item)) + if (not item.endswith(const.SUFFIX_32BIT) and + not item.endswith(const.SUFFIX_64BIT)): + result.append("%s_%s" % (item, const.SUFFIX_32BIT)) + result.append("%s_%s" % (item, const.SUFFIX_64BIT)) + return list_utils.DeduplicateKeepOrder(result) + + +def ExpandAppendix(input_list, appendix_list, filter_pattern): + '''Expand each item in input_list with appendix in the appendix_list + + For each item in input_list, expand it to N items (N=size of appendix_list) + by attaching it with each appendix form appendix_list. + Note, for items end with bitness info (e.g 32bit/63bit/_32bit/_64bit), + attach the appendix before the bitness info. (This is to make sure the + bitness info is always at the end of each item since the system rely on this + assumption to check the bitness info) + There are two cases when an item will not be expanded: 1) it is a Regex + filter item and 2) it has the pattern described by filter_pattern. + + Examples of input -> output are: + [a] [_default] -> [a_default] + [a, b] [_default] -> [a_default, b_default] + [a] [_default, _test] -> [a_default, a_test] + [a, b_32bit] [_default, _test] + -> [a_default, a_test, b_default_32bit, b_test_32bit] + + Args: + input_list: list of string, the list to expand + appendix_list: list of string, the appendix to be append. + filter_pattern: string, a Regex pattern to filter out the items that + should not expand. + + Returns: + A list of string with expanded result. + ''' + result = [] + for item in input_list: + if IsRegexFilter(item) or re.compile(filter_pattern).match(item): + result.append(item) + continue + pos = len(item) + if (item.endswith(const.SUFFIX_32BIT) or + item.endswith(const.SUFFIX_64BIT)): + pos = len(item) - len(const.SUFFIX_32BIT) + if item[pos - 1] == "_": + pos = pos - 1 + for appendix in appendix_list: + result.append(item[:pos] + appendix + item[pos:]) + return result + + +def SplitFilterList(input_list): + '''Split filter items into exact and regex lists. + + To specify a regex filter, the syntax is: + 'r(suite.test)' for regex matching of 'suite.test', where '.' means + one of any char. + See Filter class docstring for details. + + Args: + input_list: list of string, the list to split + + Returns: + A tuple of lists: two lists where the first one is exact matching + list and second one is regex list where the wrapping + syntax 'r(..)' is removed. + ''' + exact = [] + regex = [] + for item in input_list: + if IsRegexFilter(item): + regex_item = item[len(REGEX_PREFIX):-len(REGEX_SUFFIX)] + try: + re.compile(regex_item) + regex.append(regex_item) + except regex_error: + logging.error('Invalid regex %s, ignored. Please refer to ' + 'python re syntax documentation.' % regex_item) + elif item.startswith(REGEX_PREFIX_ESCAPE) and item.endswith( + REGEX_SUFFIX): + exact.append(REGEX_PREFIX + item[len(REGEX_PREFIX_ESCAPE):]) + else: + exact.append(item) + + return (exact, regex) + + +def SplitNegativePattern(input_list): + '''Split negative items out from an input filter list. + + Items starting with the negative sign will be moved to the second returning + list. + + Args: + input_list: list of string, the list to split + + Returns: + A tuple of lists: two lists where the first one is positive patterns + and second one is negative items whose negative sign + is removed. + ''' + positive = [] + negative = [] + for item in input_list: + if item.startswith(NEGATIVE_PATTERN_PREFIX): + negative.append(item[len(NEGATIVE_PATTERN_PREFIX):]) + else: + positive.append(item) + return (positive, negative) + + +def InRegexList(item, regex_list): + '''Checks whether a given string matches an item in the given regex list. + + Args: + item: string, given string + regex_list: regex list + + Returns: + bool, True if there is a match; False otherwise. + ''' + for regex in regex_list: + p = re.compile(regex) + m = p.match(item) + if m and m.start() == 0 and m.end() == len(item): + return True + + return False + + +def IsRegexFilter(item): + '''Checks whether the given item is a regex filter. + + Args: + item: string, given string + + Returns: + bool: true if the given item is a regex filter. + ''' + return item.startswith(REGEX_PREFIX) and item.endswith(REGEX_SUFFIX) + + +class Filter(object): + '''A class to hold test filter rules and filter test names. + + Regex matching is supported. Regex syntax is python re package syntax. + To specify a regex filter, the syntax is: + 'suite.test' for exact matching + 'r(suite.test)' for regex matching of 'suite.test', where '.' means + one of any char. + '\r(suite.test)' for exact matching of name 'r(suite.test)', where + '\r' is a two char string ('\\r' in code). + Since test name is not expected to start with backslash, the exact + string matching of name '\r(suite.test)' is not supported here. + + Negative pattern is supported. If a test name starts with the negative + sign in include_filter, the negative sign will be removed and item will + be moved from include_filter to exclude_filter. Negative sign should + be added before regex prefix, i.e., '-r(negative.pattern)' + + Attributes: + enable_regex: bool, whether regex is enabled. + include_filter: list of string, input include filter + exclude_filter: list of string, input exclude filter + include_filter_exact: list of string, exact include filter + include_filter_regex: list of string, exact include filter + exclude_filter_exact: list of string, exact exclude filter + exclude_filter_regex: list of string, exact exclude filter + exclude_over_include: bool, False for include over exclude; + True for exclude over include. + enable_native_pattern: bool, whether to enable negative pattern + processing in include_filter + enable_module_name_prefix_matching: bool, whether to perform auto + module name prefix matching + module_name: string, test module name for auto module name prefix + matching + expand_bitness: bool, whether to append bitness to filter items. + Default is False. When set to True, bitness will + be added to test name for filtering process, but + the original filter list will not be changed. + ''' + include_filter_exact = [] + include_filter_regex = [] + exclude_filter_exact = [] + exclude_filter_regex = [] + + def __init__(self, + include_filter=[], + exclude_filter=[], + enable_regex=True, + exclude_over_include=None, + enable_negative_pattern=True, + enable_module_name_prefix_matching=False, + module_name=None, + expand_bitness=False): + self.enable_regex = enable_regex + self.expand_bitness = expand_bitness + + self.enable_negative_pattern = enable_negative_pattern + self.include_filter = include_filter + self.exclude_filter = exclude_filter + if exclude_over_include is None: + exclude_over_include = DEFAULT_EXCLUDE_OVER_INCLUDE + self.exclude_over_include = exclude_over_include + self.enable_module_name_prefix_matching = enable_module_name_prefix_matching + self.module_name = module_name + + # @Deprecated. Use expand_bitness parameter in construction method instead. + # This method will be removed after all legacy usage has been cleaned up + def ExpandBitness(self): + '''Expand bitness from filter. + + Items in the filter that doesn't contain bitness suffix will be expended + to 3 items, 2 of which ending with bitness. This method is safe if + called multiple times. Regex items will not be expanded + ''' + self.include_filter_exact = ExpandBitness(self.include_filter_exact) + self.exclude_filter_exact = ExpandBitness(self.exclude_filter_exact) + self.expand_bitness = True + + def IsIncludeFilterEmpty(self): + '''Check whether actual include filter is specified. + + Since the input include filter may contain negative patterns, + checking self.include_filter is not always correct. + + This method checks include_filter_exact and include_filter_regex. + ''' + return not self.include_filter_exact and not self.include_filter_regex + + def ExpandAppendix(self, appendix_list, filter_pattern): + '''Expand filter with appendix from appendix_list. + + Reset both include_filter and exclude_filter by expanding the filters + with appendix in appendix_list. + + Args: + appendix_list: list of string to be append to the filters. + filter_pattern: string, a Regex pattern to filter out the items that + should not be expanded. + ''' + self.include_filter = ExpandAppendix(self.include_filter, + appendix_list, filter_pattern) + self.exclude_filter = ExpandAppendix(self.exclude_filter, + appendix_list, filter_pattern) + + def Filter(self, item): + '''Filter a given string using the internal filters. + + Rule: + By default, include_filter overrides exclude_filter. This means: + If include_filter is empty, only exclude_filter is checked. + Otherwise, only include_filter is checked + If exclude_over_include is set to True, exclude filter will first + be checked. + + Args: + item: string, the string for filter check + + Returns: + bool. True if it passed the filter; False otherwise + ''' + if self.exclude_over_include: + if self.IsInExcludeFilter(item): + return False + + if not self.IsIncludeFilterEmpty(): + return self.IsInIncludeFilter(item) + + return True + else: + if not self.IsIncludeFilterEmpty(): + return self.IsInIncludeFilter(item) + + return not self.IsInExcludeFilter(item) + + def IsInIncludeFilter(self, item): + '''Check if item is in include filter. + + If enable_module_name_prefix_matching is set to True, module name + added to item as prefix will also be check from the include filter. + + Args: + item: string, item to check filter + + Returns: + bool, True if in include filter. + ''' + return self._ModuleNamePrefixMatchingCheck(item, + self._IsInIncludeFilter) + + def IsInExcludeFilter(self, item): + '''Check if item is in exclude filter. + + If enable_module_name_prefix_matching is set to True, module name + added to item as prefix will also be check from the exclude filter. + + Args: + item: string, item to check filter + + Returns: + bool, True if in exclude filter. + ''' + return self._ModuleNamePrefixMatchingCheck(item, + self._IsInExcludeFilter) + + def _ModuleNamePrefixMatchingCheck(self, item, check_function): + '''Check item from filter after appending module name as prefix. + + This function will first check whether enable_module_name_prefix_matching + is True and module_name is not empty. Then, the check_function will + be applied to the item. If the result is False and + enable_module_name_prefix_matching is True, module name will be added + as the prefix to the item, in format of '<module_name>.<item>', and + call the check_function again with the new resulting name. + + This is mainly used for retry command where test module name are + automatically added to test case name. + + Args: + item: string, test name for checking. + check_function: function to check item in filters. + + Return: + bool, True if item pass the filter from the given check_function. + ''' + res = check_function(item) + + if (not res and self.enable_module_name_prefix_matching and + self.module_name): + res = check_function( + _MODULE_NAME_PATTERN.format( + module=self.module_name, test=item)) + + return res + + def _IsInIncludeFilter(self, item): + '''Internal function to check if item is in include filter. + + Args: + item: string, item to check filter + + Returns: + bool, True if in include filter. + ''' + return item in self.include_filter_exact or InRegexList( + item, self.include_filter_regex) + + def _IsInExcludeFilter(self, item): + '''Internal function to check if item is in exclude filter. + + Args: + item: string, item to check filter + + Returns: + bool, True if in exclude filter. + ''' + return item in self.exclude_filter_exact or InRegexList( + item, self.exclude_filter_regex) + + @property + def include_filter(self): + '''Getter method for include_filter. + + Use this method to print include_filter only. + + If the items needed to be added, use add_to_exclude_filter method. + + E.g. + self.add_to_exclude_filter('pattern1') + + If the filter needs to be modified without using add_to_exclude_filter, + call refresh_filter() after modification. Otherwise, the change will + not take effect. + + E.g. + Get and modify filter: + filter = Filter() + filter.include_filter.append('pattern1') + Refresh the filter: + filter.refresh_filter() + ''' + return getattr(self, _INCLUDE_FILTER, []) + + @include_filter.setter + def include_filter(self, include_filter): + '''Setter method for include_filter''' + setattr(self, _INCLUDE_FILTER, include_filter) + self.refresh_filter() + + @property + def exclude_filter(self): + '''Getter method for exclude_filter. + + Use this method to print exclude_filter only. + + If the items needed to be added, use add_to_exclude_filter method. + + E.g. + self.add_to_exclude_filter('pattern1') + + If the filter needs to be modified without using add_to_exclude_filter, + call refresh_filter() after modification. Otherwise, the change will + not take effect. + + E.g. + Get and modify filter: + filter = Filter() + filter.exclude_filter.append('pattern1') + Refresh the filter: + filter.refresh_filter() + ''' + return getattr(self, _EXCLUDE_FILTER, []) + + @exclude_filter.setter + def exclude_filter(self, exclude_filter): + '''Setter method for exclude_filter''' + setattr(self, _EXCLUDE_FILTER, exclude_filter) + self.refresh_filter() + + def add_to_include_filter(self, pattern, auto_refresh=True): + '''Add an item to include_filter. + + Args: + pattern: string or list of string. Item(s) to add + auto_refresh: bool, whether to automatically call refresh_filter(). + Default is True. Use False only if a large number of + items are added one by one in a sequence call. + In that case, call refresh_filter() at the end of the + sequence. + ''' + if not isinstance(pattern, types.ListType): + pattern = [pattern] + + self.include_filter.extend(pattern) + + if auto_refresh: + self.refresh_filter() + + def add_to_exclude_filter(self, pattern, auto_refresh=True): + '''Add an item to exclude_filter. + + Args: + pattern: string or list of string. Item(s) to add + auto_refresh: bool, whether to automatically call refresh_filter(). + Default is True. Use False only if a large number of + items are added one by one in a sequence call. + In that case, call refresh_filter() at the end of the + sequence. + ''' + if not isinstance(pattern, types.ListType): + pattern = [pattern] + + self.exclude_filter.extend(pattern) + + if auto_refresh: + self.refresh_filter() + + def refresh_filter(self): + '''Process the filter patterns. + + This method splits filter into exact and regex patterns. + Bitness will also be appended if expand_bitness is True. + ''' + include_filter = copy.copy(self.include_filter) + exclude_filter = copy.copy(self.exclude_filter) + + if self.enable_negative_pattern: + include_filter, include_filter_negative = SplitNegativePattern( + include_filter) + exclude_filter.extend(include_filter_negative) + + if self.enable_regex: + self.include_filter_exact, self.include_filter_regex = SplitFilterList( + include_filter) + self.exclude_filter_exact, self.exclude_filter_regex = SplitFilterList( + exclude_filter) + else: + self.include_filter_exact = include_filter + self.exclude_filter_exact = exclude_filter + + if self.expand_bitness: + self.include_filter_exact = ExpandBitness( + self.include_filter_exact) + self.exclude_filter_exact = ExpandBitness( + self.exclude_filter_exact) + + def __str__(self): + return ('Filter:\nenable_regex: {enable_regex}\n' + 'enable_negative_pattern: {enable_negative_pattern}\n' + 'enable_module_name_prefix_matching: ' + '{enable_module_name_prefix_matching}\n' + 'module_name: {module_name}\n' + 'include_filter: {include_filter}\n' + 'exclude_filter: {exclude_filter}\n' + 'include_filter_exact: {include_filter_exact}\n' + 'include_filter_regex: {include_filter_regex}\n' + 'exclude_filter_exact: {exclude_filter_exact}\n' + 'exclude_filter_regex: {exclude_filter_regex}\n' + 'expand_bitness: {expand_bitness}'.format( + enable_regex=self.enable_regex, + enable_negative_pattern=self.enable_negative_pattern, + enable_module_name_prefix_matching= + self.enable_module_name_prefix_matching, + module_name=self.module_name, + include_filter=self.include_filter, + exclude_filter=self.exclude_filter, + include_filter_exact=self.include_filter_exact, + include_filter_regex=self.include_filter_regex, + exclude_filter_exact=self.exclude_filter_exact, + exclude_filter_regex=self.exclude_filter_regex, + expand_bitness=self.expand_bitness)) diff --git a/ltp/testcase/tools/common/list_utils.py b/ltp/testcase/tools/common/list_utils.py new file mode 100644 index 00000000..72c1744e --- /dev/null +++ b/ltp/testcase/tools/common/list_utils.py @@ -0,0 +1,42 @@ +# +# Copyright (C) 2020 The Android Open Source Project +# +# 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. +# + +import itertools + +def DeduplicateKeepOrder(input): + '''Remove duplicate items from a sequence while keeping the item order. + + Args: + input: a sequence that might have duplicated items. + + Returns: + A deduplicated list where item order is kept. + ''' + return MergeUniqueKeepOrder(input) + +def MergeUniqueKeepOrder(*lists): + '''Merge two list, remove duplicate items, and order. + + Args: + lists: any number of lists + + Returns: + A merged list where items are unique and original order is kept. + ''' + seen = set() + return [ + x for x in itertools.chain(*lists) if not (x in seen or seen.add(x)) + ]
\ No newline at end of file diff --git a/ltp/testcase/tools/configs/disabled_tests.py b/ltp/testcase/tools/configs/disabled_tests.py new file mode 100644 index 00000000..09f12277 --- /dev/null +++ b/ltp/testcase/tools/configs/disabled_tests.py @@ -0,0 +1,454 @@ +# Tests disabled +DISABLED_TESTS = [ + 'cap_bounds.Cap_bounds', + 'commands.file01', # b/71414136 + # b/122327977 cgroup tests that either don't pass or take too long to run + # e.g. stress tests + 'controllers.cgroup', + 'controllers.cgroup_fj_function_cpu', + 'controllers.cgroup_fj_function_cpuacct', + 'controllers.cgroup_fj_function_cpuset', + 'controllers.cgroup_fj_function_freezer', + 'controllers.cgroup_fj_stress_blkio_10_3_each', + 'controllers.cgroup_fj_stress_blkio_10_3_none', + 'controllers.cgroup_fj_stress_blkio_10_3_one', + 'controllers.cgroup_fj_stress_blkio_1_200_each', + 'controllers.cgroup_fj_stress_blkio_1_200_none', + 'controllers.cgroup_fj_stress_blkio_1_200_one', + 'controllers.cgroup_fj_stress_blkio_200_1_each', + 'controllers.cgroup_fj_stress_blkio_200_1_none', + 'controllers.cgroup_fj_stress_blkio_200_1_one', + 'controllers.cgroup_fj_stress_blkio_2_9_each', + 'controllers.cgroup_fj_stress_blkio_2_9_none', + 'controllers.cgroup_fj_stress_blkio_2_9_one', + 'controllers.cgroup_fj_stress_blkio_3_3_each', + 'controllers.cgroup_fj_stress_blkio_3_3_none', + 'controllers.cgroup_fj_stress_blkio_3_3_one', + 'controllers.cgroup_fj_stress_blkio_4_4_each', + 'controllers.cgroup_fj_stress_blkio_4_4_none', + 'controllers.cgroup_fj_stress_blkio_4_4_one', + 'controllers.cgroup_fj_stress_cpu_10_3_each', + 'controllers.cgroup_fj_stress_cpu_10_3_none', + 'controllers.cgroup_fj_stress_cpu_10_3_one', + 'controllers.cgroup_fj_stress_cpu_1_200_each', + 'controllers.cgroup_fj_stress_cpu_1_200_none', + 'controllers.cgroup_fj_stress_cpu_1_200_one', + 'controllers.cgroup_fj_stress_cpu_200_1_each', + 'controllers.cgroup_fj_stress_cpu_200_1_none', + 'controllers.cgroup_fj_stress_cpu_200_1_one', + 'controllers.cgroup_fj_stress_cpu_2_9_each', + 'controllers.cgroup_fj_stress_cpu_2_9_none', + 'controllers.cgroup_fj_stress_cpu_2_9_one', + 'controllers.cgroup_fj_stress_cpu_3_3_each', + 'controllers.cgroup_fj_stress_cpu_3_3_none', + 'controllers.cgroup_fj_stress_cpu_3_3_one', + 'controllers.cgroup_fj_stress_cpu_4_4_each', + 'controllers.cgroup_fj_stress_cpu_4_4_none', + 'controllers.cgroup_fj_stress_cpu_4_4_one', + 'controllers.cgroup_fj_stress_cpuacct_10_3_each', + 'controllers.cgroup_fj_stress_cpuacct_10_3_none', + 'controllers.cgroup_fj_stress_cpuacct_10_3_one', + 'controllers.cgroup_fj_stress_cpuacct_1_200_each', + 'controllers.cgroup_fj_stress_cpuacct_1_200_none', + 'controllers.cgroup_fj_stress_cpuacct_1_200_one', + 'controllers.cgroup_fj_stress_cpuacct_200_1_each', + 'controllers.cgroup_fj_stress_cpuacct_200_1_none', + 'controllers.cgroup_fj_stress_cpuacct_200_1_one', + 'controllers.cgroup_fj_stress_cpuacct_2_9_each', + 'controllers.cgroup_fj_stress_cpuacct_2_9_none', + 'controllers.cgroup_fj_stress_cpuacct_2_9_one', + 'controllers.cgroup_fj_stress_cpuacct_3_3_each', + 'controllers.cgroup_fj_stress_cpuacct_3_3_none', + 'controllers.cgroup_fj_stress_cpuacct_3_3_one', + 'controllers.cgroup_fj_stress_cpuacct_4_4_each', + 'controllers.cgroup_fj_stress_cpuacct_4_4_none', + 'controllers.cgroup_fj_stress_cpuacct_4_4_one', + 'controllers.cgroup_fj_stress_cpuset_10_3_each', + 'controllers.cgroup_fj_stress_cpuset_10_3_none', + 'controllers.cgroup_fj_stress_cpuset_10_3_one', + 'controllers.cgroup_fj_stress_cpuset_1_200_each', + 'controllers.cgroup_fj_stress_cpuset_1_200_none', + 'controllers.cgroup_fj_stress_cpuset_1_200_one', + 'controllers.cgroup_fj_stress_cpuset_200_1_each', + 'controllers.cgroup_fj_stress_cpuset_200_1_none', + 'controllers.cgroup_fj_stress_cpuset_200_1_one', + 'controllers.cgroup_fj_stress_cpuset_2_9_each', + 'controllers.cgroup_fj_stress_cpuset_2_9_none', + 'controllers.cgroup_fj_stress_cpuset_2_9_one', + 'controllers.cgroup_fj_stress_cpuset_3_3_each', + 'controllers.cgroup_fj_stress_cpuset_3_3_none', + 'controllers.cgroup_fj_stress_cpuset_3_3_one', + 'controllers.cgroup_fj_stress_cpuset_4_4_each', + 'controllers.cgroup_fj_stress_cpuset_4_4_none', + 'controllers.cgroup_fj_stress_cpuset_4_4_one', + 'controllers.cgroup_fj_stress_debug_10_3_each', + 'controllers.cgroup_fj_stress_debug_10_3_none', + 'controllers.cgroup_fj_stress_debug_10_3_one', + 'controllers.cgroup_fj_stress_debug_1_200_each', + 'controllers.cgroup_fj_stress_debug_1_200_none', + 'controllers.cgroup_fj_stress_debug_1_200_one', + 'controllers.cgroup_fj_stress_debug_200_1_each', + 'controllers.cgroup_fj_stress_debug_200_1_none', + 'controllers.cgroup_fj_stress_debug_200_1_one', + 'controllers.cgroup_fj_stress_debug_2_9_each', + 'controllers.cgroup_fj_stress_debug_2_9_none', + 'controllers.cgroup_fj_stress_debug_2_9_one', + 'controllers.cgroup_fj_stress_debug_3_3_each', + 'controllers.cgroup_fj_stress_debug_3_3_none', + 'controllers.cgroup_fj_stress_debug_3_3_one', + 'controllers.cgroup_fj_stress_debug_4_4_each', + 'controllers.cgroup_fj_stress_debug_4_4_none', + 'controllers.cgroup_fj_stress_debug_4_4_one', + 'controllers.cgroup_fj_stress_devices_10_3_each', + 'controllers.cgroup_fj_stress_devices_10_3_none', + 'controllers.cgroup_fj_stress_devices_10_3_one', + 'controllers.cgroup_fj_stress_devices_1_200_each', + 'controllers.cgroup_fj_stress_devices_1_200_none', + 'controllers.cgroup_fj_stress_devices_1_200_one', + 'controllers.cgroup_fj_stress_devices_200_1_each', + 'controllers.cgroup_fj_stress_devices_200_1_none', + 'controllers.cgroup_fj_stress_devices_200_1_one', + 'controllers.cgroup_fj_stress_devices_2_9_each', + 'controllers.cgroup_fj_stress_devices_2_9_none', + 'controllers.cgroup_fj_stress_devices_2_9_one', + 'controllers.cgroup_fj_stress_devices_3_3_each', + 'controllers.cgroup_fj_stress_devices_3_3_none', + 'controllers.cgroup_fj_stress_devices_3_3_one', + 'controllers.cgroup_fj_stress_devices_4_4_each', + 'controllers.cgroup_fj_stress_devices_4_4_none', + 'controllers.cgroup_fj_stress_devices_4_4_one', + 'controllers.cgroup_fj_stress_freezer_10_3_each', + 'controllers.cgroup_fj_stress_freezer_10_3_none', + 'controllers.cgroup_fj_stress_freezer_10_3_one', + 'controllers.cgroup_fj_stress_freezer_1_200_each', + 'controllers.cgroup_fj_stress_freezer_1_200_none', + 'controllers.cgroup_fj_stress_freezer_1_200_one', + 'controllers.cgroup_fj_stress_freezer_200_1_each', + 'controllers.cgroup_fj_stress_freezer_200_1_none', + 'controllers.cgroup_fj_stress_freezer_200_1_one', + 'controllers.cgroup_fj_stress_freezer_2_9_each', + 'controllers.cgroup_fj_stress_freezer_2_9_none', + 'controllers.cgroup_fj_stress_freezer_2_9_one', + 'controllers.cgroup_fj_stress_freezer_3_3_each', + 'controllers.cgroup_fj_stress_freezer_3_3_none', + 'controllers.cgroup_fj_stress_freezer_3_3_one', + 'controllers.cgroup_fj_stress_freezer_4_4_each', + 'controllers.cgroup_fj_stress_freezer_4_4_none', + 'controllers.cgroup_fj_stress_freezer_4_4_one', + 'controllers.cgroup_fj_stress_hugetlb_10_3_each', + 'controllers.cgroup_fj_stress_hugetlb_10_3_none', + 'controllers.cgroup_fj_stress_hugetlb_10_3_one', + 'controllers.cgroup_fj_stress_hugetlb_1_200_each', + 'controllers.cgroup_fj_stress_hugetlb_1_200_none', + 'controllers.cgroup_fj_stress_hugetlb_1_200_one', + 'controllers.cgroup_fj_stress_hugetlb_200_1_each', + 'controllers.cgroup_fj_stress_hugetlb_200_1_none', + 'controllers.cgroup_fj_stress_hugetlb_200_1_one', + 'controllers.cgroup_fj_stress_hugetlb_2_9_each', + 'controllers.cgroup_fj_stress_hugetlb_2_9_none', + 'controllers.cgroup_fj_stress_hugetlb_2_9_one', + 'controllers.cgroup_fj_stress_hugetlb_3_3_each', + 'controllers.cgroup_fj_stress_hugetlb_3_3_none', + 'controllers.cgroup_fj_stress_hugetlb_3_3_one', + 'controllers.cgroup_fj_stress_hugetlb_4_4_each', + 'controllers.cgroup_fj_stress_hugetlb_4_4_none', + 'controllers.cgroup_fj_stress_hugetlb_4_4_one', + 'controllers.cgroup_fj_stress_memory_10_3_each', + 'controllers.cgroup_fj_stress_memory_10_3_none', + 'controllers.cgroup_fj_stress_memory_10_3_one', + 'controllers.cgroup_fj_stress_memory_1_200_each', + 'controllers.cgroup_fj_stress_memory_1_200_none', + 'controllers.cgroup_fj_stress_memory_1_200_one', + 'controllers.cgroup_fj_stress_memory_200_1_each', + 'controllers.cgroup_fj_stress_memory_200_1_none', + 'controllers.cgroup_fj_stress_memory_200_1_one', + 'controllers.cgroup_fj_stress_memory_2_9_each', + 'controllers.cgroup_fj_stress_memory_2_9_none', + 'controllers.cgroup_fj_stress_memory_2_9_one', + 'controllers.cgroup_fj_stress_memory_3_3_each', + 'controllers.cgroup_fj_stress_memory_3_3_none', + 'controllers.cgroup_fj_stress_memory_3_3_one', + 'controllers.cgroup_fj_stress_memory_4_4_each', + 'controllers.cgroup_fj_stress_memory_4_4_none', + 'controllers.cgroup_fj_stress_memory_4_4_one', + 'controllers.cgroup_fj_stress_net_cls_10_3_each', + 'controllers.cgroup_fj_stress_net_cls_10_3_none', + 'controllers.cgroup_fj_stress_net_cls_10_3_one', + 'controllers.cgroup_fj_stress_net_cls_1_200_each', + 'controllers.cgroup_fj_stress_net_cls_1_200_none', + 'controllers.cgroup_fj_stress_net_cls_1_200_one', + 'controllers.cgroup_fj_stress_net_cls_200_1_each', + 'controllers.cgroup_fj_stress_net_cls_200_1_none', + 'controllers.cgroup_fj_stress_net_cls_200_1_one', + 'controllers.cgroup_fj_stress_net_cls_2_9_each', + 'controllers.cgroup_fj_stress_net_cls_2_9_none', + 'controllers.cgroup_fj_stress_net_cls_2_9_one', + 'controllers.cgroup_fj_stress_net_cls_3_3_each', + 'controllers.cgroup_fj_stress_net_cls_3_3_none', + 'controllers.cgroup_fj_stress_net_cls_3_3_one', + 'controllers.cgroup_fj_stress_net_cls_4_4_each', + 'controllers.cgroup_fj_stress_net_cls_4_4_none', + 'controllers.cgroup_fj_stress_net_cls_4_4_one', + 'controllers.cgroup_fj_stress_net_prio_10_3_each', + 'controllers.cgroup_fj_stress_net_prio_10_3_none', + 'controllers.cgroup_fj_stress_net_prio_10_3_one', + 'controllers.cgroup_fj_stress_net_prio_1_200_each', + 'controllers.cgroup_fj_stress_net_prio_1_200_none', + 'controllers.cgroup_fj_stress_net_prio_1_200_one', + 'controllers.cgroup_fj_stress_net_prio_200_1_each', + 'controllers.cgroup_fj_stress_net_prio_200_1_none', + 'controllers.cgroup_fj_stress_net_prio_200_1_one', + 'controllers.cgroup_fj_stress_net_prio_2_9_each', + 'controllers.cgroup_fj_stress_net_prio_2_9_none', + 'controllers.cgroup_fj_stress_net_prio_2_9_one', + 'controllers.cgroup_fj_stress_net_prio_3_3_each', + 'controllers.cgroup_fj_stress_net_prio_3_3_none', + 'controllers.cgroup_fj_stress_net_prio_3_3_one', + 'controllers.cgroup_fj_stress_net_prio_4_4_each', + 'controllers.cgroup_fj_stress_net_prio_4_4_none', + 'controllers.cgroup_fj_stress_net_prio_4_4_one', + 'controllers.cgroup_fj_stress_perf_event_10_3_each', + 'controllers.cgroup_fj_stress_perf_event_10_3_none', + 'controllers.cgroup_fj_stress_perf_event_10_3_one', + 'controllers.cgroup_fj_stress_perf_event_1_200_each', + 'controllers.cgroup_fj_stress_perf_event_1_200_none', + 'controllers.cgroup_fj_stress_perf_event_1_200_one', + 'controllers.cgroup_fj_stress_perf_event_200_1_each', + 'controllers.cgroup_fj_stress_perf_event_200_1_none', + 'controllers.cgroup_fj_stress_perf_event_200_1_one', + 'controllers.cgroup_fj_stress_perf_event_2_9_each', + 'controllers.cgroup_fj_stress_perf_event_2_9_none', + 'controllers.cgroup_fj_stress_perf_event_2_9_one', + 'controllers.cgroup_fj_stress_perf_event_3_3_each', + 'controllers.cgroup_fj_stress_perf_event_3_3_none', + 'controllers.cgroup_fj_stress_perf_event_3_3_one', + 'controllers.cgroup_fj_stress_perf_event_4_4_each', + 'controllers.cgroup_fj_stress_perf_event_4_4_none', + 'controllers.cgroup_fj_stress_perf_event_4_4_one', + 'controllers.cgroup_xattr', + 'controllers.cpuacct_100_1', + 'controllers.cpuacct_100_100', + 'controllers.cpuacct_10_10', + 'controllers.cpuacct_1_10', + 'controllers.cpuacct_1_100', + 'controllers.cpuset_hotplug', + 'controllers.cpuset_inherit', + 'controllers.cpuset_regression_test', + 'controllers.memcg_failcnt', + 'controllers.memcg_force_empty', + 'controllers.memcg_limit_in_bytes', + 'controllers.memcg_max_usage_in_bytes', + 'controllers.memcg_memsw_limit_in_bytes', + 'controllers.memcg_move_charge_at_immigrate', + 'controllers.memcg_stat', + 'controllers.memcg_stat_rss', + 'controllers.memcg_stress', + 'controllers.memcg_subgroup_charge', + 'controllers.memcg_usage_in_bytes', + 'controllers.memcg_use_hierarchy', + 'cpuhotplug.cpuhotplug02', # b/31154962 + 'cpuhotplug.cpuhotplug03', + 'cpuhotplug.cpuhotplug04', # b/30688056 + 'cpuhotplug.cpuhotplug06', + 'cve.cve-2014-0196', # b/112350736 + 'cve.cve-2015-0235', # b/112350398 + 'cve.cve-2016-4470', # b/112354289 + 'cve.cve-2017-1000364', # b/112350736 + 'cve.cve-2017-5669', # b/112354289 + 'cve.cve-2017-5754', # b/123862031 + 'dio.dio04', + 'dio.dio10', + 'dio.dio29', # takes too long + 'dio.dio30', # takes too long + 'dma_thread_diotest.dma_thread_diotest1', # b/32100169 + 'dma_thread_diotest.dma_thread_diotest2', + 'dma_thread_diotest.dma_thread_diotest3', + 'dma_thread_diotest.dma_thread_diotest4', + 'dma_thread_diotest.dma_thread_diotest5', + 'dma_thread_diotest.dma_thread_diotest6', + 'dma_thread_diotest.dma_thread_diotest7', + 'fcntl-locktests_android.FCNTL_LOCKTESTS', + 'filecaps.Filecaps', + 'fs.fs_racer_32bit', # b/71780005 + 'fs.fs_racer_64bit', # b/71780005 + 'fs.ftest01', + 'fs.ftest03', + 'fs.ftest04', + 'fs.ftest05', + 'fs.ftest07', + 'fs.ftest08', + 'fs.gf01', + 'fs.gf02', + 'fs.gf03', + 'fs.gf04', + 'fs.gf05', + 'fs.gf06', + 'fs.gf07', + 'fs.gf08', + 'fs.gf09', + 'fs.gf10', + 'fs.gf11', + 'fs.gf14', + 'fs.gf15', + 'fs.gf16', + 'fs.gf17', + 'fs.gf18', + 'fs.gf19', + 'fs.gf20', + 'fs.gf21', + 'fs.gf22', + 'fs.gf23', + 'fs.gf24', + 'fs.gf25', + 'fs.gf26', + 'fs.gf27', + 'fs.gf28', + 'fs.gf29', + 'fs.gf30', + 'fs.inode02', # b/122260771 + 'fs.iogen01', + 'fs.isofs', + 'fs.proc01', # b/71415362 + 'fs.quota_remount_test01', # b/33008689 + 'fs.rwtest01', + 'fs.rwtest02', + 'fs.rwtest03', + 'fs.rwtest04', + 'fs.rwtest05', + 'fs_bind.BindMounts', + 'fs_ext4.ext4-persist-prealloc', + 'fs_ext4.ext4-uninit-groups', + 'fsx.fsx-linux', + 'fsx.fsx-linux', + 'hugetlb.hugemmap05_1', + 'hugetlb.hugemmap05_2', + 'hugetlb.hugemmap05_3', + 'input.input01_64bit', # unstable 64-bits tests + 'input.input02_64bit', + 'input.input04_64bit', + 'input.input05_64bit', + 'input.input06_32bit', + 'input.input06_64bit', + 'kernel_misc.kmsg01', # b/32343072 + 'kernel_misc.zram03', + 'mm.ksm01', + 'mm.ksm01_1', # b/71416672 + 'mm.ksm03', + 'mm.ksm03_1', + 'mm.mallocstress01', + 'mm.max_map_count_32bit', # b/67981135 + 'mm.max_map_count_64bit', # b/67981135 + 'mm.min_free_kbytes', + 'mm.mmapstress10', + 'mm.mtest01', + 'mm.mtest01w', # b/30699880 + 'mm.oom01_64bit', # b/31181781 + 'mm.oom02_64bit', + 'mm.oom03_64bit', + 'mm.oom04_64bit', + 'mm.oom05_64bit', + 'mm.overcommit_memory01_64bit', # failing 64-bit only tests + 'mm.overcommit_memory02_64bit', + 'mm.overcommit_memory03_64bit', + 'mm.overcommit_memory04_64bit', + 'mm.overcommit_memory05_64bit', + 'mm.overcommit_memory06_64bit', + 'mm.shm_test01', + 'mm.swapping01_64bit', # b/31181781 + 'mm.thp01_32bit', # b/65636203 + 'mm.thp01_64bit', + 'mm.thp02_64bit', + 'mm.thp03_64bit', + 'mm.vma01_64bit', # b/31181781 + 'mm.vma03', + 'pipes.pipeio_1', + 'pipes.pipeio_3', + 'pipes.pipeio_4', + 'pipes.pipeio_5', + 'pipes.pipeio_6', + 'pipes.pipeio_8', + 'sched.trace_sched01', + 'syscalls.access04', + 'syscalls.alarm02', # b/112423802 + 'syscalls.cve-2017-5669', # b/71416706 + 'syscalls.fchown04', + 'syscalls.fchown04_16', + 'syscalls.fcntl14', + 'syscalls.fcntl14', + 'syscalls.fcntl14_64', + 'syscalls.fcntl17', + 'syscalls.fcntl17_64', + 'syscalls.fcntl35', + 'syscalls.fcntl35_64', # b/71416738 + 'syscalls.fcntl36', + 'syscalls.fcntl36_64', # b/71416760 + 'syscalls.fork13', # takes too long: ~45mins + 'syscalls.gethostbyname_r01', + 'syscalls.getrusage04', # b/32386191 + 'syscalls.getxattr04', # b/65053723#comment20 + 'syscalls.inotify03', + 'syscalls.ioctl03', + 'syscalls.ioctl04', + 'syscalls.ioctl06', + 'syscalls.kcmp03', + 'syscalls.kill12', + 'syscalls.lchown03', + 'syscalls.lchown03_16', + 'syscalls.lstat03', + 'syscalls.lstat03_64', # b/30688551 + 'syscalls.mmap16', + 'syscalls.move_pages01', # move_pages syscalls requires userspace numa. + 'syscalls.move_pages02', + 'syscalls.move_pages03', + 'syscalls.move_pages04', + 'syscalls.move_pages05', + 'syscalls.move_pages06', + 'syscalls.move_pages07', + 'syscalls.move_pages08', + 'syscalls.move_pages09', + 'syscalls.move_pages10', + 'syscalls.move_pages11', + 'syscalls.move_pages12', + 'syscalls.nftw01', + 'syscalls.nftw6401', + 'syscalls.nice04', + 'syscalls.open08', + 'syscalls.open13', # https://android-review.googlesource.com/#/c/127908/ + 'syscalls.perf_event_open02', # b/30675443 + 'syscalls.prot_hsymlinks', + 'syscalls.pselect01', # b/65053723#comment19 + 'syscalls.readdir02', # b/112422073 + 'syscalls.rt_sigprocmask01_32bit', # b/31152672 + 'syscalls.set_thread_area01_64bit', #b/112474139 + 'syscalls.setpriority02', # b/73137289 + 'syscalls.setregid02', + 'syscalls.setregid02_16', + 'syscalls.sigrelse01', + 'syscalls.splice02', + 'syscalls.utimensat01', + 'syscalls.vfork02', + 'tracing.dynamic_debug01', # b/71416822 + 'tracing.ftrace_regression01', # b/69117476 +] + +# These tests fail under hwasan. +# mlock/mlockall tests activate lowmemorykiller and cause other unrelated tests to fail as well. +DISABLED_TESTS_HWASAN = [ # b/134613162 + 'clone02', + 'clone03', + 'clone05', + 'clone06', + 'clone08', + 'clone09', + 'getcwd01', + 'mem01', + 'mlock01', + 'mlock03', + 'mlockall01', + 'mlockall02', + 'mlockall03', + 'munlock01', + 'sendmmsg01', + 'sigaltstack01', + 'time-schedule01', +] diff --git a/ltp/testcase/tools/configs/stable_tests.py b/ltp/testcase/tools/configs/stable_tests.py new file mode 100644 index 00000000..4406dca8 --- /dev/null +++ b/ltp/testcase/tools/configs/stable_tests.py @@ -0,0 +1,2289 @@ +STABLE_TESTS = [ + ('commands.cp01_32bit', False), + ('commands.cp01_64bit', False), + ('commands.cpio01_32bit', False), + ('commands.cpio01_64bit', False), + ('commands.ldd_32bit', False), + ('commands.ldd_64bit', False), + ('commands.ln01_32bit', False), + ('commands.ln01_64bit', False), + ('commands.mkdir01_32bit', False), + ('commands.mkdir01_64bit', False), + ('containers.mountns01_32bit', False), + ('containers.mountns01_64bit', False), + ('containers.mountns02_32bit', False), + ('containers.mountns02_64bit', False), + ('containers.mountns03_32bit', False), + ('containers.mountns03_64bit', False), + ('containers.mountns04_32bit', False), + ('containers.mountns04_64bit', False), + ('controllers.memcg_regression_32bit', True), + ('controllers.memcg_regression_64bit', True), + ('cve.cve-2011-0999_32bit', False), + ('cve.cve-2011-0999_64bit', False), + ('cve.cve-2011-2496_32bit', False), + ('cve.cve-2011-2496_64bit', False), + ('cve.cve-2015-3290_32bit', False), + ('cve.cve-2015-3290_64bit', False), + ('cve.cve-2015-7550_32bit', False), + ('cve.cve-2015-7550_64bit', False), + ('cve.cve-2016-10044_32bit', False), + ('cve.cve-2016-10044_64bit', False), + ('cve.cve-2016-4470_32bit', False), + ('cve.cve-2016-4470_64bit', False), + ('cve.cve-2016-5195_32bit', False), + ('cve.cve-2016-5195_64bit', False), + ('cve.cve-2016-7042_32bit', False), + ('cve.cve-2016-7042_64bit', False), + ('cve.cve-2016-7117_32bit', False), + ('cve.cve-2016-7117_64bit', False), + ('cve.cve-2016-9604_32bit', False), + ('cve.cve-2016-9604_64bit', False), + ('cve.cve-2017-12192_32bit', False), + ('cve.cve-2017-12192_64bit', False), + ('cve.cve-2017-12193_32bit', False), + ('cve.cve-2017-12193_64bit', False), + ('cve.cve-2017-15274_32bit', False), + ('cve.cve-2017-15274_64bit', False), + ('cve.cve-2017-15299_32bit', False), + ('cve.cve-2017-15299_64bit', False), + ('cve.cve-2017-15537_32bit', False), + ('cve.cve-2017-15537_64bit', False), + ('cve.cve-2017-15951_32bit', False), + ('cve.cve-2017-15951_64bit', False), + ('cve.cve-2017-16939_32bit', False), + ('cve.cve-2017-16939_64bit', False), + ('cve.cve-2017-17052_32bit', False), + ('cve.cve-2017-17052_64bit', False), + ('cve.cve-2017-17053_32bit', False), + ('cve.cve-2017-17053_64bit', False), + ('cve.cve-2017-17807_32bit', False), + ('cve.cve-2017-17807_64bit', False), + ('cve.cve-2017-2618_32bit', False), + ('cve.cve-2017-2618_64bit', False), + ('cve.cve-2017-2671_32bit', False), + ('cve.cve-2017-2671_64bit', False), + ('cve.cve-2017-5669_32bit', False), + ('cve.cve-2017-5669_64bit', False), + ('cve.cve-2017-5754_32bit', False), + ('cve.cve-2017-5754_64bit', False), + ('cve.cve-2017-7308_32bit', False), + ('cve.cve-2017-7308_64bit', False), + ('cve.cve-2017-7472_32bit', False), + ('cve.cve-2017-7472_64bit', False), + ('cve.cve-2018-5803_32bit', False), + ('cve.cve-2018-5803_64bit', False), + ('dio.dio01_32bit', False), + ('dio.dio01_64bit', False), + ('dio.dio02_32bit', False), + ('dio.dio02_64bit', False), + ('dio.dio03_32bit', False), + ('dio.dio03_64bit', False), + ('dio.dio05_32bit', False), + ('dio.dio05_64bit', False), + ('dio.dio06_32bit', False), + ('dio.dio06_64bit', False), + ('dio.dio07_32bit', False), + ('dio.dio07_64bit', False), + ('dio.dio08_32bit', False), + ('dio.dio08_64bit', False), + ('dio.dio09_32bit', False), + ('dio.dio09_64bit', False), + ('dio.dio11_32bit', False), + ('dio.dio11_64bit', False), + ('dio.dio12_32bit', False), + ('dio.dio12_64bit', False), + ('dio.dio13_32bit', False), + ('dio.dio13_64bit', False), + ('dio.dio14_32bit', False), + ('dio.dio14_64bit', False), + ('dio.dio15_32bit', False), + ('dio.dio15_64bit', False), + ('dio.dio16_32bit', False), + ('dio.dio16_64bit', False), + ('dio.dio17_32bit', False), + ('dio.dio17_64bit', False), + ('dio.dio18_32bit', False), + ('dio.dio18_64bit', False), + ('dio.dio19_32bit', False), + ('dio.dio19_64bit', False), + ('dio.dio20_32bit', False), + ('dio.dio20_64bit', False), + ('dio.dio21_32bit', False), + ('dio.dio21_64bit', False), + ('dio.dio22_32bit', False), + ('dio.dio22_64bit', False), + ('dio.dio23_32bit', False), + ('dio.dio23_64bit', False), + ('dio.dio24_32bit', False), + ('dio.dio24_64bit', False), + ('dio.dio25_32bit', False), + ('dio.dio25_64bit', False), + ('dio.dio26_32bit', False), + ('dio.dio26_64bit', False), + ('dio.dio27_32bit', False), + ('dio.dio27_64bit', False), + ('dio.dio28_32bit', False), + ('dio.dio28_64bit', False), + ('fs.fs_di_32bit', False), + ('fs.fs_di_64bit', False), + ('fs.fs_fill_32bit', False), + ('fs.fs_fill_64bit', False), + ('fs.fs_inod01_32bit', False), + ('fs.fs_inod01_64bit', False), + ('fs.ftest02_32bit', False), + ('fs.ftest02_64bit', False), + ('fs.ftest06_32bit', False), + ('fs.ftest06_64bit', False), + ('fs.inode01_32bit', False), + ('fs.inode01_64bit', False), + ('fs.inode02_32bit', False), + ('fs.inode02_64bit', False), + ('fs.lftest01_32bit', False), + ('fs.lftest01_64bit', False), + ('fs.linker01_32bit', False), + ('fs.linker01_64bit', False), + ('fs.openfile01_32bit', False), + ('fs.openfile01_64bit', False), + ('fs.stream01_32bit', False), + ('fs.stream01_64bit', False), + ('fs.stream02_32bit', False), + ('fs.stream02_64bit', False), + ('fs.stream03_32bit', False), + ('fs.stream03_64bit', False), + ('fs.stream04_32bit', False), + ('fs.stream04_64bit', False), + ('fs.stream05_32bit', False), + ('fs.stream05_64bit', False), + ('fs.writetest01_32bit', False), + ('fs.writetest01_64bit', False), + ('fs_perms_simple.fs_perms01_32bit', False), + ('fs_perms_simple.fs_perms01_64bit', False), + ('fs_perms_simple.fs_perms02_32bit', False), + ('fs_perms_simple.fs_perms02_64bit', False), + ('fs_perms_simple.fs_perms03_32bit', False), + ('fs_perms_simple.fs_perms03_64bit', False), + ('fs_perms_simple.fs_perms04_32bit', False), + ('fs_perms_simple.fs_perms04_64bit', False), + ('fs_perms_simple.fs_perms05_32bit', False), + ('fs_perms_simple.fs_perms05_64bit', False), + ('fs_perms_simple.fs_perms06_32bit', False), + ('fs_perms_simple.fs_perms06_64bit', False), + ('fs_perms_simple.fs_perms07_32bit', False), + ('fs_perms_simple.fs_perms07_64bit', False), + ('fs_perms_simple.fs_perms08_32bit', False), + ('fs_perms_simple.fs_perms08_64bit', False), + ('fs_perms_simple.fs_perms09_32bit', False), + ('fs_perms_simple.fs_perms09_64bit', False), + ('fs_perms_simple.fs_perms10_32bit', False), + ('fs_perms_simple.fs_perms10_64bit', False), + ('fs_perms_simple.fs_perms11_32bit', False), + ('fs_perms_simple.fs_perms11_64bit', False), + ('fs_perms_simple.fs_perms12_32bit', False), + ('fs_perms_simple.fs_perms12_64bit', False), + ('fs_perms_simple.fs_perms13_32bit', False), + ('fs_perms_simple.fs_perms13_64bit', False), + ('fs_perms_simple.fs_perms14_32bit', False), + ('fs_perms_simple.fs_perms14_64bit', False), + ('fs_perms_simple.fs_perms15_32bit', False), + ('fs_perms_simple.fs_perms15_64bit', False), + ('fs_perms_simple.fs_perms16_32bit', False), + ('fs_perms_simple.fs_perms16_64bit', False), + ('fs_perms_simple.fs_perms17_32bit', False), + ('fs_perms_simple.fs_perms17_64bit', False), + ('fs_perms_simple.fs_perms18_32bit', False), + ('fs_perms_simple.fs_perms18_64bit', False), + ('input.input01_32bit', False), + ('input.input02_32bit', False), + ('input.input04_32bit', False), + ('input.input05_32bit', False), + ('io.aio01_32bit', False), + ('io.aio01_64bit', False), + ('io.aio02_32bit', False), + ('io.aio02_64bit', False), + ('ipc.pipe_test_01_32bit', False), + ('ipc.pipe_test_01_64bit', False), + ('ipc.pipe_test_02_32bit', False), + ('ipc.pipe_test_02_64bit', False), + ('ipc.pipeio_1_32bit', False), + ('ipc.pipeio_1_64bit', False), + ('ipc.pipeio_3_32bit', False), + ('ipc.pipeio_3_64bit', False), + ('ipc.pipeio_4_32bit', False), + ('ipc.pipeio_4_64bit', False), + ('ipc.pipeio_5_32bit', False), + ('ipc.pipeio_5_64bit', False), + ('ipc.pipeio_6_32bit', False), + ('ipc.pipeio_6_64bit', False), + ('ipc.pipeio_8_32bit', False), + ('ipc.pipeio_8_64bit', False), + ('ipc.signal_test_02_32bit', False), + ('ipc.signal_test_02_64bit', False), + ('ipc.signal_test_03_32bit', False), + ('ipc.signal_test_03_64bit', False), + ('ipc.signal_test_04_32bit', False), + ('ipc.signal_test_04_64bit', False), + ('ipc.signal_test_05_32bit', False), + ('ipc.signal_test_05_64bit', False), + ('ipc.signal_test_06_32bit', False), + ('ipc.signal_test_06_64bit', False), + ('ipc.signal_test_07_32bit', False), + ('ipc.signal_test_07_64bit', False), + ('math.abs01_32bit', False), + ('math.abs01_64bit', False), + ('math.atof01_32bit', False), + ('math.atof01_64bit', False), + ('math.fptest01_32bit', False), + ('math.fptest01_64bit', False), + ('math.fptest02_32bit', False), + ('math.fptest02_64bit', False), + ('math.nextafter01_32bit', False), + ('math.nextafter01_64bit', False), + ('mm.data_space_32bit', False), + ('mm.data_space_64bit', False), + ('mm.max_map_count_32bit', False), + ('mm.max_map_count_64bit', False), + ('mm.mem01_32bit', False), + ('mm.mem01_64bit', False), + ('mm.mem02_32bit', False), + ('mm.mem02_64bit', False), + ('mm.mem03_32bit', False), + ('mm.mem03_64bit', False), + ('mm.mm01_32bit', False), + ('mm.mm01_64bit', False), + ('mm.mm02_32bit', False), + ('mm.mm02_64bit', False), + ('mm.mmap10_1_32bit', False), + ('mm.mmap10_1_64bit', False), + ('mm.mmap10_32bit', False), + ('mm.mmap10_64bit', False), + ('mm.mmapstress01_32bit', False), + ('mm.mmapstress01_64bit', False), + ('mm.mmapstress02_32bit', False), + ('mm.mmapstress02_64bit', False), + ('mm.mmapstress03_32bit', False), + ('mm.mmapstress03_64bit', False), + ('mm.mmapstress04_32bit', False), + ('mm.mmapstress04_64bit', False), + ('mm.mmapstress05_32bit', False), + ('mm.mmapstress05_64bit', False), + ('mm.mmapstress06_32bit', False), + ('mm.mmapstress06_64bit', False), + ('mm.mmapstress07_32bit', False), + ('mm.mmapstress07_64bit', False), + ('mm.mmapstress09_32bit', False), + ('mm.mmapstress09_64bit', False), + ('mm.mtest05_32bit', False), + ('mm.mtest05_64bit', False), + ('mm.mtest06_2_32bit', False), + ('mm.mtest06_2_64bit', False), + ('mm.mtest06_32bit', False), + ('mm.mtest06_3_32bit', False), + ('mm.mtest06_3_64bit', False), + ('mm.mtest06_64bit', False), + ('mm.page01_32bit', False), + ('mm.page01_64bit', False), + ('mm.page02_32bit', False), + ('mm.page02_64bit', False), + ('mm.stack_space_32bit', False), + ('mm.stack_space_64bit', False), + ('mm.vma01_32bit', False), + ('modules.delete_module02_32bit', False), + ('modules.delete_module02_64bit', False), + ('nptl.nptl01_32bit', False), + ('nptl.nptl01_64bit', False), + ('pty.hangup01_32bit', False), + ('pty.hangup01_64bit', False), + ('pty.ptem01_32bit', False), + ('pty.ptem01_64bit', False), + ('pty.pty01_32bit', False), + ('pty.pty01_64bit', False), + ('pty.pty02_32bit', False), + ('pty.pty02_64bit', False), + ('sched.hackbench01_32bit', False), + ('sched.hackbench01_64bit', False), + ('sched.hackbench01_low_mem_32bit', False), + ('sched.hackbench01_low_mem_64bit', False), + ('sched.hackbench02_32bit', False), + ('sched.hackbench02_64bit', False), + ('sched.pth_str01_32bit', False), + ('sched.pth_str01_64bit', False), + ('sched.pth_str02_32bit', False), + ('sched.pth_str02_64bit', False), + ('sched.pth_str03_32bit', False), + ('sched.pth_str03_64bit', False), + ('sched.sched_cli_serv_32bit', False), + ('sched.sched_cli_serv_64bit', False), + ('sched.sched_getattr01_32bit', False), + ('sched.sched_getattr01_64bit', False), + ('sched.sched_getattr02_32bit', False), + ('sched.sched_getattr02_64bit', False), + ('sched.sched_setattr01_32bit', False), + ('sched.sched_setattr01_64bit', False), + ('sched.sched_stress_32bit', False), + ('sched.sched_stress_64bit', False), + ('sched.time-schedule01_32bit', False), + ('sched.time-schedule01_64bit', False), + ('securebits.check_keepcaps01_32bit', False), + ('securebits.check_keepcaps01_64bit', False), + ('securebits.check_keepcaps02_32bit', False), + ('securebits.check_keepcaps02_64bit', False), + ('securebits.check_keepcaps03_32bit', False), + ('securebits.check_keepcaps03_64bit', False), + ('syscalls.abort01_32bit', False), + ('syscalls.abort01_64bit', False), + ('syscalls.accept01_32bit', True), + ('syscalls.accept01_64bit', True), + ('syscalls.accept4_01_32bit', True), + ('syscalls.accept4_01_64bit', True), + ('syscalls.access01_32bit', True), + ('syscalls.access01_64bit', True), + ('syscalls.access02_32bit', True), + ('syscalls.access02_64bit', True), + ('syscalls.access03_32bit', True), + ('syscalls.access03_64bit', True), + ('syscalls.access05_32bit', True), + ('syscalls.access05_64bit', True), + ('syscalls.add_key01_32bit', True), + ('syscalls.add_key01_64bit', True), + ('syscalls.add_key02_32bit', True), + ('syscalls.add_key02_64bit', True), + ('syscalls.add_key03_32bit', True), + ('syscalls.add_key03_64bit', True), + ('syscalls.add_key04_32bit', True), + ('syscalls.add_key04_64bit', True), + ('syscalls.adjtimex01_32bit', True), + ('syscalls.adjtimex01_64bit', True), + ('syscalls.adjtimex02_32bit', True), + ('syscalls.adjtimex02_64bit', True), + ('syscalls.alarm03_32bit', True), + ('syscalls.alarm03_64bit', True), + ('syscalls.alarm05_32bit', True), + ('syscalls.alarm05_64bit', True), + ('syscalls.alarm06_32bit', True), + ('syscalls.alarm06_64bit', True), + ('syscalls.alarm07_32bit', True), + ('syscalls.alarm07_64bit', True), + ('syscalls.asyncio02_32bit', False), + ('syscalls.asyncio02_64bit', False), + ('syscalls.bdflush01_32bit', True), + ('syscalls.bdflush01_64bit', False), # b/122729903 + ('syscalls.bind01_32bit', True), + ('syscalls.bind01_64bit', True), + ('syscalls.bind02_32bit', True), + ('syscalls.bind02_64bit', True), + ('syscalls.brk01_32bit', True), + ('syscalls.brk01_64bit', True), + ('syscalls.capget01_32bit', True), + ('syscalls.capget01_64bit', True), + ('syscalls.capget02_32bit', True), + ('syscalls.capget02_64bit', True), + ('syscalls.capset01_32bit', True), + ('syscalls.capset01_64bit', True), + ('syscalls.capset02_32bit', True), + ('syscalls.capset02_64bit', True), + ('syscalls.chdir01A_32bit', True), + ('syscalls.chdir01A_64bit', True), + ('syscalls.chdir01_32bit', True), + ('syscalls.chdir01_64bit', True), + ('syscalls.chdir02_32bit', True), + ('syscalls.chdir02_64bit', True), + ('syscalls.chdir03_32bit', True), + ('syscalls.chdir03_64bit', True), + ('syscalls.chdir04_32bit', True), + ('syscalls.chdir04_64bit', True), + ('syscalls.chmod01A_32bit', True), + ('syscalls.chmod01A_64bit', True), + ('syscalls.chmod01_32bit', True), + ('syscalls.chmod01_64bit', True), + ('syscalls.chmod02_32bit', True), + ('syscalls.chmod02_64bit', True), + ('syscalls.chmod03_32bit', True), + ('syscalls.chmod03_64bit', True), + ('syscalls.chmod04_32bit', True), + ('syscalls.chmod04_64bit', True), + ('syscalls.chmod05_32bit', True), + ('syscalls.chmod05_64bit', True), + ('syscalls.chmod07_32bit', True), + ('syscalls.chmod07_64bit', True), + ('syscalls.chown01_16_32bit', True), + ('syscalls.chown01_32bit', True), + ('syscalls.chown01_64bit', True), + ('syscalls.chown02_16_32bit', True), + ('syscalls.chown02_32bit', True), + ('syscalls.chown02_64bit', True), + ('syscalls.chown03_16_32bit', True), + ('syscalls.chown03_32bit', True), + ('syscalls.chown03_64bit', True), + ('syscalls.chown05_16_32bit', True), + ('syscalls.chown05_32bit', True), + ('syscalls.chown05_64bit', True), + ('syscalls.chroot01_32bit', True), + ('syscalls.chroot01_64bit', True), + ('syscalls.chroot02_32bit', True), + ('syscalls.chroot02_64bit', True), + ('syscalls.chroot03_32bit', True), + ('syscalls.chroot03_64bit', True), + ('syscalls.chroot04_32bit', True), + ('syscalls.chroot04_64bit', True), + ('syscalls.clock_getres01_32bit', True), + ('syscalls.clock_getres01_64bit', True), + ('syscalls.clock_nanosleep01_32bit', True), + ('syscalls.clock_nanosleep01_64bit', True), + ('syscalls.clock_nanosleep02_32bit', True), + ('syscalls.clock_nanosleep02_64bit', True), + ('syscalls.clock_nanosleep2_01_32bit', True), + ('syscalls.clock_nanosleep2_01_64bit', True), + ('syscalls.clone01_32bit', True), + ('syscalls.clone01_64bit', True), + ('syscalls.clone02_32bit', True), + ('syscalls.clone02_64bit', True), + ('syscalls.clone03_32bit', True), + ('syscalls.clone03_64bit', True), + ('syscalls.clone04_32bit', True), + ('syscalls.clone04_64bit', True), + ('syscalls.clone05_32bit', True), + ('syscalls.clone05_64bit', True), + ('syscalls.clone06_32bit', True), + ('syscalls.clone06_64bit', True), + ('syscalls.clone07_32bit', True), + ('syscalls.clone07_64bit', True), + ('syscalls.clone08_32bit', True), + ('syscalls.clone08_64bit', True), + ('syscalls.clone09_32bit', False), # b/123587295 + ('syscalls.clone09_64bit', False), # b/123587295 + ('syscalls.close01_32bit', True), + ('syscalls.close01_64bit', True), + ('syscalls.close02_32bit', True), + ('syscalls.close02_64bit', True), + ('syscalls.close08_32bit', True), + ('syscalls.close08_64bit', True), + ('syscalls.connect01_32bit', True), + ('syscalls.connect01_64bit', True), + ('syscalls.copy_file_range01_32bit', False), # b/122729903 + ('syscalls.copy_file_range01_64bit', False), # b/122729903 + ('syscalls.creat01_32bit', True), + ('syscalls.creat01_64bit', True), + ('syscalls.creat03_32bit', True), + ('syscalls.creat03_64bit', True), + ('syscalls.creat04_32bit', True), + ('syscalls.creat04_64bit', True), + ('syscalls.creat05_32bit', True), + ('syscalls.creat05_64bit', True), + ('syscalls.creat07_32bit', True), + ('syscalls.creat07_64bit', True), + ('syscalls.creat08_32bit', True), + ('syscalls.creat08_64bit', True), + ('syscalls.dirtyc0w_32bit', False), + ('syscalls.dirtyc0w_64bit', False), + ('syscalls.dup01_32bit', True), + ('syscalls.dup01_64bit', True), + ('syscalls.dup02_32bit', True), + ('syscalls.dup02_64bit', True), + ('syscalls.dup03_32bit', True), + ('syscalls.dup03_64bit', True), + ('syscalls.dup04_32bit', True), + ('syscalls.dup04_64bit', True), + ('syscalls.dup05_32bit', True), + ('syscalls.dup05_64bit', True), + ('syscalls.dup06_32bit', True), + ('syscalls.dup06_64bit', True), + ('syscalls.dup07_32bit', True), + ('syscalls.dup07_64bit', True), + ('syscalls.dup201_32bit', True), + ('syscalls.dup201_64bit', True), + ('syscalls.dup202_32bit', True), + ('syscalls.dup202_64bit', True), + ('syscalls.dup203_32bit', True), + ('syscalls.dup203_64bit', True), + ('syscalls.dup204_32bit', True), + ('syscalls.dup204_64bit', True), + ('syscalls.dup205_32bit', True), + ('syscalls.dup205_64bit', True), + ('syscalls.dup3_01_32bit', True), + ('syscalls.dup3_01_64bit', True), + ('syscalls.dup3_02_32bit', True), + ('syscalls.dup3_02_64bit', True), + ('syscalls.epoll01_32bit', True), + ('syscalls.epoll01_64bit', True), + ('syscalls.epoll_create1_01_32bit', True), + ('syscalls.epoll_create1_01_64bit', True), + ('syscalls.epoll_ctl01_32bit', True), + ('syscalls.epoll_ctl01_64bit', True), + ('syscalls.epoll_ctl02_32bit', True), + ('syscalls.epoll_ctl02_64bit', True), + ('syscalls.epoll_pwait01_32bit', True), + ('syscalls.epoll_pwait01_64bit', True), + ('syscalls.epoll_wait01_32bit', True), + ('syscalls.epoll_wait01_64bit', True), + ('syscalls.epoll_wait02_32bit', True), + ('syscalls.epoll_wait02_64bit', True), + ('syscalls.epoll_wait03_32bit', True), + ('syscalls.epoll_wait03_64bit', True), + ('syscalls.eventfd01_32bit', True), + ('syscalls.eventfd2_01_32bit', True), + ('syscalls.eventfd2_01_64bit', True), + ('syscalls.eventfd2_02_32bit', True), + ('syscalls.eventfd2_02_64bit', True), + ('syscalls.eventfd2_03_32bit', True), + ('syscalls.eventfd2_03_64bit', True), + ('syscalls.execl01_32bit', False), + ('syscalls.execl01_64bit', False), + ('syscalls.execle01_32bit', False), + ('syscalls.execle01_64bit', False), + ('syscalls.execlp01_32bit', False), + ('syscalls.execlp01_64bit', False), + ('syscalls.execv01_32bit', False), + ('syscalls.execv01_64bit', False), + ('syscalls.execve01_32bit', True), + ('syscalls.execve01_64bit', True), + ('syscalls.execve02_32bit', True), + ('syscalls.execve02_64bit', True), + ('syscalls.execve03_32bit', True), + ('syscalls.execve03_64bit', True), + ('syscalls.execve04_32bit', True), + ('syscalls.execve04_64bit', True), + ('syscalls.execve05_32bit', True), + ('syscalls.execve05_64bit', True), + ('syscalls.execveat01_32bit', False), # b/122888513 + ('syscalls.execveat01_64bit', False), # b/122888513 + ('syscalls.execveat02_32bit', False), # b/122888513 + ('syscalls.execveat02_64bit', False), # b/122888513 + ('syscalls.execvp01_32bit', False), + ('syscalls.execvp01_64bit', False), + ('syscalls.exit01_32bit', True), + ('syscalls.exit01_64bit', True), + ('syscalls.exit02_32bit', True), + ('syscalls.exit02_64bit', True), + ('syscalls.exit_group01_32bit', True), + ('syscalls.exit_group01_64bit', True), + ('syscalls.faccessat01_32bit', True), + ('syscalls.faccessat01_64bit', True), + ('syscalls.fallocate01_32bit', True), + ('syscalls.fallocate01_64bit', True), + ('syscalls.fallocate02_32bit', True), + ('syscalls.fallocate02_64bit', True), + ('syscalls.fallocate03_32bit', True), + ('syscalls.fallocate03_64bit', True), + ('syscalls.fallocate04_32bit', True), + ('syscalls.fallocate04_64bit', True), + ('syscalls.fallocate05_32bit', True), + ('syscalls.fallocate05_64bit', True), + ('syscalls.fchdir01_32bit', True), + ('syscalls.fchdir01_64bit', True), + ('syscalls.fchdir02_32bit', True), + ('syscalls.fchdir02_64bit', True), + ('syscalls.fchdir03_32bit', True), + ('syscalls.fchdir03_64bit', True), + ('syscalls.fchmod01_32bit', True), + ('syscalls.fchmod01_64bit', True), + ('syscalls.fchmod02_32bit', True), + ('syscalls.fchmod02_64bit', True), + ('syscalls.fchmod03_32bit', True), + ('syscalls.fchmod03_64bit', True), + ('syscalls.fchmod04_32bit', True), + ('syscalls.fchmod04_64bit', True), + ('syscalls.fchmod05_32bit', True), + ('syscalls.fchmod05_64bit', True), + ('syscalls.fchmod06_32bit', True), + ('syscalls.fchmod06_64bit', True), + ('syscalls.fchmod07_32bit', True), + ('syscalls.fchmod07_64bit', True), + ('syscalls.fchmodat01_32bit', True), + ('syscalls.fchmodat01_64bit', True), + ('syscalls.fchown01_16_32bit', True), + ('syscalls.fchown01_32bit', True), + ('syscalls.fchown01_64bit', True), + ('syscalls.fchown02_16_32bit', True), + ('syscalls.fchown02_32bit', True), + ('syscalls.fchown02_64bit', True), + ('syscalls.fchown03_16_32bit', True), + ('syscalls.fchown03_32bit', True), + ('syscalls.fchown03_64bit', True), + ('syscalls.fchown05_16_32bit', True), + ('syscalls.fchown05_32bit', True), + ('syscalls.fchown05_64bit', True), + ('syscalls.fchownat01_32bit', True), + ('syscalls.fchownat01_64bit', True), + ('syscalls.fchownat02_32bit', True), + ('syscalls.fchownat02_64bit', True), + ('syscalls.fcntl01_32bit', True), + ('syscalls.fcntl01_64_32bit', True), + ('syscalls.fcntl01_64_64bit', True), + ('syscalls.fcntl01_64bit', True), + ('syscalls.fcntl02_32bit', True), + ('syscalls.fcntl02_64_32bit', True), + ('syscalls.fcntl02_64_64bit', True), + ('syscalls.fcntl02_64bit', True), + ('syscalls.fcntl03_32bit', True), + ('syscalls.fcntl03_64_32bit', True), + ('syscalls.fcntl03_64_64bit', True), + ('syscalls.fcntl03_64bit', True), + ('syscalls.fcntl04_32bit', True), + ('syscalls.fcntl04_64_32bit', True), + ('syscalls.fcntl04_64_64bit', True), + ('syscalls.fcntl04_64bit', True), + ('syscalls.fcntl05_32bit', True), + ('syscalls.fcntl05_64_32bit', True), + ('syscalls.fcntl05_64_64bit', True), + ('syscalls.fcntl05_64bit', True), + ('syscalls.fcntl07_32bit', True), + ('syscalls.fcntl07_64_32bit', True), + ('syscalls.fcntl07_64_64bit', True), + ('syscalls.fcntl07_64bit', True), + ('syscalls.fcntl08_32bit', True), + ('syscalls.fcntl08_64_32bit', True), + ('syscalls.fcntl08_64_64bit', True), + ('syscalls.fcntl08_64bit', True), + ('syscalls.fcntl09_32bit', True), + ('syscalls.fcntl09_64_32bit', True), + ('syscalls.fcntl09_64_64bit', True), + ('syscalls.fcntl09_64bit', True), + ('syscalls.fcntl10_32bit', True), + ('syscalls.fcntl10_64_32bit', True), + ('syscalls.fcntl10_64_64bit', True), + ('syscalls.fcntl10_64bit', True), + ('syscalls.fcntl11_32bit', True), + ('syscalls.fcntl11_64_32bit', True), + ('syscalls.fcntl11_64_64bit', True), + ('syscalls.fcntl11_64bit', True), + ('syscalls.fcntl12_32bit', True), + ('syscalls.fcntl12_64_32bit', True), + ('syscalls.fcntl12_64_64bit', True), + ('syscalls.fcntl12_64bit', True), + ('syscalls.fcntl13_32bit', True), + ('syscalls.fcntl13_64_32bit', True), + ('syscalls.fcntl13_64_64bit', True), + ('syscalls.fcntl13_64bit', True), + ('syscalls.fcntl15_32bit', True), + ('syscalls.fcntl15_64_32bit', True), + ('syscalls.fcntl15_64_64bit', True), + ('syscalls.fcntl15_64bit', True), + ('syscalls.fcntl16_32bit', True), + ('syscalls.fcntl16_64_32bit', True), + ('syscalls.fcntl16_64_64bit', True), + ('syscalls.fcntl16_64bit', True), + ('syscalls.fcntl18_32bit', True), + ('syscalls.fcntl18_64_32bit', True), + ('syscalls.fcntl18_64_64bit', True), + ('syscalls.fcntl18_64bit', True), + ('syscalls.fcntl19_32bit', True), + ('syscalls.fcntl19_64_32bit', True), + ('syscalls.fcntl19_64_64bit', True), + ('syscalls.fcntl19_64bit', True), + ('syscalls.fcntl20_32bit', True), + ('syscalls.fcntl20_64_32bit', True), + ('syscalls.fcntl20_64_64bit', True), + ('syscalls.fcntl20_64bit', True), + ('syscalls.fcntl21_32bit', True), + ('syscalls.fcntl21_64_32bit', True), + ('syscalls.fcntl21_64_64bit', True), + ('syscalls.fcntl21_64bit', True), + ('syscalls.fcntl22_32bit', True), + ('syscalls.fcntl22_64_32bit', True), + ('syscalls.fcntl22_64_64bit', True), + ('syscalls.fcntl22_64bit', True), + ('syscalls.fcntl23_32bit', True), + ('syscalls.fcntl23_64_32bit', True), + ('syscalls.fcntl23_64_64bit', True), + ('syscalls.fcntl23_64bit', True), + ('syscalls.fcntl24_32bit', True), + ('syscalls.fcntl24_64_32bit', True), + ('syscalls.fcntl24_64_64bit', True), + ('syscalls.fcntl24_64bit', True), + ('syscalls.fcntl25_32bit', True), + ('syscalls.fcntl25_64_32bit', True), + ('syscalls.fcntl25_64_64bit', True), + ('syscalls.fcntl25_64bit', True), + ('syscalls.fcntl26_32bit', True), + ('syscalls.fcntl26_64_32bit', True), + ('syscalls.fcntl26_64_64bit', True), + ('syscalls.fcntl26_64bit', True), + ('syscalls.fcntl27_32bit', True), + ('syscalls.fcntl27_64_32bit', True), + ('syscalls.fcntl27_64_64bit', True), + ('syscalls.fcntl27_64bit', True), + ('syscalls.fcntl28_32bit', True), + ('syscalls.fcntl28_64_32bit', True), + ('syscalls.fcntl28_64_64bit', True), + ('syscalls.fcntl28_64bit', True), + ('syscalls.fcntl29_32bit', True), + ('syscalls.fcntl29_64_32bit', True), + ('syscalls.fcntl29_64_64bit', True), + ('syscalls.fcntl29_64bit', True), + ('syscalls.fcntl30_32bit', True), + ('syscalls.fcntl30_64_32bit', True), + ('syscalls.fcntl30_64_64bit', True), + ('syscalls.fcntl30_64bit', True), + ('syscalls.fcntl31_32bit', True), + ('syscalls.fcntl31_64_32bit', True), + ('syscalls.fcntl31_64_64bit', True), + ('syscalls.fcntl31_64bit', True), + ('syscalls.fcntl32_32bit', True), + ('syscalls.fcntl32_64_32bit', True), + ('syscalls.fcntl32_64_64bit', True), + ('syscalls.fcntl32_64bit', True), + ('syscalls.fcntl33_32bit', True), + ('syscalls.fcntl33_64_32bit', True), + ('syscalls.fcntl33_64_64bit', True), + ('syscalls.fcntl33_64bit', True), + ('syscalls.fcntl34_32bit', True), + ('syscalls.fcntl34_64_32bit', True), + ('syscalls.fcntl34_64_64bit', True), + ('syscalls.fcntl34_64bit', True), + ('syscalls.fdatasync01_32bit', True), + ('syscalls.fdatasync01_64bit', True), + ('syscalls.fdatasync02_32bit', True), + ('syscalls.fdatasync02_64bit', True), + ('syscalls.fgetxattr01_32bit', True), + ('syscalls.fgetxattr01_64bit', True), + ('syscalls.fgetxattr02_32bit', True), + ('syscalls.fgetxattr02_64bit', True), + ('syscalls.fgetxattr03_32bit', True), + ('syscalls.fgetxattr03_64bit', True), + ('syscalls.flistxattr01_32bit', True), + ('syscalls.flistxattr01_64bit', True), + ('syscalls.flistxattr02_32bit', True), + ('syscalls.flistxattr02_64bit', True), + ('syscalls.flistxattr03_32bit', True), + ('syscalls.flistxattr03_64bit', True), + ('syscalls.flock01_32bit', True), + ('syscalls.flock01_64bit', True), + ('syscalls.flock02_32bit', True), + ('syscalls.flock02_64bit', True), + ('syscalls.flock03_32bit', True), + ('syscalls.flock03_64bit', True), + ('syscalls.flock04_32bit', True), + ('syscalls.flock04_64bit', True), + ('syscalls.flock05_32bit', True), + ('syscalls.flock05_64bit', True), + ('syscalls.flock06_32bit', True), + ('syscalls.flock06_64bit', True), + ('syscalls.fork01_32bit', True), + ('syscalls.fork01_64bit', True), + ('syscalls.fork02_32bit', True), + ('syscalls.fork02_64bit', True), + ('syscalls.fork03_32bit', True), + ('syscalls.fork03_64bit', True), + ('syscalls.fork04_32bit', True), + ('syscalls.fork04_64bit', True), + ('syscalls.fork05_32bit', False), + ('syscalls.fork05_64bit', False), + ('syscalls.fork06_32bit', True), + ('syscalls.fork06_64bit', True), + ('syscalls.fork07_32bit', True), + ('syscalls.fork07_64bit', True), + ('syscalls.fork08_32bit', True), + ('syscalls.fork08_64bit', True), + ('syscalls.fork09_32bit', True), + ('syscalls.fork09_64bit', True), + ('syscalls.fork10_32bit', True), + ('syscalls.fork10_64bit', True), + ('syscalls.fork11_32bit', True), + ('syscalls.fork11_64bit', True), + ('syscalls.fpathconf01_32bit', False), + ('syscalls.fpathconf01_64bit', False), + ('syscalls.fremovexattr01_32bit', True), + ('syscalls.fremovexattr01_64bit', True), + ('syscalls.fremovexattr02_32bit', True), + ('syscalls.fremovexattr02_64bit', True), + ('syscalls.fsetxattr01_32bit', True), + ('syscalls.fsetxattr01_64bit', True), + ('syscalls.fsetxattr02_32bit', True), + ('syscalls.fsetxattr02_64bit', True), + ('syscalls.fstat01_32bit', True), + ('syscalls.fstat01_64_32bit', True), + ('syscalls.fstat01_64_64bit', True), + ('syscalls.fstat01_64bit', True), + ('syscalls.fstat02_32bit', True), + ('syscalls.fstat02_64_32bit', True), + ('syscalls.fstat02_64_64bit', True), + ('syscalls.fstat02_64bit', True), + ('syscalls.fstat03_32bit', True), + ('syscalls.fstat03_64_32bit', True), + ('syscalls.fstat03_64_64bit', True), + ('syscalls.fstat03_64bit', True), + ('syscalls.fstat05_32bit', True), + ('syscalls.fstat05_64_32bit', True), + ('syscalls.fstat05_64_64bit', True), + ('syscalls.fstat05_64bit', True), + ('syscalls.fstatat01_32bit', True), + ('syscalls.fstatat01_64bit', True), + ('syscalls.fstatfs01_32bit', True), + ('syscalls.fstatfs01_64_32bit', True), + ('syscalls.fstatfs01_64_64bit', True), + ('syscalls.fstatfs01_64bit', True), + ('syscalls.fstatfs02_32bit', True), + ('syscalls.fstatfs02_64_32bit', True), + ('syscalls.fstatfs02_64_64bit', True), + ('syscalls.fstatfs02_64bit', True), + ('syscalls.fsync01_32bit', True), + ('syscalls.fsync01_64bit', True), + ('syscalls.fsync02_32bit', True), + ('syscalls.fsync02_64bit', True), + ('syscalls.fsync03_32bit', True), + ('syscalls.fsync03_64bit', True), + ('syscalls.ftruncate01_32bit', True), + ('syscalls.ftruncate01_64_32bit', True), + ('syscalls.ftruncate01_64_64bit', True), + ('syscalls.ftruncate01_64bit', True), + ('syscalls.ftruncate02_32bit', True), + ('syscalls.ftruncate02_64_32bit', True), + ('syscalls.ftruncate02_64_64bit', True), + ('syscalls.ftruncate02_64bit', True), + ('syscalls.ftruncate03_32bit', True), + ('syscalls.ftruncate03_64_32bit', True), + ('syscalls.ftruncate03_64_64bit', True), + ('syscalls.ftruncate03_64bit', True), + ('syscalls.ftruncate04_32bit', True), + ('syscalls.ftruncate04_64_32bit', True), + ('syscalls.ftruncate04_64_64bit', True), + ('syscalls.ftruncate04_64bit', True), + ('syscalls.futex_wait01_32bit', True), + ('syscalls.futex_wait01_64bit', True), + ('syscalls.futex_wait03_32bit', True), + ('syscalls.futex_wait03_64bit', True), + ('syscalls.futex_wait04_32bit', True), + ('syscalls.futex_wait04_64bit', True), + ('syscalls.futex_wait05_32bit', True), + ('syscalls.futex_wait05_64bit', True), + ('syscalls.futex_wait_bitset01_32bit', True), + ('syscalls.futex_wait_bitset01_64bit', True), + ('syscalls.futex_wait_bitset02_32bit', True), + ('syscalls.futex_wait_bitset02_64bit', True), + ('syscalls.futex_wake01_32bit', True), + ('syscalls.futex_wake01_64bit', True), + ('syscalls.futex_wake02_32bit', True), + ('syscalls.futex_wake02_64bit', True), + ('syscalls.futimesat01_32bit', True), + ('syscalls.futimesat01_64bit', False), # b/122729903 + ('syscalls.get_robust_list01_32bit', True), + ('syscalls.get_robust_list01_64bit', True), + ('syscalls.getcpu01_32bit', True), + ('syscalls.getcpu01_64bit', True), + ('syscalls.getcwd01_32bit', True), + ('syscalls.getcwd01_64bit', True), + ('syscalls.getcwd02_32bit', True), + ('syscalls.getcwd02_64bit', True), + ('syscalls.getcwd03_32bit', True), + ('syscalls.getcwd03_64bit', True), + ('syscalls.getcwd04_32bit', False), + ('syscalls.getcwd04_64bit', False), + ('syscalls.getdents01_32bit', True), + ('syscalls.getdents01_64_32bit', True), + ('syscalls.getdents01_64_64bit', True), + ('syscalls.getdents01_64bit', False), # b/122729903 + ('syscalls.getdents02_32bit', True), + ('syscalls.getdents02_64_32bit', True), + ('syscalls.getdents02_64_64bit', True), + ('syscalls.getdents02_64bit', False), # b/122729903 + ('syscalls.getdomainname01_32bit', False), + ('syscalls.getdomainname01_64bit', False), + ('syscalls.getdtablesize01_32bit', False), + ('syscalls.getdtablesize01_64bit', False), + ('syscalls.getegid01_16_32bit', True), + ('syscalls.getegid01_32bit', True), + ('syscalls.getegid01_64bit', True), + ('syscalls.getegid02_16_32bit', True), + ('syscalls.getegid02_32bit', True), + ('syscalls.getegid02_64bit', True), + ('syscalls.geteuid01_16_32bit', True), + ('syscalls.geteuid01_32bit', True), + ('syscalls.geteuid01_64bit', True), + ('syscalls.geteuid02_16_32bit', True), + ('syscalls.geteuid02_32bit', True), + ('syscalls.geteuid02_64bit', True), + ('syscalls.getgid01_16_32bit', True), + ('syscalls.getgid01_32bit', True), + ('syscalls.getgid01_64bit', True), + ('syscalls.getgid03_16_32bit', True), + ('syscalls.getgid03_32bit', True), + ('syscalls.getgid03_64bit', True), + ('syscalls.getgroups01_16_32bit', True), + ('syscalls.getgroups01_32bit', True), + ('syscalls.getgroups01_64bit', True), + ('syscalls.getgroups03_16_32bit', True), + ('syscalls.getgroups03_32bit', True), + ('syscalls.getgroups03_64bit', True), + ('syscalls.gethostname01_32bit', False), + ('syscalls.gethostname01_64bit', False), + ('syscalls.getitimer01_32bit', True), + ('syscalls.getitimer01_64bit', True), + ('syscalls.getitimer02_32bit', True), + ('syscalls.getitimer02_64bit', True), + ('syscalls.getitimer03_32bit', True), + ('syscalls.getitimer03_64bit', True), + ('syscalls.getpagesize01_32bit', False), + ('syscalls.getpagesize01_64bit', False), + ('syscalls.getpeername01_32bit', True), + ('syscalls.getpeername01_64bit', True), + ('syscalls.getpgid01_32bit', True), + ('syscalls.getpgid01_64bit', True), + ('syscalls.getpgid02_32bit', True), + ('syscalls.getpgid02_64bit', True), + ('syscalls.getpgrp01_32bit', True), + ('syscalls.getpgrp01_64bit', True), + ('syscalls.getpid01_32bit', True), + ('syscalls.getpid01_64bit', True), + ('syscalls.getpid02_32bit', True), + ('syscalls.getpid02_64bit', True), + ('syscalls.getppid01_32bit', True), + ('syscalls.getppid01_64bit', True), + ('syscalls.getppid02_32bit', True), + ('syscalls.getppid02_64bit', True), + ('syscalls.getpriority01_32bit', True), + ('syscalls.getpriority01_64bit', True), + ('syscalls.getpriority02_32bit', True), + ('syscalls.getpriority02_64bit', True), + ('syscalls.getrandom01_32bit', True), + ('syscalls.getrandom01_64bit', True), + ('syscalls.getrandom02_32bit', True), + ('syscalls.getrandom02_64bit', True), + ('syscalls.getrandom03_32bit', True), + ('syscalls.getrandom03_64bit', True), + ('syscalls.getrandom04_32bit', True), + ('syscalls.getrandom04_64bit', True), + ('syscalls.getresgid01_32bit', True), + ('syscalls.getresgid01_64bit', True), + ('syscalls.getresgid02_32bit', True), + ('syscalls.getresgid02_64bit', True), + ('syscalls.getresgid03_32bit', True), + ('syscalls.getresgid03_64bit', True), + ('syscalls.getresuid01_32bit', True), + ('syscalls.getresuid01_64bit', True), + ('syscalls.getresuid02_32bit', True), + ('syscalls.getresuid02_64bit', True), + ('syscalls.getresuid03_32bit', True), + ('syscalls.getresuid03_64bit', True), + ('syscalls.getrlimit01_32bit', True), + ('syscalls.getrlimit01_64bit', True), + ('syscalls.getrlimit02_32bit', True), + ('syscalls.getrlimit02_64bit', True), + ('syscalls.getrlimit03_32bit', True), + ('syscalls.getrlimit03_64bit', True), + ('syscalls.getrusage01_32bit', True), + ('syscalls.getrusage01_64bit', True), + ('syscalls.getrusage02_32bit', True), + ('syscalls.getrusage02_64bit', True), + ('syscalls.getsid01_32bit', True), + ('syscalls.getsid01_64bit', True), + ('syscalls.getsid02_32bit', True), + ('syscalls.getsid02_64bit', True), + ('syscalls.getsockname01_32bit', True), + ('syscalls.getsockname01_64bit', True), + ('syscalls.getsockopt01_32bit', True), + ('syscalls.getsockopt01_64bit', True), + ('syscalls.getsockopt02_32bit', True), + ('syscalls.getsockopt02_64bit', True), + ('syscalls.gettid01_32bit', True), + ('syscalls.gettid01_64bit', True), + ('syscalls.gettimeofday01_32bit', True), + ('syscalls.gettimeofday01_64bit', True), + ('syscalls.gettimeofday02_32bit', True), + ('syscalls.gettimeofday02_64bit', True), + ('syscalls.getuid01_16_32bit', True), + ('syscalls.getuid01_32bit', True), + ('syscalls.getuid01_64bit', True), + ('syscalls.getuid03_16_32bit', True), + ('syscalls.getuid03_32bit', True), + ('syscalls.getuid03_64bit', True), + ('syscalls.getxattr01_32bit', True), + ('syscalls.getxattr01_64bit', True), + ('syscalls.getxattr02_32bit', True), + ('syscalls.getxattr02_64bit', True), + ('syscalls.getxattr03_32bit', True), + ('syscalls.getxattr03_64bit', True), + ('syscalls.getxattr04_32bit', True), + ('syscalls.getxattr04_64bit', True), + ('syscalls.inotify01_32bit', True), + ('syscalls.inotify01_64bit', True), + ('syscalls.inotify02_32bit', True), + ('syscalls.inotify02_64bit', True), + ('syscalls.inotify04_32bit', True), + ('syscalls.inotify04_64bit', True), + ('syscalls.inotify05_32bit', True), + ('syscalls.inotify05_64bit', True), + ('syscalls.inotify06_32bit', True), + ('syscalls.inotify06_64bit', True), + ('syscalls.inotify09_32bit', True), + ('syscalls.inotify09_64bit', True), + ('syscalls.inotify_init1_01_32bit', True), + ('syscalls.inotify_init1_01_64bit', True), + ('syscalls.inotify_init1_02_32bit', True), + ('syscalls.inotify_init1_02_64bit', True), + ('syscalls.io_cancel01_32bit', True), + ('syscalls.io_cancel01_64bit', True), + ('syscalls.io_destroy01_32bit', True), + ('syscalls.io_destroy01_64bit', True), + ('syscalls.io_getevents01_32bit', True), + ('syscalls.io_getevents01_64bit', True), + ('syscalls.io_setup01_32bit', True), + ('syscalls.io_setup01_64bit', True), + ('syscalls.io_submit01_32bit', True), + ('syscalls.io_submit01_64bit', True), + ('syscalls.ioctl01_02_32bit', True), + ('syscalls.ioctl01_02_64bit', True), + ('syscalls.ioctl05_32bit', True), + ('syscalls.ioctl05_64bit', True), + ('syscalls.ioctl07_32bit', True), + ('syscalls.ioctl07_64bit', True), + ('syscalls.ioperm01_32bit', True), + ('syscalls.ioperm01_64bit', True), + ('syscalls.ioperm02_32bit', True), + ('syscalls.ioperm02_64bit', True), + ('syscalls.iopl01_32bit', True), + ('syscalls.iopl01_64bit', True), + ('syscalls.iopl02_32bit', True), + ('syscalls.iopl02_64bit', True), + ('syscalls.keyctl01_32bit', True), + ('syscalls.keyctl01_64bit', True), + ('syscalls.keyctl02_32bit', True), + ('syscalls.keyctl02_64bit', True), + ('syscalls.keyctl03_32bit', True), + ('syscalls.keyctl03_64bit', True), + ('syscalls.keyctl04_32bit', True), + ('syscalls.keyctl04_64bit', True), + ('syscalls.keyctl05_32bit', True), + ('syscalls.keyctl05_64bit', True), + ('syscalls.keyctl06_32bit', True), + ('syscalls.keyctl06_64bit', True), + ('syscalls.keyctl07_32bit', True), + ('syscalls.keyctl07_64bit', True), + ('syscalls.keyctl08_32bit', True), + ('syscalls.keyctl08_64bit', True), + ('syscalls.kill01_32bit', True), + ('syscalls.kill01_64bit', True), + ('syscalls.kill02_32bit', True), + ('syscalls.kill02_64bit', True), + ('syscalls.kill03_32bit', True), + ('syscalls.kill03_64bit', True), + ('syscalls.kill04_32bit', True), + ('syscalls.kill04_64bit', True), + ('syscalls.kill06_32bit', True), + ('syscalls.kill06_64bit', True), + ('syscalls.kill08_32bit', True), + ('syscalls.kill08_64bit', True), + ('syscalls.kill09_32bit', True), + ('syscalls.kill09_64bit', True), + ('syscalls.kill10_32bit', True), + ('syscalls.kill10_64bit', True), + ('syscalls.kill11_32bit', True), + ('syscalls.kill11_64bit', True), + ('syscalls.lchown01_16_32bit', True), + ('syscalls.lchown01_32bit', True), + ('syscalls.lchown01_64bit', True), + ('syscalls.lchown02_16_32bit', True), + ('syscalls.lchown02_32bit', True), + ('syscalls.lchown02_64bit', True), + ('syscalls.lgetxattr01_32bit', True), + ('syscalls.lgetxattr01_64bit', True), + ('syscalls.lgetxattr02_32bit', True), + ('syscalls.lgetxattr02_64bit', True), + ('syscalls.link01_32bit', True), + ('syscalls.link01_64bit', True), + ('syscalls.link02_32bit', True), + ('syscalls.link02_64bit', True), + ('syscalls.link03_32bit', True), + ('syscalls.link03_64bit', True), + ('syscalls.link04_32bit', True), + ('syscalls.link04_64bit', True), + ('syscalls.link05_32bit', True), + ('syscalls.link05_64bit', True), + ('syscalls.link06_32bit', True), + ('syscalls.link06_64bit', True), + ('syscalls.link07_32bit', True), + ('syscalls.link07_64bit', True), + ('syscalls.link08_32bit', True), + ('syscalls.link08_64bit', True), + ('syscalls.linkat01_32bit', True), + ('syscalls.linkat01_64bit', True), + ('syscalls.linkat02_32bit', True), + ('syscalls.linkat02_64bit', True), + ('syscalls.listen01_32bit', True), + ('syscalls.listen01_64bit', True), + ('syscalls.listxattr01_32bit', True), + ('syscalls.listxattr01_64bit', True), + ('syscalls.listxattr02_32bit', True), + ('syscalls.listxattr02_64bit', True), + ('syscalls.listxattr03_32bit', True), + ('syscalls.listxattr03_64bit', True), + ('syscalls.llistxattr01_32bit', True), + ('syscalls.llistxattr01_64bit', True), + ('syscalls.llistxattr02_32bit', True), + ('syscalls.llistxattr02_64bit', True), + ('syscalls.llistxattr03_32bit', True), + ('syscalls.llistxattr03_64bit', True), + ('syscalls.llseek01_32bit', False), + ('syscalls.llseek01_64bit', False), + ('syscalls.llseek02_32bit', False), + ('syscalls.llseek02_64bit', False), + ('syscalls.llseek03_32bit', False), + ('syscalls.llseek03_64bit', False), + ('syscalls.lremovexattr01_32bit', True), + ('syscalls.lremovexattr01_64bit', True), + ('syscalls.lseek01_32bit', True), + ('syscalls.lseek01_64bit', True), + ('syscalls.lseek02_32bit', True), + ('syscalls.lseek02_64bit', True), + ('syscalls.lseek07_32bit', True), + ('syscalls.lseek07_64bit', True), + ('syscalls.lseek11_32bit', False), #b/145105382 + ('syscalls.lseek11_64bit', False), #b/145105382 + ('syscalls.lstat01A_32bit', True), + ('syscalls.lstat01A_64_32bit', True), + ('syscalls.lstat01A_64_64bit', True), + ('syscalls.lstat01A_64bit', True), + ('syscalls.lstat01_32bit', True), + ('syscalls.lstat01_64_32bit', True), + ('syscalls.lstat01_64_64bit', True), + ('syscalls.lstat01_64bit', True), + ('syscalls.lstat02_32bit', True), + ('syscalls.lstat02_64_32bit', True), + ('syscalls.lstat02_64_64bit', True), + ('syscalls.lstat02_64bit', True), + ('syscalls.madvise01_32bit', True), + ('syscalls.madvise01_64bit', True), + ('syscalls.madvise02_32bit', True), + ('syscalls.madvise02_64bit', True), + ('syscalls.madvise05_32bit', True), + ('syscalls.madvise05_64bit', True), + ('syscalls.madvise08_32bit', True), + ('syscalls.madvise08_64bit', True), + ('syscalls.madvise10_32bit', True), + ('syscalls.madvise10_64bit', True), + ('syscalls.membarrier01_32bit', False), # b/123658872 + ('syscalls.membarrier01_64bit', False), # b/123658872 + ('syscalls.memcmp01_32bit', False), + ('syscalls.memcmp01_64bit', False), + ('syscalls.memcpy01_32bit', False), + ('syscalls.memcpy01_64bit', False), + ('syscalls.memfd_create02_32bit', True), + ('syscalls.memfd_create02_64bit', True), + ('syscalls.memset01_32bit', False), + ('syscalls.memset01_64bit', False), + ('syscalls.mincore01_32bit', True), + ('syscalls.mincore01_64bit', True), + ('syscalls.mincore02_32bit', True), + ('syscalls.mincore02_64bit', True), + ('syscalls.mkdir02_32bit', True), + ('syscalls.mkdir02_64bit', True), + ('syscalls.mkdir03_32bit', True), + ('syscalls.mkdir03_64bit', True), + ('syscalls.mkdir04_32bit', True), + ('syscalls.mkdir04_64bit', True), + ('syscalls.mkdir05A_32bit', True), + ('syscalls.mkdir05A_64bit', True), + ('syscalls.mkdir05_32bit', True), + ('syscalls.mkdir05_64bit', True), + ('syscalls.mkdir09_32bit', True), + ('syscalls.mkdir09_64bit', True), + ('syscalls.mkdirat01_32bit', True), + ('syscalls.mkdirat01_64bit', True), + ('syscalls.mkdirat02_32bit', True), + ('syscalls.mkdirat02_64bit', True), + ('syscalls.mknod01_32bit', True), + ('syscalls.mknod01_64bit', True), + ('syscalls.mknod02_32bit', True), + ('syscalls.mknod02_64bit', True), + ('syscalls.mknod03_32bit', True), + ('syscalls.mknod03_64bit', True), + ('syscalls.mknod04_32bit', True), + ('syscalls.mknod04_64bit', True), + ('syscalls.mknod05_32bit', True), + ('syscalls.mknod05_64bit', True), + ('syscalls.mknod06_32bit', True), + ('syscalls.mknod06_64bit', True), + ('syscalls.mknod07_32bit', True), + ('syscalls.mknod07_64bit', True), + ('syscalls.mknod08_32bit', True), + ('syscalls.mknod08_64bit', True), + ('syscalls.mknod09_32bit', True), + ('syscalls.mknod09_64bit', True), + ('syscalls.mknodat01_32bit', True), + ('syscalls.mknodat01_64bit', True), + ('syscalls.mknodat02_32bit', True), + ('syscalls.mknodat02_64bit', True), + ('syscalls.mlock01_32bit', True), + ('syscalls.mlock01_64bit', True), + ('syscalls.mlock02_32bit', True), + ('syscalls.mlock02_64bit', True), + ('syscalls.mlock03_32bit', True), + ('syscalls.mlock03_64bit', True), + ('syscalls.mlock04_32bit', True), + ('syscalls.mlock04_64bit', True), + ('syscalls.mlock201_32bit', False), # b/112477378 + ('syscalls.mlock201_64bit', False), # b/112477378 + ('syscalls.mlock202_32bit', False), # b/112477378 + ('syscalls.mlock202_64bit', False), # b/112477378 + ('syscalls.mlockall01_32bit', True), + ('syscalls.mlockall01_64bit', True), + ('syscalls.mlockall02_32bit', True), + ('syscalls.mlockall02_64bit', True), + ('syscalls.mlockall03_32bit', True), + ('syscalls.mlockall03_64bit', True), + ('syscalls.mmap01_32bit', True), + ('syscalls.mmap01_64bit', True), + ('syscalls.mmap02_32bit', True), + ('syscalls.mmap02_64bit', True), + ('syscalls.mmap03_32bit', True), + ('syscalls.mmap03_64bit', True), + ('syscalls.mmap04_32bit', True), + ('syscalls.mmap04_64bit', True), + ('syscalls.mmap05_32bit', True), + ('syscalls.mmap05_64bit', True), + ('syscalls.mmap06_32bit', True), + ('syscalls.mmap06_64bit', True), + ('syscalls.mmap07_32bit', True), + ('syscalls.mmap07_64bit', True), + ('syscalls.mmap08_32bit', True), + ('syscalls.mmap08_64bit', True), + ('syscalls.mmap09_32bit', True), + ('syscalls.mmap09_64bit', True), + ('syscalls.mmap12_32bit', True), + ('syscalls.mmap12_64bit', True), + ('syscalls.mmap13_32bit', True), + ('syscalls.mmap13_64bit', True), + ('syscalls.mmap14_32bit', True), + ('syscalls.mmap14_64bit', True), + ('syscalls.modify_ldt01_32bit', False), + ('syscalls.modify_ldt01_64bit', False), + ('syscalls.modify_ldt02_32bit', False), + ('syscalls.modify_ldt02_64bit', False), + ('syscalls.modify_ldt03_32bit', False), + ('syscalls.modify_ldt03_64bit', False), + ('syscalls.mount01_32bit', True), + ('syscalls.mount01_64bit', True), + ('syscalls.mount02_32bit', True), + ('syscalls.mount02_64bit', True), + ('syscalls.mount03_32bit', True), + ('syscalls.mount03_64bit', True), + ('syscalls.mount04_32bit', True), + ('syscalls.mount04_64bit', True), + ('syscalls.mount05_32bit', True), + ('syscalls.mount05_64bit', True), + ('syscalls.mount06_32bit', True), + ('syscalls.mount06_64bit', True), + ('syscalls.mprotect01_32bit', True), + ('syscalls.mprotect01_64bit', True), + ('syscalls.mprotect02_32bit', True), + ('syscalls.mprotect02_64bit', True), + ('syscalls.mprotect03_32bit', True), + ('syscalls.mprotect03_64bit', True), + ('syscalls.mprotect04_32bit', True), + ('syscalls.mprotect04_64bit', True), + ('syscalls.mremap01_32bit', True), + ('syscalls.mremap01_64bit', True), + ('syscalls.mremap02_32bit', True), + ('syscalls.mremap02_64bit', True), + ('syscalls.mremap03_32bit', True), + ('syscalls.mremap03_64bit', True), + ('syscalls.mremap05_32bit', True), + ('syscalls.mremap05_64bit', True), + ('syscalls.msync01_32bit', True), + ('syscalls.msync01_64bit', True), + ('syscalls.msync02_32bit', True), + ('syscalls.msync02_64bit', True), + ('syscalls.msync03_32bit', True), + ('syscalls.msync03_64bit', True), + ('syscalls.msync04_32bit', True), + ('syscalls.msync04_64bit', True), + ('syscalls.munlock01_32bit', True), + ('syscalls.munlock01_64bit', True), + ('syscalls.munlock02_32bit', True), + ('syscalls.munlock02_64bit', True), + ('syscalls.munlockall01_32bit', True), + ('syscalls.munlockall01_64bit', True), + ('syscalls.munmap01_32bit', True), + ('syscalls.munmap01_64bit', True), + ('syscalls.munmap02_32bit', True), + ('syscalls.munmap02_64bit', True), + ('syscalls.munmap03_32bit', True), + ('syscalls.munmap03_64bit', True), + ('syscalls.nanosleep01_32bit', True), + ('syscalls.nanosleep01_64bit', True), + ('syscalls.nanosleep02_32bit', True), + ('syscalls.nanosleep02_64bit', True), + ('syscalls.nanosleep03_32bit', True), + ('syscalls.nanosleep03_64bit', True), + ('syscalls.nanosleep04_32bit', True), + ('syscalls.nanosleep04_64bit', True), + ('syscalls.newuname01_32bit', False), + ('syscalls.newuname01_64bit', False), + ('syscalls.nice01_32bit', True), + ('syscalls.nice01_64bit', True), + ('syscalls.nice02_32bit', True), + ('syscalls.nice02_64bit', True), + ('syscalls.nice03_32bit', True), + ('syscalls.nice03_64bit', True), + ('syscalls.nice05_32bit', True), + ('syscalls.nice05_64bit', True), + ('syscalls.open01A_32bit', True), + ('syscalls.open01A_64bit', True), + ('syscalls.open01_32bit', True), + ('syscalls.open01_64bit', True), + ('syscalls.open02_32bit', True), + ('syscalls.open02_64bit', True), + ('syscalls.open03_32bit', True), + ('syscalls.open03_64bit', True), + ('syscalls.open04_32bit', True), + ('syscalls.open04_64bit', True), + ('syscalls.open05_32bit', True), + ('syscalls.open05_64bit', True), + ('syscalls.open06_32bit', True), + ('syscalls.open06_64bit', True), + ('syscalls.open07_32bit', True), + ('syscalls.open07_64bit', True), + ('syscalls.open09_32bit', True), + ('syscalls.open09_64bit', True), + ('syscalls.open10_32bit', True), + ('syscalls.open10_64bit', True), + ('syscalls.open11_32bit', True), + ('syscalls.open11_64bit', True), + ('syscalls.open14_32bit', True), + ('syscalls.open14_64bit', True), + ('syscalls.openat01_32bit', True), + ('syscalls.openat01_64bit', True), + ('syscalls.openat03_32bit', True), + ('syscalls.openat03_64bit', True), + ('syscalls.pathconf01_32bit', False), + ('syscalls.pathconf01_64bit', False), + ('syscalls.pause01_32bit', True), + ('syscalls.pause01_64bit', True), + ('syscalls.pause02_32bit', True), + ('syscalls.pause02_64bit', True), + ('syscalls.pause03_32bit', True), + ('syscalls.pause03_64bit', True), + ('syscalls.perf_event_open01_32bit', True), + ('syscalls.perf_event_open01_64bit', True), + ('syscalls.personality01_32bit', True), + ('syscalls.personality01_64bit', True), + ('syscalls.personality02_32bit', True), + ('syscalls.personality02_64bit', True), + ('syscalls.pipe01_32bit', True), + ('syscalls.pipe01_64bit', True), + ('syscalls.pipe02_32bit', True), + ('syscalls.pipe02_64bit', True), + ('syscalls.pipe03_32bit', True), + ('syscalls.pipe03_64bit', True), + ('syscalls.pipe04_32bit', True), + ('syscalls.pipe04_64bit', True), + ('syscalls.pipe05_32bit', True), + ('syscalls.pipe05_64bit', True), + ('syscalls.pipe06_32bit', True), + ('syscalls.pipe06_64bit', True), + ('syscalls.pipe07_32bit', True), + ('syscalls.pipe07_64bit', True), + ('syscalls.pipe08_32bit', True), + ('syscalls.pipe08_64bit', True), + ('syscalls.pipe09_32bit', True), + ('syscalls.pipe09_64bit', True), + ('syscalls.pipe10_32bit', True), + ('syscalls.pipe10_64bit', True), + ('syscalls.pipe11_32bit', True), + ('syscalls.pipe11_64bit', True), + ('syscalls.pipe2_01_32bit', True), + ('syscalls.pipe2_01_64bit', True), + ('syscalls.pipe2_02_32bit', True), + ('syscalls.pipe2_02_64bit', True), + ('syscalls.pivot_root01_32bit', True), + ('syscalls.pivot_root01_64bit', True), + ('syscalls.poll01_32bit', True), + ('syscalls.poll01_64bit', True), + ('syscalls.poll02_32bit', True), + ('syscalls.poll02_64bit', True), + ('syscalls.posix_fadvise01_32bit', True), + ('syscalls.posix_fadvise01_64_32bit', True), + ('syscalls.posix_fadvise01_64_64bit', True), + ('syscalls.posix_fadvise01_64bit', True), + ('syscalls.posix_fadvise02_32bit', True), + ('syscalls.posix_fadvise02_64_32bit', True), + ('syscalls.posix_fadvise02_64_64bit', True), + ('syscalls.posix_fadvise02_64bit', True), + ('syscalls.posix_fadvise03_32bit', True), + ('syscalls.posix_fadvise03_64_32bit', True), + ('syscalls.posix_fadvise03_64_64bit', True), + ('syscalls.posix_fadvise03_64bit', True), + ('syscalls.posix_fadvise04_32bit', True), + ('syscalls.posix_fadvise04_64_32bit', True), + ('syscalls.posix_fadvise04_64_64bit', True), + ('syscalls.posix_fadvise04_64bit', True), + ('syscalls.ppoll01_32bit', True), + ('syscalls.ppoll01_64bit', True), + ('syscalls.prctl01_32bit', True), + ('syscalls.prctl01_64bit', True), + ('syscalls.prctl02_32bit', True), + ('syscalls.prctl02_64bit', True), + ('syscalls.prctl03_32bit', True), + ('syscalls.prctl03_64bit', True), + ('syscalls.pread01_32bit', True), + ('syscalls.pread01_64_32bit', True), + ('syscalls.pread01_64_64bit', True), + ('syscalls.pread01_64bit', True), + ('syscalls.pread02_32bit', True), + ('syscalls.pread02_64_32bit', True), + ('syscalls.pread02_64_64bit', True), + ('syscalls.pread02_64bit', True), + ('syscalls.pread03_32bit', True), + ('syscalls.pread03_64_32bit', True), + ('syscalls.pread03_64_64bit', True), + ('syscalls.pread03_64bit', True), + ('syscalls.preadv01_32bit', True), + ('syscalls.preadv01_64_32bit', True), + ('syscalls.preadv01_64_64bit', True), + ('syscalls.preadv01_64bit', True), + ('syscalls.preadv02_32bit', True), + ('syscalls.preadv02_64_32bit', True), + ('syscalls.preadv02_64_64bit', True), + ('syscalls.preadv02_64bit', True), + ('syscalls.preadv03_32bit', True), + ('syscalls.preadv03_64_32bit', True), + ('syscalls.preadv03_64_64bit', True), + ('syscalls.preadv03_64bit', True), + ('syscalls.preadv201_32bit', False), + ('syscalls.preadv201_64_32bit', False), + ('syscalls.preadv201_64_64bit', False), + ('syscalls.preadv201_64bit', False), + ('syscalls.preadv202_32bit', False), + ('syscalls.preadv202_64_32bit', False), + ('syscalls.preadv202_64_64bit', False), + ('syscalls.preadv202_64bit', False), + ('syscalls.process_vm_readv01_32bit', True), + ('syscalls.process_vm_readv01_64bit', True), + ('syscalls.process_vm_readv02_32bit', True), + ('syscalls.process_vm_readv02_64bit', True), + ('syscalls.process_vm_readv03_32bit', True), + ('syscalls.process_vm_readv03_64bit', True), + ('syscalls.process_vm_writev01_32bit', True), + ('syscalls.process_vm_writev01_64bit', True), + ('syscalls.process_vm_writev02_32bit', True), + ('syscalls.process_vm_writev02_64bit', True), + ('syscalls.pselect01_64_32bit', False), + ('syscalls.pselect01_64_64bit', False), + ('syscalls.pselect02_32bit', False), + ('syscalls.pselect02_64_32bit', False), + ('syscalls.pselect02_64_64bit', False), + ('syscalls.pselect02_64bit', False), + ('syscalls.pselect03_32bit', False), + ('syscalls.pselect03_64_32bit', False), + ('syscalls.pselect03_64_64bit', False), + ('syscalls.pselect03_64bit', False), + ('syscalls.ptrace01_32bit', True), + ('syscalls.ptrace01_64bit', True), + ('syscalls.ptrace02_32bit', True), + ('syscalls.ptrace02_64bit', True), + ('syscalls.ptrace03_32bit', True), + ('syscalls.ptrace03_64bit', True), + ('syscalls.ptrace05_32bit', True), + ('syscalls.ptrace05_64bit', True), + ('syscalls.pwrite01_32bit', True), + ('syscalls.pwrite01_64_32bit', True), + ('syscalls.pwrite01_64_64bit', True), + ('syscalls.pwrite01_64bit', True), + ('syscalls.pwrite02_32bit', True), + ('syscalls.pwrite02_64_32bit', True), + ('syscalls.pwrite02_64_64bit', True), + ('syscalls.pwrite02_64bit', True), + ('syscalls.pwrite03_32bit', True), + ('syscalls.pwrite03_64_32bit', True), + ('syscalls.pwrite03_64_64bit', True), + ('syscalls.pwrite03_64bit', True), + ('syscalls.pwrite04_32bit', True), + ('syscalls.pwrite04_64_32bit', True), + ('syscalls.pwrite04_64_64bit', True), + ('syscalls.pwrite04_64bit', True), + ('syscalls.pwritev01_32bit', True), + ('syscalls.pwritev01_64_32bit', True), + ('syscalls.pwritev01_64_64bit', True), + ('syscalls.pwritev01_64bit', True), + ('syscalls.pwritev02_32bit', True), + ('syscalls.pwritev02_64_32bit', True), + ('syscalls.pwritev02_64_64bit', True), + ('syscalls.pwritev02_64bit', True), + ('syscalls.pwritev03_32bit', True), + ('syscalls.pwritev03_64_32bit', True), + ('syscalls.pwritev03_64_64bit', True), + ('syscalls.pwritev03_64bit', True), + ('syscalls.pwritev201_32bit', False), + ('syscalls.pwritev201_64_32bit', False), + ('syscalls.pwritev201_64_64bit', False), + ('syscalls.pwritev201_64bit', False), + ('syscalls.pwritev202_32bit', False), + ('syscalls.pwritev202_64_32bit', False), + ('syscalls.pwritev202_64_64bit', False), + ('syscalls.pwritev202_64bit', False), + ('syscalls.qmm01_32bit', False), + ('syscalls.qmm01_64bit', False), + ('syscalls.read01_32bit', True), + ('syscalls.read01_64bit', True), + ('syscalls.read02_32bit', True), + ('syscalls.read02_64bit', True), + ('syscalls.read03_32bit', True), + ('syscalls.read03_64bit', True), + ('syscalls.read04_32bit', True), + ('syscalls.read04_64bit', True), + ('syscalls.readahead01_32bit', True), + ('syscalls.readahead01_64bit', True), + ('syscalls.readahead02_32bit', True), + ('syscalls.readahead02_64bit', True), + ('syscalls.readdir01_32bit', True), + ('syscalls.readdir01_64bit', True), + ('syscalls.readlink01A_32bit', True), + ('syscalls.readlink01A_64bit', True), + ('syscalls.readlink01_32bit', True), + ('syscalls.readlink01_64bit', True), + ('syscalls.readlink03_32bit', True), + ('syscalls.readlink03_64bit', True), + ('syscalls.readlinkat01_32bit', True), + ('syscalls.readlinkat01_64bit', True), + ('syscalls.readlinkat02_32bit', True), + ('syscalls.readlinkat02_64bit', True), + ('syscalls.readv01_32bit', True), + ('syscalls.readv01_64bit', True), + ('syscalls.readv02_32bit', True), + ('syscalls.readv02_64bit', True), + ('syscalls.readv03_32bit', True), + ('syscalls.readv03_64bit', True), + ('syscalls.reboot01_32bit', True), + ('syscalls.reboot01_64bit', True), + ('syscalls.reboot02_32bit', True), + ('syscalls.reboot02_64bit', True), + ('syscalls.recv01_32bit', True), + ('syscalls.recv01_64bit', True), + ('syscalls.recvfrom01_32bit', True), + ('syscalls.recvfrom01_64bit', True), + ('syscalls.recvmsg01_32bit', True), + ('syscalls.recvmsg01_64bit', True), + ('syscalls.recvmsg02_32bit', True), + ('syscalls.recvmsg02_64bit', True), + ('syscalls.remap_file_pages02_32bit', True), + ('syscalls.remap_file_pages02_64bit', True), + ('syscalls.removexattr01_32bit', True), + ('syscalls.removexattr01_64bit', True), + ('syscalls.removexattr02_32bit', True), + ('syscalls.removexattr02_64bit', True), + ('syscalls.rename01A_32bit', True), + ('syscalls.rename01A_64bit', True), + ('syscalls.rename01_32bit', True), + ('syscalls.rename01_64bit', True), + ('syscalls.rename02_32bit', True), + ('syscalls.rename02_64bit', True), + ('syscalls.rename03_32bit', True), + ('syscalls.rename03_64bit', True), + ('syscalls.rename04_32bit', True), + ('syscalls.rename04_64bit', True), + ('syscalls.rename05_32bit', True), + ('syscalls.rename05_64bit', True), + ('syscalls.rename06_32bit', True), + ('syscalls.rename06_64bit', True), + ('syscalls.rename07_32bit', True), + ('syscalls.rename07_64bit', True), + ('syscalls.rename08_32bit', True), + ('syscalls.rename08_64bit', True), + ('syscalls.rename09_32bit', True), + ('syscalls.rename09_64bit', True), + ('syscalls.rename10_32bit', True), + ('syscalls.rename10_64bit', True), + ('syscalls.rename11_32bit', True), + ('syscalls.rename11_64bit', True), + ('syscalls.rename12_32bit', True), + ('syscalls.rename12_64bit', True), + ('syscalls.rename13_32bit', True), + ('syscalls.rename13_64bit', True), + ('syscalls.rename14_32bit', True), + ('syscalls.rename14_64bit', True), + ('syscalls.renameat01_32bit', True), + ('syscalls.renameat01_64bit', True), + ('syscalls.renameat201_32bit', True), + ('syscalls.renameat201_64bit', True), + ('syscalls.renameat202_32bit', True), + ('syscalls.renameat202_64bit', True), + ('syscalls.request_key01_32bit', True), + ('syscalls.request_key01_64bit', True), + ('syscalls.request_key02_32bit', True), + ('syscalls.request_key02_64bit', True), + ('syscalls.request_key03_32bit', True), + ('syscalls.request_key03_64bit', True), + ('syscalls.request_key04_32bit', True), + ('syscalls.request_key04_64bit', True), + ('syscalls.request_key05_32bit', True), + ('syscalls.request_key05_64bit', True), + ('syscalls.rmdir01_32bit', True), + ('syscalls.rmdir01_64bit', True), + ('syscalls.rmdir02_32bit', True), + ('syscalls.rmdir02_64bit', True), + ('syscalls.rmdir03A_32bit', True), + ('syscalls.rmdir03A_64bit', True), + ('syscalls.rmdir03_32bit', True), + ('syscalls.rmdir03_64bit', True), + ('syscalls.rt_sigaction01_32bit', True), + ('syscalls.rt_sigaction01_64bit', True), + ('syscalls.rt_sigaction02_32bit', True), + ('syscalls.rt_sigaction02_64bit', True), + ('syscalls.rt_sigaction03_32bit', True), + ('syscalls.rt_sigaction03_64bit', True), + ('syscalls.rt_sigpending02_32bit', True), + ('syscalls.rt_sigpending02_64bit', True), + ('syscalls.rt_sigprocmask02_32bit', True), + ('syscalls.rt_sigprocmask02_64bit', True), + ('syscalls.rt_sigqueueinfo01_32bit', True), + ('syscalls.rt_sigqueueinfo01_64bit', True), + ('syscalls.rt_sigsuspend01_32bit', True), + ('syscalls.rt_sigsuspend01_64bit', True), + ('syscalls.rt_sigtimedwait01_32bit', True), + ('syscalls.rt_sigtimedwait01_64bit', True), + ('syscalls.rt_tgsigqueueinfo01_32bit', True), + ('syscalls.rt_tgsigqueueinfo01_64bit', True), + ('syscalls.sbrk01_32bit', False), + ('syscalls.sbrk01_64bit', False), + ('syscalls.sbrk02_32bit', False), + ('syscalls.sbrk02_64bit', False), + ('syscalls.sched_get_priority_max01_32bit', True), + ('syscalls.sched_get_priority_max01_64bit', True), + ('syscalls.sched_get_priority_max02_32bit', True), + ('syscalls.sched_get_priority_max02_64bit', True), + ('syscalls.sched_get_priority_min01_32bit', True), + ('syscalls.sched_get_priority_min01_64bit', True), + ('syscalls.sched_get_priority_min02_32bit', True), + ('syscalls.sched_get_priority_min02_64bit', True), + ('syscalls.sched_getaffinity01_32bit', True), + ('syscalls.sched_getaffinity01_64bit', True), + ('syscalls.sched_getattr01_32bit', True), + ('syscalls.sched_getattr01_64bit', True), + ('syscalls.sched_getattr02_32bit', True), + ('syscalls.sched_getattr02_64bit', True), + ('syscalls.sched_getparam01_32bit', True), + ('syscalls.sched_getparam01_64bit', True), + ('syscalls.sched_getparam02_32bit', True), + ('syscalls.sched_getparam02_64bit', True), + ('syscalls.sched_getparam03_32bit', True), + ('syscalls.sched_getparam03_64bit', True), + ('syscalls.sched_getscheduler01_32bit', True), + ('syscalls.sched_getscheduler01_64bit', True), + ('syscalls.sched_getscheduler02_32bit', True), + ('syscalls.sched_getscheduler02_64bit', True), + ('syscalls.sched_rr_get_interval01_32bit', True), + ('syscalls.sched_rr_get_interval01_64bit', True), + ('syscalls.sched_rr_get_interval02_32bit', True), + ('syscalls.sched_rr_get_interval02_64bit', True), + ('syscalls.sched_rr_get_interval03_32bit', True), + ('syscalls.sched_rr_get_interval03_64bit', True), + ('syscalls.sched_setaffinity01_32bit', True), + ('syscalls.sched_setaffinity01_64bit', True), + ('syscalls.sched_setattr01_32bit', True), + ('syscalls.sched_setattr01_64bit', True), + ('syscalls.sched_setparam01_32bit', True), + ('syscalls.sched_setparam01_64bit', True), + ('syscalls.sched_setparam02_32bit', True), + ('syscalls.sched_setparam02_64bit', True), + ('syscalls.sched_setparam03_32bit', True), + ('syscalls.sched_setparam03_64bit', True), + ('syscalls.sched_setparam04_32bit', True), + ('syscalls.sched_setparam04_64bit', True), + ('syscalls.sched_setparam05_32bit', True), + ('syscalls.sched_setparam05_64bit', True), + ('syscalls.sched_setscheduler01_32bit', True), + ('syscalls.sched_setscheduler01_64bit', True), + ('syscalls.sched_setscheduler02_32bit', True), + ('syscalls.sched_setscheduler02_64bit', True), + ('syscalls.sched_setscheduler03_32bit', True), + ('syscalls.sched_setscheduler03_64bit', True), + ('syscalls.sched_yield01_32bit', True), + ('syscalls.sched_yield01_64bit', True), + ('syscalls.select01_32bit', True), + ('syscalls.select01_64bit', True), + ('syscalls.select01_SYS__newselect_32bit', False), + ('syscalls.select01_SYS__newselect_64bit', False), + ('syscalls.select01_SYS_pselect6_32bit', True), + ('syscalls.select01_SYS_pselect6_64bit', True), + ('syscalls.select01_SYS_select_32bit', False), + ('syscalls.select01_SYS_select_64bit', False), + ('syscalls.select02_32bit', True), + ('syscalls.select02_64bit', True), + ('syscalls.select02_SYS__newselect_32bit', False), + ('syscalls.select02_SYS__newselect_64bit', False), + ('syscalls.select02_SYS_pselect6_32bit', True), + ('syscalls.select02_SYS_pselect6_64bit', True), + ('syscalls.select02_SYS_select_32bit', False), + ('syscalls.select02_SYS_select_64bit', False), + ('syscalls.select03_32bit', True), + ('syscalls.select03_64bit', True), + ('syscalls.select03_SYS__newselect_32bit', False), + ('syscalls.select03_SYS__newselect_64bit', False), + ('syscalls.select03_SYS_pselect6_32bit', True), + ('syscalls.select03_SYS_pselect6_64bit', True), + ('syscalls.select03_SYS_select_32bit', False), + ('syscalls.select03_SYS_select_64bit', False), + ('syscalls.select04_32bit', True), + ('syscalls.select04_64bit', True), + ('syscalls.select04_SYS__newselect_32bit', False), + ('syscalls.select04_SYS__newselect_64bit', False), + ('syscalls.select04_SYS_pselect6_32bit', True), + ('syscalls.select04_SYS_pselect6_64bit', True), + ('syscalls.select04_SYS_select_32bit', False), + ('syscalls.select04_SYS_select_64bit', False), + ('syscalls.send01_32bit', True), + ('syscalls.send01_64bit', True), + ('syscalls.sendfile02_32bit', True), + ('syscalls.sendfile02_64_32bit', True), + ('syscalls.sendfile02_64_64bit', True), + ('syscalls.sendfile02_64bit', True), + ('syscalls.sendfile03_32bit', True), + ('syscalls.sendfile03_64_32bit', True), + ('syscalls.sendfile03_64_64bit', True), + ('syscalls.sendfile03_64bit', True), + ('syscalls.sendfile04_32bit', True), + ('syscalls.sendfile04_64_32bit', True), + ('syscalls.sendfile04_64_64bit', True), + ('syscalls.sendfile04_64bit', True), + ('syscalls.sendfile05_32bit', True), + ('syscalls.sendfile05_64_32bit', True), + ('syscalls.sendfile05_64_64bit', True), + ('syscalls.sendfile05_64bit', True), + ('syscalls.sendfile06_32bit', True), + ('syscalls.sendfile06_64_32bit', True), + ('syscalls.sendfile06_64_64bit', True), + ('syscalls.sendfile06_64bit', True), + ('syscalls.sendfile07_32bit', True), + ('syscalls.sendfile07_64_32bit', True), + ('syscalls.sendfile07_64_64bit', True), + ('syscalls.sendfile07_64bit', True), + ('syscalls.sendfile08_32bit', True), + ('syscalls.sendfile08_64_32bit', True), + ('syscalls.sendfile08_64_64bit', True), + ('syscalls.sendfile08_64bit', True), + ('syscalls.sendmsg01_32bit', True), + ('syscalls.sendmsg01_64bit', True), + ('syscalls.sendmmsg01_32bit', True), + ('syscalls.sendmmsg01_64bit', True), + ('syscalls.sendto01_32bit', True), + ('syscalls.sendto01_64bit', True), + ('syscalls.set_robust_list01_32bit', True), + ('syscalls.set_robust_list01_64bit', True), + ('syscalls.set_thread_area01_32bit', False), + ('syscalls.set_tid_address01_32bit', True), + ('syscalls.set_tid_address01_64bit', True), + ('syscalls.setdomainname01_32bit', True), + ('syscalls.setdomainname01_64bit', True), + ('syscalls.setdomainname02_32bit', True), + ('syscalls.setdomainname02_64bit', True), + ('syscalls.setdomainname03_32bit', True), + ('syscalls.setdomainname03_64bit', True), + ('syscalls.setegid01_32bit', False), + ('syscalls.setegid01_64bit', False), + ('syscalls.setegid02_32bit', False), + ('syscalls.setegid02_64bit', False), + ('syscalls.setfsgid01_16_32bit', True), + ('syscalls.setfsgid01_32bit', True), + ('syscalls.setfsgid01_64bit', True), + ('syscalls.setfsgid02_16_32bit', True), + ('syscalls.setfsgid02_32bit', True), + ('syscalls.setfsgid02_64bit', True), + ('syscalls.setfsgid03_16_32bit', True), + ('syscalls.setfsgid03_32bit', True), + ('syscalls.setfsgid03_64bit', True), + ('syscalls.setfsuid01_16_32bit', True), + ('syscalls.setfsuid01_32bit', True), + ('syscalls.setfsuid01_64bit', True), + ('syscalls.setfsuid02_16_32bit', True), + ('syscalls.setfsuid02_32bit', True), + ('syscalls.setfsuid02_64bit', True), + ('syscalls.setfsuid03_16_32bit', True), + ('syscalls.setfsuid03_32bit', True), + ('syscalls.setfsuid03_64bit', True), + ('syscalls.setfsuid04_16_32bit', True), + ('syscalls.setfsuid04_32bit', True), + ('syscalls.setfsuid04_64bit', True), + ('syscalls.setgid01_16_32bit', True), + ('syscalls.setgid01_32bit', True), + ('syscalls.setgid01_64bit', True), + ('syscalls.setgid02_16_32bit', True), + ('syscalls.setgid02_32bit', True), + ('syscalls.setgid02_64bit', True), + ('syscalls.setgid03_16_32bit', True), + ('syscalls.setgid03_32bit', True), + ('syscalls.setgid03_64bit', True), + ('syscalls.setgroups01_16_32bit', True), + ('syscalls.setgroups01_32bit', True), + ('syscalls.setgroups01_64bit', True), + ('syscalls.setgroups02_16_32bit', True), + ('syscalls.setgroups02_32bit', True), + ('syscalls.setgroups02_64bit', True), + ('syscalls.setgroups03_16_32bit', True), + ('syscalls.setgroups03_32bit', True), + ('syscalls.setgroups03_64bit', True), + ('syscalls.setgroups04_16_32bit', True), + ('syscalls.setgroups04_32bit', True), + ('syscalls.setgroups04_64bit', True), + ('syscalls.sethostname01_32bit', True), + ('syscalls.sethostname01_64bit', True), + ('syscalls.sethostname02_32bit', True), + ('syscalls.sethostname02_64bit', True), + ('syscalls.sethostname03_32bit', True), + ('syscalls.sethostname03_64bit', True), + ('syscalls.setitimer01_32bit', True), + ('syscalls.setitimer01_64bit', True), + ('syscalls.setitimer02_32bit', True), + ('syscalls.setitimer02_64bit', True), + ('syscalls.setitimer03_32bit', True), + ('syscalls.setitimer03_64bit', True), + ('syscalls.setns01_32bit', True), + ('syscalls.setns01_64bit', True), + ('syscalls.setpgid01_32bit', True), + ('syscalls.setpgid01_64bit', True), + ('syscalls.setpgid02_32bit', True), + ('syscalls.setpgid02_64bit', True), + ('syscalls.setpgid03_32bit', True), + ('syscalls.setpgid03_64bit', True), + ('syscalls.setpgrp01_32bit', False), + ('syscalls.setpgrp01_64bit', False), + ('syscalls.setpgrp02_32bit', False), + ('syscalls.setpgrp02_64bit', False), + ('syscalls.setpriority01_32bit', True), + ('syscalls.setpriority01_64bit', True), + ('syscalls.setregid01_16_32bit', True), + ('syscalls.setregid01_32bit', True), + ('syscalls.setregid01_64bit', True), + ('syscalls.setregid03_16_32bit', True), + ('syscalls.setregid03_32bit', True), + ('syscalls.setregid03_64bit', True), + ('syscalls.setregid04_16_32bit', True), + ('syscalls.setregid04_32bit', True), + ('syscalls.setregid04_64bit', True), + ('syscalls.setresgid01_16_32bit', True), + ('syscalls.setresgid01_32bit', True), + ('syscalls.setresgid01_64bit', True), + ('syscalls.setresgid02_16_32bit', True), + ('syscalls.setresgid02_32bit', True), + ('syscalls.setresgid02_64bit', True), + ('syscalls.setresgid03_16_32bit', True), + ('syscalls.setresgid03_32bit', True), + ('syscalls.setresgid03_64bit', True), + ('syscalls.setresgid04_16_32bit', True), + ('syscalls.setresgid04_32bit', True), + ('syscalls.setresgid04_64bit', True), + ('syscalls.setresuid01_16_32bit', True), + ('syscalls.setresuid01_32bit', True), + ('syscalls.setresuid01_64bit', True), + ('syscalls.setresuid02_16_32bit', True), + ('syscalls.setresuid02_32bit', True), + ('syscalls.setresuid02_64bit', True), + ('syscalls.setresuid03_16_32bit', True), + ('syscalls.setresuid03_32bit', True), + ('syscalls.setresuid03_64bit', True), + ('syscalls.setresuid04_16_32bit', True), + ('syscalls.setresuid04_32bit', True), + ('syscalls.setresuid04_64bit', True), + ('syscalls.setresuid05_16_32bit', True), + ('syscalls.setresuid05_32bit', True), + ('syscalls.setresuid05_64bit', True), + ('syscalls.setreuid01_16_32bit', True), + ('syscalls.setreuid01_32bit', True), + ('syscalls.setreuid01_64bit', True), + ('syscalls.setreuid02_16_32bit', True), + ('syscalls.setreuid02_32bit', True), + ('syscalls.setreuid02_64bit', True), + ('syscalls.setreuid03_16_32bit', True), + ('syscalls.setreuid03_32bit', True), + ('syscalls.setreuid03_64bit', True), + ('syscalls.setreuid04_16_32bit', True), + ('syscalls.setreuid04_32bit', True), + ('syscalls.setreuid04_64bit', True), + ('syscalls.setreuid05_16_32bit', True), + ('syscalls.setreuid05_32bit', True), + ('syscalls.setreuid05_64bit', True), + ('syscalls.setreuid06_16_32bit', True), + ('syscalls.setreuid06_32bit', True), + ('syscalls.setreuid06_64bit', True), + ('syscalls.setreuid07_16_32bit', True), + ('syscalls.setreuid07_32bit', True), + ('syscalls.setreuid07_64bit', True), + ('syscalls.setrlimit01_32bit', True), + ('syscalls.setrlimit01_64bit', True), + ('syscalls.setrlimit02_32bit', True), + ('syscalls.setrlimit02_64bit', True), + ('syscalls.setrlimit03_32bit', True), + ('syscalls.setrlimit03_64bit', True), + ('syscalls.setrlimit04_32bit', True), + ('syscalls.setrlimit04_64bit', True), + ('syscalls.setrlimit05_32bit', True), + ('syscalls.setrlimit05_64bit', True), + ('syscalls.setsid01_32bit', True), + ('syscalls.setsid01_64bit', True), + ('syscalls.setsockopt01_32bit', True), + ('syscalls.setsockopt01_64bit', True), + ('syscalls.setsockopt02_32bit', True), + ('syscalls.setsockopt02_64bit', True), + ('syscalls.setsockopt03_32bit', True), + ('syscalls.setsockopt03_64bit', True), + ('syscalls.settimeofday01_32bit', True), + ('syscalls.settimeofday01_64bit', True), + ('syscalls.settimeofday02_32bit', True), + ('syscalls.settimeofday02_64bit', True), + ('syscalls.setuid01_16_32bit', True), + ('syscalls.setuid01_32bit', True), + ('syscalls.setuid01_64bit', True), + ('syscalls.setuid03_16_32bit', True), + ('syscalls.setuid03_32bit', True), + ('syscalls.setuid03_64bit', True), + ('syscalls.setuid04_16_32bit', True), + ('syscalls.setuid04_32bit', True), + ('syscalls.setuid04_64bit', True), + ('syscalls.setxattr01_32bit', True), + ('syscalls.setxattr01_64bit', True), + ('syscalls.setxattr02_32bit', True), + ('syscalls.setxattr02_64bit', True), + ('syscalls.setxattr03_32bit', True), + ('syscalls.setxattr03_64bit', True), + ('syscalls.sigaction01_32bit', True), + ('syscalls.sigaction01_64bit', True), + ('syscalls.sigaction02_32bit', True), + ('syscalls.sigaction02_64bit', True), + ('syscalls.sigaltstack01_32bit', True), + ('syscalls.sigaltstack01_64bit', True), + ('syscalls.sigaltstack02_32bit', True), + ('syscalls.sigaltstack02_64bit', True), + ('syscalls.sighold02_32bit', False), + ('syscalls.sighold02_64bit', False), + ('syscalls.signal01_32bit', True), + ('syscalls.signal01_64bit', True), + ('syscalls.signal02_32bit', True), + ('syscalls.signal02_64bit', True), + ('syscalls.signal03_32bit', True), + ('syscalls.signal03_64bit', True), + ('syscalls.signal04_32bit', True), + ('syscalls.signal04_64bit', True), + ('syscalls.signal05_32bit', True), + ('syscalls.signal05_64bit', True), + ('syscalls.signalfd01_32bit', True), + ('syscalls.signalfd01_64bit', True), + ('syscalls.signalfd4_01_32bit', True), + ('syscalls.signalfd4_01_64bit', True), + ('syscalls.signalfd4_02_32bit', True), + ('syscalls.signalfd4_02_64bit', True), + ('syscalls.sigpending02_32bit', True), + ('syscalls.sigpending02_64bit', False), + ('syscalls.sigprocmask01_32bit', True), + ('syscalls.sigprocmask01_64bit', True), + ('syscalls.sigsuspend01_32bit', True), + ('syscalls.sigsuspend01_64bit', True), + ('syscalls.sigtimedwait01_32bit', True), + ('syscalls.sigtimedwait01_64bit', True), + ('syscalls.sigwaitinfo01_32bit', True), + ('syscalls.sigwaitinfo01_64bit', True), + ('syscalls.socket01_32bit', True), + ('syscalls.socket01_64bit', True), + ('syscalls.socket02_32bit', True), + ('syscalls.socket02_64bit', True), + ('syscalls.socket03_32bit', True), + ('syscalls.socket03_64bit', True), + ('syscalls.socketcall01_32bit', False), # b/122729903 + ('syscalls.socketcall01_64bit', False), # b/122729903 + ('syscalls.socketcall02_32bit', True), + ('syscalls.socketcall02_64bit', True), + ('syscalls.socketcall03_32bit', True), + ('syscalls.socketcall03_64bit', True), + ('syscalls.socketcall04_32bit', True), + ('syscalls.socketcall04_64bit', True), + ('syscalls.socketpair01_32bit', True), + ('syscalls.socketpair01_64bit', True), + ('syscalls.socketpair02_32bit', True), + ('syscalls.socketpair02_64bit', True), + ('syscalls.splice01_32bit', True), + ('syscalls.splice01_64bit', True), + ('syscalls.splice03_32bit', True), + ('syscalls.splice03_64bit', True), + ('syscalls.splice04_32bit', True), + ('syscalls.splice04_64bit', True), + ('syscalls.stat01_32bit', True), + ('syscalls.stat01_64_32bit', True), + ('syscalls.stat01_64_64bit', True), + ('syscalls.stat01_64bit', True), + ('syscalls.stat02_32bit', True), + ('syscalls.stat02_64_32bit', True), + ('syscalls.stat02_64_64bit', True), + ('syscalls.stat02_64bit', True), + ('syscalls.stat03_32bit', True), + ('syscalls.stat03_64_32bit', True), + ('syscalls.stat03_64_64bit', True), + ('syscalls.stat03_64bit', True), + ('syscalls.stat04_32bit', True), + ('syscalls.stat04_64_32bit', True), + ('syscalls.stat04_64_64bit', True), + ('syscalls.stat04_64bit', True), + ('syscalls.stat05_32bit', True), + ('syscalls.stat05_64_32bit', True), + ('syscalls.stat05_64_64bit', True), + ('syscalls.stat05_64bit', True), + ('syscalls.stat06_32bit', True), + ('syscalls.stat06_64_32bit', True), + ('syscalls.stat06_64_64bit', True), + ('syscalls.stat06_64bit', True), + ('syscalls.statx01_32bit', False), # b/123523766 + ('syscalls.statx01_64bit', False), # b/123523766 + ('syscalls.statx02_32bit', False), # b/123523766 + ('syscalls.statx02_64bit', False), # b/123523766 + ('syscalls.statx03_32bit', False), # b/123523766 + ('syscalls.statx03_64bit', False), # b/123523766 + ('syscalls.statx04_32bit', False), # b/123523766 + ('syscalls.statx04_64bit', False), # b/123523766 + ('syscalls.statx06_32bit', False), # b/123523766 + ('syscalls.statx06_64bit', False), # b/123523766 + ('syscalls.statfs01_32bit', True), + ('syscalls.statfs01_64_32bit', True), + ('syscalls.statfs01_64_64bit', True), + ('syscalls.statfs01_64bit', True), + ('syscalls.statfs02_32bit', True), + ('syscalls.statfs02_64_32bit', True), + ('syscalls.statfs02_64_64bit', True), + ('syscalls.statfs02_64bit', True), + ('syscalls.statfs03_32bit', True), + ('syscalls.statfs03_64_32bit', True), + ('syscalls.statfs03_64_64bit', True), + ('syscalls.statfs03_64bit', True), + ('syscalls.statvfs01_32bit', False), + ('syscalls.statvfs01_64bit', False), + ('syscalls.statvfs02_32bit', False), + ('syscalls.statvfs02_64bit', False), + ('syscalls.string01_32bit', False), + ('syscalls.string01_64bit', False), + ('syscalls.swapoff01_32bit', True), + ('syscalls.swapoff01_64bit', True), + ('syscalls.swapoff02_32bit', True), + ('syscalls.swapoff02_64bit', True), + ('syscalls.swapon01_32bit', True), + ('syscalls.swapon01_64bit', True), + ('syscalls.swapon02_32bit', True), + ('syscalls.swapon02_64bit', True), + ('syscalls.swapon03_32bit', True), + ('syscalls.swapon03_64bit', True), + ('syscalls.symlink01_32bit', True), + ('syscalls.symlink01_64bit', True), + ('syscalls.symlink02_32bit', True), + ('syscalls.symlink02_64bit', True), + ('syscalls.symlink03_32bit', True), + ('syscalls.symlink03_64bit', True), + ('syscalls.symlink04_32bit', True), + ('syscalls.symlink04_64bit', True), + ('syscalls.symlink05_32bit', True), + ('syscalls.symlink05_64bit', True), + ('syscalls.symlinkat01_32bit', True), + ('syscalls.symlinkat01_64bit', True), + ('syscalls.sync01_32bit', True), + ('syscalls.sync01_64bit', True), + ('syscalls.sync02_32bit', True), + ('syscalls.sync02_64bit', True), + ('syscalls.sync_file_range01_32bit', True), + ('syscalls.sync_file_range01_64bit', True), + ('syscalls.syncfs01_32bit', False), + ('syscalls.syncfs01_64bit', False), + ('syscalls.syscall01_32bit', False), + ('syscalls.syscall01_64bit', False), + ('syscalls.sysconf01_32bit', False), + ('syscalls.sysconf01_64bit', False), + ('syscalls.sysinfo01_32bit', True), + ('syscalls.sysinfo01_64bit', True), + ('syscalls.sysinfo02_32bit', True), + ('syscalls.sysinfo02_64bit', True), + ('syscalls.syslog11_32bit', True), + ('syscalls.syslog11_64bit', True), + ('syscalls.syslog12_32bit', True), + ('syscalls.syslog12_64bit', True), + ('syscalls.tee01_32bit', True), + ('syscalls.tee01_64bit', True), + ('syscalls.tee02_32bit', True), + ('syscalls.tee02_64bit', True), + ('syscalls.tgkill02_32bit', True), + ('syscalls.tgkill02_64bit', True), + ('syscalls.tgkill03_32bit', True), + ('syscalls.tgkill03_64bit', True), + ('syscalls.time01_32bit', True), + ('syscalls.time01_64bit', True), + ('syscalls.time02_32bit', True), + ('syscalls.time02_64bit', True), + ('syscalls.timer_getoverrun01_32bit', True), + ('syscalls.timer_getoverrun01_64bit', True), + ('syscalls.timer_gettime01_32bit', True), + ('syscalls.timer_gettime01_64bit', True), + ('syscalls.timerfd01_32bit', True), + ('syscalls.timerfd01_64bit', True), + ('syscalls.timerfd02_32bit', True), + ('syscalls.timerfd02_64bit', True), + ('syscalls.timerfd03_32bit', True), + ('syscalls.timerfd03_64bit', True), + ('syscalls.timerfd_create01_32bit', True), + ('syscalls.timerfd_create01_64bit', True), + ('syscalls.timerfd_gettime01_32bit', True), + ('syscalls.timerfd_gettime01_64bit', True), + ('syscalls.timerfd_settime01_32bit', True), + ('syscalls.timerfd_settime01_64bit', True), + ('syscalls.times01_32bit', True), + ('syscalls.times01_64bit', True), + ('syscalls.times03_32bit', True), + ('syscalls.times03_64bit', True), + ('syscalls.tkill01_32bit', True), + ('syscalls.tkill01_64bit', True), + ('syscalls.tkill02_32bit', True), + ('syscalls.tkill02_64bit', True), + ('syscalls.truncate01_32bit', True), + ('syscalls.truncate01_64_32bit', True), + ('syscalls.truncate01_64_64bit', True), + ('syscalls.truncate01_64bit', True), + ('syscalls.truncate02_32bit', True), + ('syscalls.truncate02_64_32bit', True), + ('syscalls.truncate02_64_64bit', True), + ('syscalls.truncate02_64bit', True), + ('syscalls.truncate03_32bit', True), + ('syscalls.truncate03_64_32bit', True), + ('syscalls.truncate03_64_64bit', True), + ('syscalls.truncate03_64bit', True), + ('syscalls.umask01_32bit', True), + ('syscalls.umask01_64bit', True), + ('syscalls.umount01_32bit', True), + ('syscalls.umount01_64bit', True), + ('syscalls.umount02_32bit', True), + ('syscalls.umount02_64bit', True), + ('syscalls.umount03_32bit', True), + ('syscalls.umount03_64bit', True), + ('syscalls.umount2_01_32bit', True), + ('syscalls.umount2_01_64bit', True), + ('syscalls.umount2_02_32bit', True), + ('syscalls.umount2_02_64bit', True), + ('syscalls.umount2_03_32bit', True), + ('syscalls.umount2_03_64bit', True), + ('syscalls.uname01_32bit', True), + ('syscalls.uname01_64bit', True), + ('syscalls.uname02_32bit', True), + ('syscalls.uname02_64bit', True), + ('syscalls.uname03_32bit', True), + ('syscalls.uname03_64bit', True), + ('syscalls.uname04_32bit', True), + ('syscalls.uname04_64bit', True), + ('syscalls.unlink01_32bit', True), + ('syscalls.unlink01_64bit', True), + ('syscalls.unlink05_32bit', True), + ('syscalls.unlink05_64bit', True), + ('syscalls.unlink07_32bit', True), + ('syscalls.unlink07_64bit', True), + ('syscalls.unlink08_32bit', True), + ('syscalls.unlink08_64bit', True), + ('syscalls.unlinkat01_32bit', True), + ('syscalls.unlinkat01_64bit', True), + ('syscalls.unshare01_32bit', True), + ('syscalls.unshare01_64bit', True), + ('syscalls.unshare02_32bit', True), + ('syscalls.unshare02_64bit', True), + ('syscalls.ustat01_32bit', True), + ('syscalls.ustat01_64bit', False), # b/112484619 + ('syscalls.ustat02_32bit', True), + ('syscalls.ustat02_64bit', False), # b/112484619 + ('syscalls.utime01A_32bit', True), + ('syscalls.utime01A_64bit', True), + ('syscalls.utime01_32bit', True), + ('syscalls.utime01_64bit', True), + ('syscalls.utime02_32bit', True), + ('syscalls.utime02_64bit', True), + ('syscalls.utime03_32bit', True), + ('syscalls.utime03_64bit', True), + ('syscalls.utime04_32bit', True), + ('syscalls.utime04_64bit', True), + ('syscalls.utime05_32bit', True), + ('syscalls.utime05_64bit', True), + ('syscalls.utime06_32bit', True), + ('syscalls.utime06_64bit', True), + ('syscalls.utimes01_32bit', True), + ('syscalls.utimes01_64bit', True), + ('syscalls.vfork01_32bit', True), + ('syscalls.vfork01_64bit', True), + ('syscalls.vhangup01_32bit', True), + ('syscalls.vhangup01_64bit', True), + ('syscalls.vhangup02_32bit', True), + ('syscalls.vhangup02_64bit', True), + ('syscalls.vmsplice01_32bit', True), + ('syscalls.vmsplice01_64bit', True), + ('syscalls.vmsplice02_32bit', True), + ('syscalls.vmsplice02_64bit', True), + ('syscalls.wait01_32bit', True), + ('syscalls.wait01_64bit', True), + ('syscalls.wait02_32bit', True), + ('syscalls.wait02_64bit', True), + ('syscalls.wait401_32bit', True), + ('syscalls.wait401_64bit', True), + ('syscalls.wait402_32bit', True), + ('syscalls.wait402_64bit', True), + ('syscalls.waitid01_32bit', True), + ('syscalls.waitid01_64bit', True), + ('syscalls.waitid02_32bit', True), + ('syscalls.waitid02_64bit', True), + ('syscalls.waitpid01_32bit', True), + ('syscalls.waitpid01_64bit', True), + ('syscalls.waitpid02_32bit', True), + ('syscalls.waitpid02_64bit', True), + ('syscalls.waitpid03_32bit', True), + ('syscalls.waitpid03_64bit', True), + ('syscalls.waitpid04_32bit', True), + ('syscalls.waitpid04_64bit', True), + ('syscalls.waitpid05_32bit', True), + ('syscalls.waitpid05_64bit', True), + ('syscalls.waitpid06_32bit', True), + ('syscalls.waitpid06_64bit', True), + ('syscalls.waitpid07_32bit', True), + ('syscalls.waitpid07_64bit', True), + ('syscalls.waitpid08_32bit', True), + ('syscalls.waitpid08_64bit', True), + ('syscalls.waitpid09_32bit', True), + ('syscalls.waitpid09_64bit', True), + ('syscalls.waitpid10_32bit', True), + ('syscalls.waitpid10_64bit', True), + ('syscalls.waitpid11_32bit', True), + ('syscalls.waitpid11_64bit', True), + ('syscalls.waitpid12_32bit', True), + ('syscalls.waitpid12_64bit', True), + ('syscalls.waitpid13_32bit', True), + ('syscalls.waitpid13_64bit', True), + ('syscalls.write01_32bit', True), + ('syscalls.write01_64bit', True), + ('syscalls.write02_32bit', True), + ('syscalls.write02_64bit', True), + ('syscalls.write03_32bit', True), + ('syscalls.write03_64bit', True), + ('syscalls.write04_32bit', True), + ('syscalls.write04_64bit', True), + ('syscalls.write05_32bit', True), + ('syscalls.write05_64bit', True), + ('syscalls.writev01_32bit', True), + ('syscalls.writev01_64bit', True), + ('syscalls.writev02_32bit', True), + ('syscalls.writev02_64bit', True), + ('syscalls.writev05_32bit', True), + ('syscalls.writev05_64bit', True), + ('syscalls.writev06_32bit', True), + ('syscalls.writev06_64bit', True), + ('syscalls.writev07_32bit', True), + ('syscalls.writev07_64bit', True), + ('timers.clock_gettime02_32bit', False), + ('timers.clock_gettime02_64bit', False), + ('timers.clock_gettime03_32bit', False), + ('timers.clock_gettime03_64bit', False), + ('timers.clock_settime02_32bit', False), + ('timers.clock_settime02_64bit', False), + ('timers.clock_settime03_32bit', False), + ('timers.clock_settime03_64bit', False), + ('timers.timer_create02_32bit', False), + ('timers.timer_create02_64bit', False), + ('timers.timer_create03_32bit', False), + ('timers.timer_create03_64bit', False), + ('timers.timer_create04_32bit', False), + ('timers.timer_create04_64bit', False), + ('timers.timer_delete02_32bit', False), + ('timers.timer_delete02_64bit', False), + ('timers.timer_delete03_32bit', False), + ('timers.timer_delete03_64bit', False), + ('timers.timer_settime02_32bit', False), + ('timers.timer_settime02_64bit', False), + ('timers.timer_settime03_32bit', False), + ('timers.timer_settime03_64bit', False), + ('tracing.ftrace_regression02_32bit', False), + ('tracing.ftrace_regression02_64bit', False), + ('tracing.pt_test_32bit', False), + ('tracing.pt_test_64bit', False), +] diff --git a/ltp/testcase/tools/gen_ltp_config.py b/ltp/testcase/tools/gen_ltp_config.py new file mode 100755 index 00000000..61b95292 --- /dev/null +++ b/ltp/testcase/tools/gen_ltp_config.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python +# +# Copyright (C) 2020 The Android Open Source Project +# +# 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. +# +import os +import sys +from distutils.util import strtobool + +import ltp_test_cases +from common import filter_utils + +def run(android_build_top, arch, n_bit, is_low_mem, is_hwasan, output_file): + + android_build_top = android_build_top + ltp_tests = ltp_test_cases.LtpTestCases( + android_build_top, None) + + test_filter = filter_utils.Filter() + ltp_tests.GenConfig( + arch, + n_bit, + test_filter, + output_file=output_file, + run_staging=False, + is_low_mem=is_low_mem, + is_hwasan=is_hwasan) + +if __name__ == '__main__': + if len(sys.argv) < 4: + print("use: %s n_bit output_file" % sys.argv[0]) + sys.exit(1) + arch = sys.argv[1] + n_bit = sys.argv[2] + is_low_mem = strtobool(sys.argv[3]) + is_hwasan = strtobool(sys.argv[4]) + output_path = sys.argv[5] + run(os.environ['ANDROID_BUILD_TOP'], arch, n_bit, is_low_mem, is_hwasan, output_path) diff --git a/ltp/testcase/tools/host/const.py b/ltp/testcase/tools/host/const.py new file mode 100644 index 00000000..bd4452c8 --- /dev/null +++ b/ltp/testcase/tools/host/const.py @@ -0,0 +1,20 @@ +# +# Copyright (C) 2020 The Android Open Source Project +# +# 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. +# + +# Note: filterOneTest method in base_test.py assumes SUFFIX_32BIT and SUFFIX_64BIT +# are in lower cases. +SUFFIX_32BIT = "32bit" +SUFFIX_64BIT = "64bit" diff --git a/ltp/testcase/tools/ltp_configs.py b/ltp/testcase/tools/ltp_configs.py new file mode 100644 index 00000000..cd3f4fb1 --- /dev/null +++ b/ltp/testcase/tools/ltp_configs.py @@ -0,0 +1,155 @@ +# +# Copyright (C) 2020 The Android Open Source Project +# +# 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. +# + +import os + +import ltp_enums + +VTS_LTP_OUTPUT = os.path.join('DATA', 'nativetest', 'ltp') +LTP_RUNTEST_DIR = 'external/ltp/runtest' +# The bp file that contains all binaries of ltp +LTP_GEN_BINARY_BP = 'external/ltp/gen.bp' + +LTP_DISABLED_BUILD_TESTS_CONFIG_PATH = 'external/ltp/android/tools/disabled_tests.txt' +# Directory for the template of the test config. +LTP_CONFIG_TEMPLATE_DIR = 'test/vts-testcase/kernel/ltp/testcase/tools/template' +# The file name of the config template file +LTP_CONFIG_TEMPLATE_FILE_NAME = 'template.xml' + +# Environment paths for ltp test cases +# string, ltp build root directory on target +LTPDIR = '/data/local/tmp/ltp' +# Directory for environment variable 'TMP' needed by some test cases +TMP = os.path.join(LTPDIR, 'tmp') +# Directory for environment variable 'TMPBASE' needed by some test cases +TMPBASE = os.path.join(TMP, 'tmpbase') +# Directory for environment variable 'LTPTMP' needed by some test cases +LTPTMP = os.path.join(TMP, 'ltptemp') +# Directory for environment variable 'TMPDIR' needed by some test cases +TMPDIR = os.path.join(TMP, 'tmpdir') + +# File name suffix for low memory scenario group scripts +LOW_MEMORY_SCENARIO_GROUP_SUFFIX = '_low_mem' + +# Requirement to testcase dictionary. +REQUIREMENTS_TO_TESTCASE = { + ltp_enums.Requirements.LOOP_DEVICE_SUPPORT: [ + 'syscalls.mount01', + 'syscalls.fchmod06', + 'syscalls.ftruncate04', + 'syscalls.ftruncate04_64', + 'syscalls.inotify03', + 'syscalls.link08', + 'syscalls.linkat02', + 'syscalls.mkdir03', + 'syscalls.mkdirat02', + 'syscalls.mknod07', + 'syscalls.mknodat02', + 'syscalls.mmap16', + 'syscalls.mount01', + 'syscalls.mount02', + 'syscalls.mount03', + 'syscalls.mount04', + 'syscalls.mount06', + 'syscalls.rename11', + 'syscalls.renameat01', + 'syscalls.rmdir02', + 'syscalls.umount01', + 'syscalls.umount02', + 'syscalls.umount03', + 'syscalls.umount2_01', + 'syscalls.umount2_02', + 'syscalls.umount2_03', + 'syscalls.utime06', + 'syscalls.utimes01', + 'syscalls.mkfs01', + 'fs.quota_remount_test01', + ], + ltp_enums.Requirements.BIN_IN_PATH_LDD: ['commands.ldd'], +} + +# Requirement for all test cases +REQUIREMENT_FOR_ALL = [ltp_enums.Requirements.LTP_TMP_DIR] + +# Requirement to test suite dictionary +REQUIREMENT_TO_TESTSUITE = {} + +# List of LTP test suites to run +TEST_SUITES = [ + 'can', + 'cap_bounds', + 'commands', + 'connectors', + 'containers', + 'controllers', + 'cpuhotplug', + 'cve', + 'dio', + 'fcntl-locktests_android', + 'filecaps', + 'fs', + 'fs_bind', + 'fs_perms_simple', + 'fsx', + 'hugetlb', + 'hyperthreading', + 'input', + 'io', + 'ipc', + 'kernel_misc', + 'math', + 'mm', + 'nptl', + 'power_management_tests', + 'pty', + 'sched', + 'securebits', + 'syscalls', + 'tracing', +] + +# List of LTP test suites to run +TEST_SUITES_LOW_MEM = [ + 'can', + 'cap_bounds', + 'commands', + 'connectors', + 'containers', + 'cpuhotplug', + 'cve', + 'dio', + 'fcntl-locktests_android', + 'filecaps', + 'fs', + 'fs_bind', + 'fs_perms_simple', + 'fsx', + 'hugetlb', + 'hyperthreading', + 'input', + 'io', + 'ipc', + 'kernel_misc', + 'math', + 'mm', + 'nptl', + 'power_management_tests', + 'pty', + 'sched_low_mem', + 'securebits', + 'syscalls', + 'tracing', +] diff --git a/ltp/testcase/tools/ltp_enums.py b/ltp/testcase/tools/ltp_enums.py new file mode 100644 index 00000000..07ec8658 --- /dev/null +++ b/ltp/testcase/tools/ltp_enums.py @@ -0,0 +1,48 @@ +# +# Copyright (C) 2020 The Android Open Source Project +# +# 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. +# + + +class RequirementState(object): + """Enum for test case requirement check state. + + Attributes: + UNCHECKED: test case requirement has not been checked + SATISFIED: all the requirements are satisfied + UNSATISFIED: some of the requirements are not satisfied. Test case will + not be executed + """ + UNCHECKED = 0 + SATISFIED = 2 + UNSATISFIED = 3 + + +class ConfigKeys(object): + RUN_STAGING = "run_staging" + RUN_32BIT = "run_32bit" + RUN_64BIT = "run_64bit" + LTP_NUMBER_OF_THREADS = "ltp_number_of_threads" + + +class Delimiters(object): + TESTCASE_FILTER = ',' + TESTCASE_DEFINITION = '\t' + + +class Requirements(object): + """Enum for all ltp requirements""" + LOOP_DEVICE_SUPPORT = 1 + LTP_TMP_DIR = 2 + BIN_IN_PATH_LDD = 3 diff --git a/ltp/testcase/tools/ltp_test_cases.py b/ltp/testcase/tools/ltp_test_cases.py new file mode 100644 index 00000000..ac09a853 --- /dev/null +++ b/ltp/testcase/tools/ltp_test_cases.py @@ -0,0 +1,323 @@ +# +# Copyright (C) 2020 The Android Open Source Project +# +# 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. +# + +import os +import logging + +import ltp_configs +import ltp_enums +import test_case +from configs import stable_tests +from configs import disabled_tests +from common import filter_utils + +ltp_test_template = ' <option name="test-command-line" key="%s" value="&env_setup_cmd; ;' \ + ' cd <p_bin_dir; ; %s" />' + +class LtpTestCases(object): + """Load a ltp vts testcase definition file and parse it into a generator. + + Attributes: + _data_path: string, the vts data path on host side + _filter_func: function, a filter method that will emit exception if a test is filtered + _ltp_tests_filter: list of string, filter for tests that are stable and disabled + _ltp_binaries: list of string, All ltp binaries that generate in build time + _ltp_config_lines: list of string: the context of the generated config + """ + + def __init__(self, android_build_top, filter_func): + self._android_build_top = android_build_top + self._filter_func = filter_func + self._ltp_tests_filter = filter_utils.Filter( + [ i[0] for i in stable_tests.STABLE_TESTS ], + disabled_tests.DISABLED_TESTS, + enable_regex=True) + self._ltp_tests_filter.ExpandBitness() + self._ltp_binaries = [] + self._ltp_config_lines = [] + + def ValidateDefinition(self, line): + """Validate a tab delimited test case definition. + + Will check whether the given line of definition has three parts + separated by tabs. + It will also trim leading and ending white spaces for each part + in returned tuple (if valid). + + Returns: + A tuple in format (test suite, test name, test command) if + definition is valid. None otherwise. + """ + items = [ + item.strip() + for item in line.split(ltp_enums.Delimiters.TESTCASE_DEFINITION) + ] + if not len(items) == 3 or not items: + return None + else: + return items + + def ReadConfigTemplateFile(self): + """Read the template of the config file and return the context. + + Returns: + String. + """ + file_name = ltp_configs.LTP_CONFIG_TEMPLATE_FILE_NAME + file_path = os.path.join(self._android_build_top, ltp_configs.LTP_CONFIG_TEMPLATE_DIR, file_name) + with open(file_path, 'r') as f: + return f.read() + + def GetKernelModuleControllerOption(self, arch, n_bit, is_low_mem=False, is_hwasan=False): + """Get the Option of KernelModuleController. + + Args: + arch: String, arch + n_bit: int, bitness + run_staging: bool, whether to use staging configuration + is_low_mem: bool, whether to use low memory device configuration + + Returns: + String. + """ + arch_template = ' <option name="arch" value="{}"/>\n' + is_low_mem_template = ' <option name="is-low-mem" value="{}"/>\n' + is_hwasan_template = ' <option name="is-hwasan" value="{}"/>' + option_lines = arch_template + is_low_mem_template + is_hwasan_template + if n_bit == '64': + n_bit_string = str(n_bit) if arch == 'arm' else ('_'+str(n_bit)) + else: + n_bit_string = '' + arch_name = arch + n_bit_string + is_low_mem = 'true' if is_low_mem else 'false' + is_hwasan = 'true' if is_hwasan else 'false' + option_lines = option_lines.format(arch_name, + str(is_low_mem).lower(), + str(is_hwasan).lower()) + return option_lines + + def GetLtpBinaries(self): + """Check the binary exist in the command. + + Args: + command: String, the test command + + Returns: + bool: True if the binary in the gen.bp + """ + gen_bp_path = os.path.join(self._android_build_top, ltp_configs.LTP_GEN_BINARY_BP) + for line in open(gen_bp_path, 'r'): + line = line.strip() + if not line or line.startswith('#'): + continue + if line.startswith("stem:") or line.startswith('filename:'): + ltp_binary = line.split('"')[1] + self._ltp_binaries.append(ltp_binary) + + def IsLtpBinaryExist(self, commands): + """Check the binary exist in the command. + + Args: + command: String, the test command + + Returns: + bool: True if the binary in the gen.bp + """ + all_commands = commands.split(';') + for cmd in all_commands: + cmd = cmd.strip() + binary_name = cmd.split(' ')[0] + if binary_name in self._ltp_binaries: + return True + logging.info("Ltp binary not exist in cmd of '%s'", commands) + return False + + def GenConfig(self, + arch, + n_bit, + test_filter, + output_file, + run_staging=False, + is_low_mem=False, + is_hwasan=False): + """Read the definition file and generate the test config. + + Args: + arch: String, arch + n_bit: int, bitness + test_filter: Filter object, test name filter from base_test + output_file: String, the file path of the generating config + run_staging: bool, whether to use staging configuration + is_low_mem: bool, whether to use low memory device configuration + """ + self.GetLtpBinaries() + scenario_groups = (ltp_configs.TEST_SUITES_LOW_MEM + if is_low_mem else ltp_configs.TEST_SUITES) + logging.info('LTP scenario groups: %s', scenario_groups) + start_append_test_keyword = 'option name="per-binary-timeout"' + config_lines = self.ReadConfigTemplateFile() + module_controller_option = self.GetKernelModuleControllerOption(arch, n_bit, + is_low_mem, + is_hwasan) + test_case_string = '' + run_scritp = self.GenerateLtpRunScript(scenario_groups, is_hwasan=is_hwasan) + for line in run_scritp: + items = self.ValidateDefinition(line) + if not items: + continue + + testsuite, testname, command = items + if is_low_mem and testsuite.endswith( + ltp_configs.LOW_MEMORY_SCENARIO_GROUP_SUFFIX): + testsuite = testsuite[:-len( + ltp_configs.LOW_MEMORY_SCENARIO_GROUP_SUFFIX)] + + # Tests failed to build will have prefix "DISABLED_" + if testname.startswith("DISABLED_"): + logging.info("[Parser] Skipping test case {}-{}. Reason: " + "not built".format(testsuite, testname)) + continue + + # Some test cases have hardcoded "/tmp" in the command + # we replace that with ltp_configs.TMPDIR + command = command.replace('/tmp', ltp_configs.TMPDIR) + + testcase = test_case.TestCase( + testsuite=testsuite, testname=testname, command=command) + test_display_name = "{}_{}bit".format(str(testcase), n_bit) + + # Check runner's base_test filtering method + try: + self._filter_func(test_display_name) + except: + logging.info("[Parser] Skipping test case %s. Reason: " + "filtered" % testcase.fullname) + testcase.is_filtered = True + testcase.note = "filtered" + + logging.info('ltp_test_cases Load(): test_display_name = %s\n' + 'cmd = %s', test_display_name, command) + + # For skipping tests that are not designed or ready for Android, + # check for bit specific test in disabled list as well as non-bit specific + if ((self._ltp_tests_filter.IsInExcludeFilter(str(testcase)) or + self._ltp_tests_filter.IsInExcludeFilter(test_display_name)) and + not test_filter.IsInIncludeFilter(test_display_name)): + logging.info("[Parser] Skipping test case %s. Reason: " + "disabled" % testcase.fullname) + continue + + # For separating staging tests from stable tests + if not self._ltp_tests_filter.IsInIncludeFilter(test_display_name): + if not run_staging and not test_filter.IsInIncludeFilter( + test_display_name): + # Skip staging tests in stable run + continue + else: + testcase.is_staging = True + testcase.note = "staging" + else: + if run_staging: + # Skip stable tests in staging run + continue + + if not testcase.is_staging: + for x in stable_tests.STABLE_TESTS: + if x[0] == test_display_name and x[1]: + testcase.is_mandatory = True + break + if self.IsLtpBinaryExist(command): + logging.info("[Parser] Adding test case %s." % testcase.fullname) + # Some test cases contain semicolons in their commands, + # and we replace them with && + command = command.replace(';', '&&') + # Replace the original command with '/data/local/tmp/ltp' + # e.g. mm.mmapstress07 + command = command.replace(ltp_configs.LTPDIR, '<p_dir;') + ltp_test_line = ltp_test_template % (test_display_name, command) + test_case_string += (ltp_test_line + '\n') + nativetest_bit_path = '64' if n_bit == '64' else '' + config_lines = config_lines.format(nativetest_bit_path, module_controller_option, + test_case_string) + with open(output_file, 'w') as f: + f.write(config_lines) + + def ReadCommentedTxt(self, filepath): + '''Read a lines of a file that are not commented by #. + + Args: + filepath: string, path of file to read + + Returns: + A set of string representing non-commented lines in given file + ''' + if not filepath: + logging.error('Invalid file path') + return None + + with open(filepath, 'r') as f: + lines_gen = (line.strip() for line in f) + return set( + line for line in lines_gen + if line and not line.startswith('#')) + + def GenerateLtpTestCases(self, testsuite, disabled_tests_list): + '''Generate test cases for each ltp test suite. + + Args: + testsuite: string, test suite name + + Returns: + A list of string + ''' + testsuite_script = os.path.join(self._android_build_top, + ltp_configs.LTP_RUNTEST_DIR, testsuite) + + result = [] + for line in open(testsuite_script, 'r'): + line = line.strip() + if not line or line.startswith('#'): + continue + + testname = line.split()[0] + testname_prefix = ('DISABLED_' + if testname in disabled_tests_list else '') + testname_modified = testname_prefix + testname + + result.append("\t".join( + [testsuite, testname_modified, line[len(testname):].strip()])) + return result + + def GenerateLtpRunScript(self, scenario_groups, is_hwasan=False): + '''Given a scenario group generate test case script. + + Args: + scenario_groups: list of string, name of test scenario groups to use + + Returns: + A list of string + ''' + disabled_tests_path = os.path.join( + self._android_build_top, ltp_configs.LTP_DISABLED_BUILD_TESTS_CONFIG_PATH) + disabled_tests_list = self.ReadCommentedTxt(disabled_tests_path) + if is_hwasan: + disabled_tests_list = disabled_tests_list.union(disabled_tests.DISABLED_TESTS_HWASAN) + + result = [] + for testsuite in scenario_groups: + result.extend( + self.GenerateLtpTestCases(testsuite, disabled_tests_list)) + return result diff --git a/ltp/testcase/tools/template/template.xml b/ltp/testcase/tools/template/template.xml new file mode 100644 index 00000000..8fdd6872 --- /dev/null +++ b/ltp/testcase/tools/template/template.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2020 The Android Open Source Project + 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. +--> +<!DOCTYPE configuration [ + <!ENTITY ltp_root "/data/local/tmp/ltp"> + <!ENTITY ltp_dir "/data/local/tmp/ltp/DATA/nativetest{}/ltp"> + <!ENTITY ltp_bin_dir "<p_dir;/testcases/bin"> + <!ENTITY env_setup_cmd "export TMP=<p_dir;/tmp LTPTMP=<p_dir;/tmp/ltptemp PATH=/system/bin:<p_dir;/testcases/bin LTP_DEV_FS_TYPE=ext4 TMPBASE=<p_dir;/tmp/tmpbase TMPDIR=<p_dir;/tmp/tmpdir LTPROOT=<p_dir; "> +]> +<configuration description="Runs vts_ltp_test."> + <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/> + <target_preparer class="com.android.tradefed.targetprep.StopServicesSetup"/> + + <object type="module_controller" class="com.android.tradefed.testtype.suite.module.KernelTestModuleController" > +{} + </object> + + <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"> + <option name="cleanup" value="true" /> + <!-- LTP tests must be pushed to `/data/local/tmp/ltp` which has the right security context setting. + Any other directory might not work. --> + <option name="push" value="vts_kernel_tests-><p_root;" /> + </target_preparer> + + <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"> + <option name="run-command" value='find <p_dir; -type f | xargs grep -l -e "bin/sh" -e "bin/bash" | xargs sed -i -e "s?/bin/echo?echo?" -i -e "s?#!/bin/sh?#!/system/bin/sh?" -i -e "s?#!/bin/bash?#!/system/bin/sh?" -i -e "s?bs=1M?#bs=1m?"' /> + <option name="run-command" value='mkdir -p <p_dir;/tmp; chmod 777 <p_dir;/tmp' /> + <option name="run-command" value='mkdir -p <p_dir;/tmp/tmpbase; chmod 777 <p_dir;/tmp/tmpbase' /> + <option name="run-command" value='mkdir -p <p_dir;/tmp/ltptemp; chmod 777 <p_dir;/tmp/ltptemp' /> + <option name="run-command" value='mkdir -p <p_dir;/tmp/tmpdir; chmod 777 <p_dir;/tmp/tmpdir' /> + <!-- Apply the right security context for kernel tests to work. --> + <option name="run-command" value='restorecon -F -R <p_root;' /> + <option name="teardown-command" value="rm -rf <p_dir;/tmp" /> + </target_preparer> + + <test class="com.android.tradefed.testtype.binary.KernelTargetTest" > + <option name="ignore-binary-check" value="true" /> + <!-- Set binary timeout to be 6 min which is greater than the default 5 min timeout. Otherwise TF will retry to the command and attempt to do device recovery. --> + <option name="per-binary-timeout" value="360000" /> +{} + </test> +</configuration> diff --git a/ltp/testcase/tools/test_case.py b/ltp/testcase/tools/test_case.py new file mode 100644 index 00000000..4cf66ae0 --- /dev/null +++ b/ltp/testcase/tools/test_case.py @@ -0,0 +1,134 @@ +# +# Copyright (C) 2020 The Android Open Source Project +# +# 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. +# + +import os +import re + +import ltp_enums +import ltp_configs + + +class TestCase(object): + """Stores name, path, and param information for each test case. + + All class initiation inputs are assumed to be already validated by + test case parser. + + Attributes: + testsuite: string, name of testsuite to which the testcase belongs + testname: string, name of the test case + command: string, the command to run the test case + _args: list of string, test case command line arguments + requirement_state: RequirementState, enum representing requirement + check results + note: string, a place to store additional note for the test case + such as what environment requirement did not satisfy. + is_staging: bool, whether test case is a staging test + is_filtered: bool, whether test case is excluded by filter + """ + + def __init__(self, testsuite, testname, command): + self.testsuite = testsuite + self.testname = testname + self._command = command + self.requirement_state = ltp_enums.RequirementState.UNCHECKED + self.note = "" + self.is_staging = False + self.is_mandatory = False + self.is_filtered = False + + @property + def note(self): + """Get the note""" + return self._note + + @note.setter + def note(self, note): + """Set the note""" + self._note = note + + @property + def requirement_state(self): + """Get the requirement state""" + return self._requirement_state + + @requirement_state.setter + def requirement_state(self, requirement_state): + """Set the requirement state""" + self._requirement_state = requirement_state + + @property + def testsuite(self): + """Get the test suite's name.""" + return self._testsuite + + @testsuite.setter + def testsuite(self, testsuite): + """Set the test suite's name.""" + self._testsuite = testsuite + + @property + def testname(self): + """Get the test case's name.""" + return self._testname + + @testname.setter + def testname(self, testname): + """Set the test case's name.""" + self._testname = testname + + @property + def command(self): + """Get the test case's command.""" + return self._command + + @property + def fullname(self): + """Return full test name in <testsuite-testname> format""" + return "%s.%s" % (self.testsuite, self.testname) + + def __str__(self): + return self.fullname + + @property + def is_staging(self): + '''Whether this test is a staging test.''' + return self._is_staging + + @is_staging.setter + def is_staging(self, is_staging): + '''Set whether this test is a staging test.''' + self._is_staging = is_staging + + @property + def is_mandatory(self): + '''Whether this test is a mandatory test.''' + return self._is_mandatory + + @is_mandatory.setter + def is_mandatory(self, is_mandatory): + '''Set whether this test is a mandatory test.''' + self._is_mandatory = is_mandatory + + @property + def is_filtered(self): + '''Whether this test has been filtered out.''' + return self._is_filtered + + @is_filtered.setter + def is_filtered(self, is_filtered): + '''Set whether this test has been filtered out.''' + self._is_filtered = is_filtered |
