summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornelsonli <nelsonli@google.com>2020-05-07 12:16:30 +0800
committernelsonli <nelsonli@google.com>2020-06-04 11:41:59 +0800
commit33aa168b9784161f93d3892ead622fcc34fffb97 (patch)
tree544ac207a620e62b4b041626c6ea987d4c4bc197
parentefa6c0a4575d283d267756fec12ff492b765e7b7 (diff)
downloadplatform_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.py570
-rw-r--r--ltp/testcase/tools/common/list_utils.py42
-rw-r--r--ltp/testcase/tools/configs/disabled_tests.py454
-rw-r--r--ltp/testcase/tools/configs/stable_tests.py2289
-rwxr-xr-xltp/testcase/tools/gen_ltp_config.py49
-rw-r--r--ltp/testcase/tools/host/const.py20
-rw-r--r--ltp/testcase/tools/ltp_configs.py155
-rw-r--r--ltp/testcase/tools/ltp_enums.py48
-rw-r--r--ltp/testcase/tools/ltp_test_cases.py323
-rw-r--r--ltp/testcase/tools/template/template.xml51
-rw-r--r--ltp/testcase/tools/test_case.py134
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 &ltp_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(';', '&amp;&amp;')
+ # Replace the original command with '/data/local/tmp/ltp'
+ # e.g. mm.mmapstress07
+ command = command.replace(ltp_configs.LTPDIR, '&ltp_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 "&ltp_dir;/testcases/bin">
+ <!ENTITY env_setup_cmd "export TMP=&ltp_dir;/tmp LTPTMP=&ltp_dir;/tmp/ltptemp PATH=/system/bin:&ltp_dir;/testcases/bin LTP_DEV_FS_TYPE=ext4 TMPBASE=&ltp_dir;/tmp/tmpbase TMPDIR=&ltp_dir;/tmp/tmpdir LTPROOT=&ltp_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->&ltp_root;" />
+ </target_preparer>
+
+ <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
+ <option name="run-command" value='find &ltp_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 &ltp_dir;/tmp; chmod 777 &ltp_dir;/tmp' />
+ <option name="run-command" value='mkdir -p &ltp_dir;/tmp/tmpbase; chmod 777 &ltp_dir;/tmp/tmpbase' />
+ <option name="run-command" value='mkdir -p &ltp_dir;/tmp/ltptemp; chmod 777 &ltp_dir;/tmp/ltptemp' />
+ <option name="run-command" value='mkdir -p &ltp_dir;/tmp/tmpdir; chmod 777 &ltp_dir;/tmp/tmpdir' />
+ <!-- Apply the right security context for kernel tests to work. -->
+ <option name="run-command" value='restorecon -F -R &ltp_root;' />
+ <option name="teardown-command" value="rm -rf &ltp_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